前言:最近也思考了一下怎么做接口自動化,以下內容屬於自己目前階段所學習到的內容,也逐漸投入自己實際工作中,把最近的學習新得跟大家分享下,話不多說,切入正題。
對接口自動化測試用例的思考:接口測試大多測試人員都知道,屬於黑盒測試范疇,針對拿到的接口地址,接口的參數,請求頭格式對各種正常異常的參數輸入,檢查返回值是否跟預期結果一致,當然設計到接口安全性的問題也需要考慮進去,這里暫時不說明。那么接口自動化是不是我們可以提取系統中重要的接口進行接口用例的維護,然后實現每次版本發布前,執行一遍,看看這次開發發的版本,接口是否都是正常的,或者說,開發是不是動了哪些接口?導致我之前寫的接口斷言報錯了?我自己覺得可行,因為我們都知道一般來說接口的變動是比較小的,所以說基於這一點,我覺得可行性還是比較高。因為最近實際工作中也會遇到開發發的版本質量很低,手工去驗證確實太費時間了,不去驗證的話,總感覺不放心,實際就是,前一個版本問題改好了,這個版本問題又出來了。因此我覺得接口自動化真的有必要,可以減輕很多手工壓力。
接口自動化用例設計:我們知道現在比較主流的接口自動化測試是用python中的requests庫來進行http請求,然后接口自動化接口數據驅動的話,需要把測試數據存放在文件中,目前比較受歡迎的是excel、json文件、yaml文件三種方式,最近三種文件我都用過,只能說各種優劣勢吧,但是參考一些大佬的意見,好像yaml文件還是更多點,我最近還簡單使用一下yaml文件,確實好用點。大家可以選擇性使用其中一種。
整體項目目錄:
case里面放置所有測試用例,data里面放所有測試文件, report里面放測試報告、utils里面放一些公共方法,例如讀取yaml文件內容,因為我會用pytest執行用例,根目錄的conftest.py是針對控制台收集用例中文亂碼進行重新編碼。
yaml文件中內容展示:
ids是展示接口測試的測試思路/測試輸入,后面是結合pytest.mark.paramtrize進行參數化的ids輸入,test_data是我們的維護的測試數據,我這邊就是維護請求方式、請求地址、請求參數、請求頭、預期結果
utils中讀取yaml文件方法:
case的測試用例文件:
我們從utils里面的read_yaml文件中讀取yaml文件內容后,然后測試用例中需要的參數,對應傳入即可,這里涉及到yaml文件維護的數據到底是什么?pytest的參數化怎么用?這里暫時不去聊了。總體到這里我們就可以實現我們的需求了
測試報告: