1.1 概念(記住)
接口: 不同單元(或模塊)進行數據交互的一個通道,還是一套規范,一套標准。
舉例: USB接口、網線接口、耳機、插座 ...
-
項目開發中,未采用規范化接口時的缺點
1. 研發標准不統一,團隊磨合難度高
2. 研發周期長
3. 可擴展性差
-
項目目開發中,采用規范化接口帶來的優點
1. 統一設計標准,更易於團隊磨合
2. 縮短研發周期
3. 擴展性靈活
4. 前后端都可以使用自己熟悉的技術,只需保證最終產出符合規范即可(提高編程效率)
1.3 實現
怎么使用規范化接口?
-
編寫一個聲明接口規范的文檔(API 文檔 == Application Program Interface 應用程序編程接口)
-
前端和后端在實現時,都按照該文檔的約束編寫各自代碼
2.1 概念
接口測試: 測試后端實現是否符合接口規范
因為后端需要使用編程語言編寫業務邏輯,涉及到一些算法實現,易產生 BUG
2.2 作用(了解)
-
對應場景1: 提高測試效率
-
對應場景2: 更精准的定位 BUG
-
對應場景3: 發現程序中的安全隱患
2.3 實現(重點)
流 程: 首先,通過 URL 定位接口資源;然后,提交測試數據;最后,查看響應結果是否符合預期
三要素:
要素1: 怎么定位接口?(查閱API文檔,文檔中有詳細說明)
要素2: 怎么提交測試數據?(提交格式需要查閱 API文檔,需要設計用例)
要素3: 對比響應結果(狀態碼 + 響應體)
2.4 接口測試分類(記住)
-
WEB接口測試(BS架構)
-
服務器接口測試 === 自實現接口
-
外部(第三方)接口測試 === 調用第三方的接口(比如: 支付寶支付、微信支付、天氣預報....)
-
-
模塊接口測試(CS架構)
3.1 項目簡介
-
學生信息管理系統的功能是收集學生的個人信息,以便向老師提供每個學生在校或畢業生學籍的情況,還可以讓學生用自己的學號去查看自己在校期間的表現。
-
該系統中主要有三大模塊實現,分別是:學院模塊、班級模塊與學生模塊,三大模塊分別實現了學院、班級與學生信息增刪改查(CRUD)管理.
等等等....
后期,測試過程中,我們經常需要將接口相應的結果與數據庫中的數據做比對,接下來我們再介紹一下,如何查看項目的數據庫數據。
RESTful 架構風格: 前輩們根據自身的經驗教訓,總結的一套約束 API 文檔編寫規范的標准
5.2 作用
保證文檔的易讀性
5.3 補充知識:三要素(記住)
前提:
-
程序的主要功能點實現: 增刪改查
-
每種操作都涉及到三要素
-
RESTFul 架構風格約束了每種操作的三要素實現
三要素:
-
要素1: 怎么定位接口資源
-
URL:
http://127.0.0.1:8000/api/departments/
http: 協議 (http、https、ftp、ftps、SMTP、POP3.....)
127.0.0.1: IP地址(定位被訪問的服務器)
8000: 端口號(服務器的每一個程序都有一個獨一無二的端口號,可以通過端口號定位被訪問的程序)
/api/departments/: 資源路徑,可以映射程序中的某個功能點
-
Method:
GET: 查
POST: 增
PUT: 改
DELETE: 刪
比較 GET 和 POST 區別?
-
安全: POST 隱式提交,比 GET 更安全
-
效率: GET 請求效率更高
-
功能: POST 功能更強大一些,提交的數據沒有長度限制
-
-
-
要素2: 怎么提交測試數據
-
QueryString = 鍵值對
格式: 鍵1=值1& 鍵2=值2& 鍵3=值3& 鍵4=值4.....
-
JSON
對象格式
{
"鍵1":"值1",
"鍵2":"值2",
"鍵3":"值4",
....
}
數組格式
[值1,值2,值3 .....]
二者比較,JSON 的可描述性更強,且JSON可以使用專門的工具解析:
-
username=huluwa&password=jiuyeye&aihao=tuhuo&aihao=tushui&aihao=yinshen
-
{
"username":"huluwa",
"password":"jiuyeye",
"aihao":["tuhuo","tushui","yinshen"]
}
-
-
要素3: 怎么對比響應結果
-
關注點1: 狀態碼
1XX: 杜絕出現,請求正常,但是服務器不給響應
2XX: 響應正常 200 201 204 ....
3XX: 重定向 302
4XX: 瀏覽器異常 404 400 415
5XX: 服務器異常 500
-
關注點2: 響應體
格式1: HTML 源碼
格式2: JSON 數據
-
5.4 實現(記住)
操作 | 要素1 | 要素2 | 要素3 |
---|---|---|---|
增 | URL + POST | 鍵值對|JSON | 201 + 新增后的數據 |
刪 | URL + DELETE | 鍵值對 | 204 + 無 |
改 | URL + PUT | 鍵值對|JSON | 201(200) + 修改后的數據 |
查 | URL + GET | 鍵值對 | 200 + 多條或單條數據 |
PS: RESTful 架構是約束API文檔編寫的一套軟性而非硬性的規范