HTTPRUNNER_DEMO說明:
httprunner初始化json格式的接口測試框架Demo:實現了swagger自動生成json測試用例,測試用例文件對比及備份測試用例數據,日誌收集器等功能。
安裝python3運行環境
- 大家都不建議安裝python2,因爲已經不再維護了;
- pip大法安裝httprunner,使用規則請參考中文使用文檔。
介紹httprunner框架兩個命令
- httprunner/hrun --startproject your_projectName 快速生成項目結構:github地址!DEMO
-
- api:生成的api接口測試用例目錄
-
- reports:執行測試用例默認的報告目錄
-
- testcases:測試用例目錄
-
- testsuites:測試用例套件
-
- debugtalk.py:是個熱處理文件,默認就叫這個名字,其他名字框架不認
-
- .env:環境管理,這個暫沒用到
- 使用fiddler/charles抓包工具,導出爲har數據文件,執行hrun2case命令默認生成json格式的測試用例,帶上參數-2y生成yaml格式,默認執行順序:是自上往下執行
-
- config 爲全局配置項,作用域爲整個測試用例
-
- test 對應單個測試步驟,作用域僅限於本身
- hrun可以執行單個測試用例也可以在testcases/testsuites目錄執行測試套件
-
- hrun testcases\ 執行下面的所有測試用例
接口測試中的動態關聯實現
接口不是單接口,而是有一定的依賴,也就是存在業務場景關係
- httprunner支持參數提取,參數引用的功能:extract,在測試用例中加入"extract": [ {“token”: “content.token”}]
-
- content是默認響應參數,.點後面的纔是json對象目錄層級
-
- token會作爲引用變量,$token在下面關聯的接口中直接使用
- httprunner支持實現動態運算邏輯,也就是上文中提到的debugtalk.py文件
# 實例:
import random
def gen_random_num(min_num,max_num):
return random.randint(min_num,max_num)
-
- 在api測試用例下修改數據引用函數:${gen_random_num(1,3)}即可
-
- 需要注意的是執行hrun命令需要與debugtalk文件同級目錄,不然會提示找不到func:httprunner.exceptions.FunctionNotFound: gen_random_num is not found.
再說httprunner接口測試框架中的參數數據驅動
滾來滾去又到了數據驅動模塊,人爲來添加參數,難免報錯,還是測試平臺好啊
- 在 HttpRunner 中,若要採用數據驅動的方式來運行測試用例,需要創建一個文件,對測試用例進行引用,並使用 parameters 關鍵字定義參數並指定數據源取值方式。
- 關於這個參數暫時沒有調試出來,目前主要使用httprunner框架監控現網單線程接口
- 詳見使用手冊!
萬年不變梗:封裝大法
真心講封裝,簡單粗暴的講別人封裝好的方法API再次封裝一次,自定義能明瞭的方法。
- configparser:配置文件讀取類庫
- celery:作爲系統目錄對比文件
- requests:HTTP協議接口請求類庫,當然不止http協議,有webservice
- logging:日誌收集器,需要對腳本進行日誌跟蹤
重點:swagger接口文檔自動生成json格式的測試用例
python腳本就是對swagger接口返回的json格式的響應參數進行清洗加入定義的json對象中去
- 考慮第一次生成json測試用例,然後完善接口測試用例之後,如果接口有變動,再次執行swagger腳本,就會覆蓋原已經完善的接口測試用例<相當於白做了>
-
- 需要每次執行swagger對api目錄下的用例進行備份,並生成html報告