HttpRunner框架(一)

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

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

核心特性

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

 

1.首先是環境搭建:github

  採用pip安裝或者直接從github上下載安裝 pip install httprunnerjson

  安裝完成後cmd命令檢查 hrun -Vapp

 

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和測試分層的知識。

相關文章
相關標籤/搜索