1. 什么是接口測試
接口測試是驗證系統組件間接口數據交互的測試。重點是檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關系等。接口測試屬於功能測試,
是通過接口文檔上的調用地址、請求參數、拼接報文,然后發送請求,檢查返回結果。
2. 接口測試必要性
可以發現頁面操作發現不了的bug
檢查系統的異常處理能力
檢查系統的安全性、穩定性
前端發生變化,接口測試好了,后端無需再做改動
3. 接口測試流程
需求評審,熟悉業務和需求
開發提供接口文檔
編寫接口測試用例
用例評審
執行測試
提交測試報告
3.1 接口文檔必備要素
接口說明
調用url
請求參數
請求方式
請求參數、參數類型、請求參數說明
返回參數說明
3.2 接口請求報文拼接方式
url拼接
url拼接規則為:Url?param1=value1¶m2=value2
問號前面是請求url,后面是請求參數和參數值,多個參數用&連接
如:https://api.douban.com/v2/book/search?q=鄒偉偉
json串
需要測試工具完成,如postman、jmeter等。其傳參方式符合json的組合規則。
3.3 接口類型
http api接口
Http api 接口是走http協議,通過路徑來區分調用的方法,請求報文都是key-value形式,返回報文一般都是json串,請求方式有get、post等方式,
這兩種為最常用的請求方式。
webservice接口
Webservice 接口是走soap協議通過http傳輸,請求報文和返回報文都是xml格式,需要通過工具才能進行測試。
數據庫訪問接口
數據庫訪問接口是走jdbc方式連接數據,對數據庫進行增刪改查操作,需要使用工具進行測試。
3.3.1 get、post區別
get使用url或cookie傳參,post將數據存放在body中
get的url在長度上有限制,post數據可以很大
post比get更安全,因為數據在地址欄上不可見
一般get用於獲取數據,post用於發送數據
3.3.2 http狀態碼
200 2開頭表示請求發送成功
300 3開頭表示重定向
400 4開頭表示客戶端發送請求有語法錯誤
401 訪問頁面未授權
403 無權訪問
404 無此頁面
500 5開頭表示服務器異常
500 服務器內部異常
504 服務器端超時,未返回結果
4. 接口測試用例設計
4.1 接口測試用例設計規則
通過性驗證(按照接口規范)
參數組合(多參數時)
安全驗證
繞過驗證(賣家傳個普通用戶id)
繞過身份授權(修改商品價格)
關鍵參數未加密
密碼安全規則
異常數據(不按接口文檔要求)
根據業務邏輯
4.2 接口測試用例模板要素
要至少要包含項目、模塊、用例id、用例描述、請求url、請求方式、請求數據、預期結果、請求報文、返回報文、測試結果、測試人員等。如下圖示: