HttpRunner框架(一)


HttpRunner 是一款面向 HTTP(S) 協議的通用測試框架,只需編寫維護一份 YAML/JSON 腳本,即可實現自動化測試、性能測試、線上監控、持續集成等多種測試需求。

中文使用文檔地址:https://testerhome.com/opensource_projects/httprunner     https://cn.httprunner.org/

核心特性

  • 繼承 Requests 的全部特性,輕松實現 HTTP(S) 的各種測試需求
  • 采用 YAML/JSON 的形式描述測試場景,保障測試用例描述的統一性和可維護性
  • 借助輔助函數(debugtalk.py),在測試腳本中輕松實現復雜的動態計算邏輯
  • 支持完善的測試用例分層機制,充分實現測試用例的復用
  • 測試前后支持完善的 hook 機制
  • 響應結果支持豐富的校驗機制
  • 基於 HAR 實現接口錄制和用例生成功能(har2case
  • 結合 Locust 框架,無需額外的工作即可實現分布式性能測試
  • 執行方式采用 CLI 調用,可與 Jenkins 等持續集成工具完美結合
  • 測試結果統計報告簡潔清晰,附帶詳盡統計信息和日志記錄
  • 極強的可擴展性,輕松實現二次開發和 Web 平台化

 

1.首先是環境搭建:

  采用pip安裝或者直接從github上下載安裝 pip install httprunner

  安裝完成后cmd命令檢查 hrun -V

 

2.我們用相關命令直接生成對應的項目文件夾。

  hrun --startproject 文件夾  如HttpRunnerDemo

  執行命令后可以看到對應的目錄生成了

  

從目錄可以看出httprunner采用分層的設計思想,這一部分下一節再研究。

3.我們在testcases中建立一個demo的yml文件,把接口測試資料按一定的規則寫入,如下實例,yml需遵循嚴格的縮進。

- config:
    request:
      headers: $content
      base_url: $host
      url: /commons_service/weather/getWeatherListByLocation?appType=6&requestId=777777
      method: POST

- test:
    name: test weather ID1
    request:
      json:
        body: {"lat":"", "lng":"", "city":"武漢市"}
    validate:
      - eq: [status_code,200]
      - eq: [json.msg,"成功"]

- test:
    name: test weather ID2
    request:
      json:
        body: { "lat":"123","lng":"125","city":""}
    validate:
      - eq: [status_code,200]
      - eq: [json.msg,"成功"]

  

config是接口配置部分,test是用例部分,validate是斷言部分,用例非常格式化所以清晰。

上面的實例,我們在config中引入了變量 $host  $content等,是因為很多接口的公共部分,我們可以抽離出來放入debugtalk.py  

 

 4.運行用例,用hrun命令,如下:hrun   \tests\testcases\test_weather.yml

運行能看到運行結果以及生成測試報告,我們打開報告查看:

測試信息在報告中都有記錄,我們可以打開log查看詳情,我們可以清晰的看到接口返回和我們的斷言結果。

 

 

當然httprunner還支持接口錄制(用抓包工具生成.har文件)后轉為可執行的用例(用har2case),最重要的是,測試用例和代碼的分離。這樣使得稍有編碼功底的人迅速上手。

 

下一篇將會學習har2case和測試分層的知識。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM