首先我們要明確,通常所接口測試其實就屬於功能測試,主要校驗接口是否實現預定的功能,雖然有些情況下可能還需要對接口進行性能測試、安全性測試。
在學習接口自動化測試之前,我們先來了解手工接口測試怎樣進行。
URL組成
為了更好的理解接口測試,我們需要對接口的URL有所了解,下面以GET請求URL為例,組成示例如下:
通過上圖可以看出來,一個典型的GET請求的URL可以分為以下幾個部分:
-
傳輸協議:工作中接觸到的接口一般是
http/https
協議 -
服務器域名/IP地址:指提供接口的系統所部署的服務器地址
-
端口:不填則默認端口為80
-
資源路徑:請求資源所在的服務器路徑
-
請求參數:對於GET請求,參數在資源路徑后,用
?
分隔,參數之間用&
分隔。如
http://127.0.0.1:8080/message?wd=pytest&ie=utf-8
,有2個參數 wd、ie。
POST請求的URL與GET請求URL不一樣的地方在於,POST請求參數是放在請求body里而非直接放在URL里。
接口測試流程
手工接口測試的流程如下:
-
查看需求文檔及接口文檔,明確測試內容即接口信息。
-
根據需求文檔及接口文檔,編寫測試用例。
-
根據測試用例執行測試。
-
記錄測試結果,發送接口測試報告(如果需要)。
接下來以一個登錄接口為例來講解接口測試的流程。
接口文檔
對接口進行測試,首先要明確接口的具體信息:請求url、請求方式、請求頭、請求體 (字段及說明)、響應體 (字段及說明)。
通過開發提供的接口文檔可以查看這些信息,然后再根據接口信息設計測試用例 (接口測試用例的設計主要參考接口文檔)。下面示例為一個登錄接口的接口文檔:
從這個接口文檔我們可以看到接口相關的具體信息,但這個文檔里沒有對請求頭Header做說明,所以請求的時候對請求頭也不做要求。
用例設計
用例設計方法
設計接口測試用例時,要從考慮輸入、邏輯處理、輸出三方面考慮:
- 輸入,根據是否必填、參數類型、字節長度、參數組合等設計用例
- 邏輯處理,即按照業務邏輯設計用例
- 輸出,即根據輸出結果分析並設計用例
除了正向校驗功能是否實現外,還應根據業務場景及處理邏輯,考慮一些異常場景,如:
用例編寫工具
用例設計的載體有很多種,如Excel,XMind,或一些測試管理平台如testlink等,符合自己習慣、方便管理、一目了然就行。
如果用Excel來設計測試用例,可以參考如下原則:
-
一個模塊對應一個Excel表
-
一個接口對應一張sheet表
-
sheet表中一行對應一條測試用例
-
注明前置條件、后置操作。如登錄用例需要先注冊用戶,測試完成后可能需要刪除這個用戶,這個時候可以把對應操作寫進去。
針對上面的登錄接口,使用Excel設計測試用例如下:
測試執行
執行接口測試的方式有兩種,使用工具或編寫代碼,工具如:postman、soupUI等,編寫代碼則一般使用Java、Python。
根據測試用例進行接口測試,手工接口測試一般情況下推薦使用postman進行,方便快捷。
這里以上面的登錄接口為例,使用postman進行請求測試,示例如下:
測試結果
測試結果直接記錄在測試用例對應的測試結果列里,如果需要提供測試報告的話則需將所有用例測試情況整合在測試報告中。
總結
一般的接口測試其實就屬於功能測試,這里我們以手工接口測試為例進行了流程說明。接口自動化測試的步驟其實跟這個流程差不多,只是需要使用腳本代替接口調試工具。