python+pytest(3)-介面測試一般流程及方法

給你一頁白紙發表於2022-03-06

首先我們要明確,通常所介面測試其實就屬於功能測試,主要校驗介面是否實現預定的功能,雖然有些情況下可能還需要對介面進行效能測試、安全性測試。

在學習介面自動化測試之前,我們先來了解手工介面測試怎樣進行。

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裡。

介面測試流程

手工介面測試的流程如下:

  1. 檢視需求文件及介面文件,明確測試內容即介面資訊。

  2. 根據需求文件及介面文件,編寫測試用例。

  3. 根據測試用例執行測試。

  4. 記錄測試結果,傳送介面測試報告(如果需要)。

接下來以一個登入介面為例來講解介面測試的流程。

介面文件

對介面進行測試,首先要明確介面的具體資訊:請求url、請求方式、請求頭、請求體 (欄位及說明)、響應體 (欄位及說明)。

通過開發提供的介面文件可以檢視這些資訊,然後再根據介面資訊設計測試用例 (介面測試用例的設計主要參考介面文件)。下面示例為一個登入介面的介面文件:

從這個介面文件我們可以看到介面相關的具體資訊,但這個文件裡沒有對請求頭Header做說明,所以請求的時候對請求頭也不做要求。

用例設計

用例設計方法

設計介面測試用例時,要從考慮輸入、邏輯處理、輸出三方面考慮:

  • 輸入,根據是否必填、引數型別、位元組長度、引數組合等設計用例
  • 邏輯處理,即按照業務邏輯設計用例
  • 輸出,即根據輸出結果分析並設計用例

除了正向校驗功能是否實現外,還應根據業務場景及處理邏輯,考慮一些異常場景,如:

用例編寫工具

用例設計的載體有很多種,如Excel,XMind,或一些測試管理平臺如testlink等,符合自己習慣、方便管理、一目瞭然就行。

如果用Excel來設計測試用例,可以參考如下原則:

  • 一個模組對應一個Excel表

  • 一個介面對應一張sheet表

  • sheet表中一行對應一條測試用例

  • 註明前置條件、後置操作。如登入用例需要先註冊使用者,測試完成後可能需要刪除這個使用者,這個時候可以把對應操作寫進去。

針對上面的登入介面,使用Excel設計測試用例如下:

測試執行

執行介面測試的方式有兩種,使用工具或編寫程式碼,工具如:postman、soupUI等,編寫程式碼則一般使用Java、Python。

根據測試用例進行介面測試,手工介面測試一般情況下推薦使用postman進行,方便快捷。

這裡以上面的登入介面為例,使用postman進行請求測試,示例如下:

測試結果

測試結果直接記錄在測試用例對應的測試結果列裡,如果需要提供測試報告的話則需將所有用例測試情況整合在測試報告中。

總結

一般的介面測試其實就屬於功能測試,這裡我們以手工介面測試為例進行了流程說明。介面自動化測試的步驟其實跟這個流程差不多,只是需要使用指令碼代替介面除錯工具。

相關文章