搭建HTTPRUNNER框架接口測試DEMO

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報告
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章