本文總結分享介紹接口測試架構開發,環境使用python3+selenium3+unittest+ddt+requests測試架構及ddt資料驅動,采用excel管理測試用例等內建測試資料功能,以及使用htmltestrunner來生成測試報告,目前有開源的poman、jmeter等接口測試工具,為什麼還要開發接口測試架構呢?因接口測試工具也有存在幾點不足。
測試資料不可控制。比如接口傳回資料不可控,就無法自動斷言接口傳回的資料,不能斷定是接口程式引起,還是測試資料變化引起的錯誤,是以需要做一些初始化測試資料。接口工具沒有具備初始化測試資料功能,無法做到真正的接口測試自動化。
無法測試加密接口。實際項目中,多數接口不是可以随便調用,一般情況無法摸拟和生成加密算法。如時間戳和mdb加密算法,一般接口工具無法摸拟。
擴充能力不足。開源的接口測試工具無法實作擴充功能。比如,我們想生成不同格式的測試報告,想将測試報告發送到指定郵箱,又想讓接口測試內建到ci中,做持續內建定時任務。
測試架構處理過程如下:
首先初始化清空資料庫表的資料,向資料庫插入測試資料;
調用被測試系統提供的接口,先資料驅動讀取excel用例一行資料;
發送請求資料,根據傳參資料,向資料庫查詢得到對應的資料;
将查詢的結果組裝成json格式的資料,同時根據傳回的資料值與excel的值對比判斷,并寫入結果至指定excel測試用例表格;
通過單元測試架構斷言接口傳回的資料,并生成測試報告,最後把生成最新的測試報告html檔案發送指定的郵箱。
目錄結構介紹如下:
config/: 檔案路徑配置
database/: 測試用例模闆檔案及資料庫和發送郵箱配置檔案
db_fixture/: 初始化接口測試資料
lib/: 程式核心子產品。包含有excel解析讀寫、發送郵箱、發送請求、生成最新測試報告檔案
package/: 存放第三方庫包。如htmltestrunner,用于生成html格式測試報告
report/: 生成接口自動化測試報告
testcase/: 用于編寫接口自動化測試用例
run_demo.py: 執行所有接口測試用例的主程式
github項目位址: https://github.com/yingoja/demoapi