HttpRunner接口自動化測試框架


簡介

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

框架流程

核心特性

  • 繼承 Requests 的全部特性,輕松實現 HTTP(S) 的各種測試需求
  • 測試用例與代碼分離,采用YAML/JSON的形式描述測試場景,保障測試用例具備可維護性
  • 測試用例支持分層機制,充分實現測試用例的復用
  • 測試用例支持參數化和數據驅動機制
  • 使用 skip 機制實現對測試用例的分組執行控制
  • 測試請求支持完善的 hook 機制
  • 支持熱加載機制,在文本測試用例中輕松實現復雜的動態計算邏輯
  • 基於 HAR 實現接口錄制和用例生成功能(har2case)
  • 結合 Locust 框架,無需額外的工作即可實現分布式性能測試
  • 執行方式采用 CLI 調用,可與 Jenkins 等持續集成工具完美結合
  • 測試結果統計報告簡潔清晰,附帶詳盡統計信息和日志記錄
  • 具有可擴展性,便於擴展實現 Web 平台化(HttpRunnerManager)

下載安裝

使用pip命令進行安裝

  pip install httprunner

安裝后效驗是否安裝成功,可以使用如下命令進行效驗

  hrun -V
  1.4.2

  har2case -V
  0.1.8

若版本號正常顯示,則說明安裝正常。

入門使用

測試場景

用例設計

HttpRunner的測試用例支持兩種文件格式:YAML 和 JSON。這里以YAML為例。

  # test_httpbin.yml
  - config:
      name: httpbin api test
      request:
          base_url: http://www.httpbin.org
  - test:
      name: get request
      request:
          url: /get
          method: GET
      validate:
          - eq: [status_code,200]
  • config:作為整個測試用例集的全局配置項
  • test:對應單個測試用例
  • name 這個test的名字
  • request 這個test具體發送http請求的各種信息, 如下:
  • url 請求的路徑 (若config中有定義base_url, 則完整路徑是用 base_url + url )
  • method 請求方法 POST, GET等等
  • validate 完成請求后, 所要進行的驗證內容. 所有驗證內容均通過該test才算通過,否則失敗

運行測試

使用hrun執行測試,如下所示:

C:\Users\Shuqing>hrun D:\api_test\HttpRunner_test\test_httpbin.yml
get request
INFO     GET /get
INFO     status_code: 200, response_time(ms): 1967.35 ms, response_length: 273 bytes
INFO     start to validate.
.

----------------------------------------------------------------------
Ran 1 test in 1.976s

OK
INFO     Start to render Html report ...
INFO     Generated Html report: C:\Users\Shuqing\reports\1533092144.html

查看測試報告

打開html報告如下:

HttpRunnerManager

簡介

HttpRunnerManager是基於HttpRunner的接口自動化測試平台,該工具是對 HttpRunner的包裝和Web圖形化, 另外還增加了一些新概念(項目/模塊)用來組織用例。
如果對yaml語法格式不熟悉,以及對於httprunner命令不熟悉的可以使用該平台執行接口自動化測試。

項目地址:https://github.com/HttpRunner/HttpRunnerManager

核心特性

  • 項目管理:新增項目、列表展示及相關操作,支持用例批量上傳(標准化的HttpRunner json和yaml用例腳本)
  • 模塊管理:為項目新增模塊,用例和配置都歸屬於module,module和project支持同步和異步方式
  • 用例管理:分為添加config與test子功能,config定義全部變量和request等相關信息 request可以為公共參數和請求頭,也可定義全部變量
  • 場景管理:可以動態加載可引用的用例,跨項目、跨模快,依賴用例列表支持拖拽排序和刪除
  • 運行方式:可單個test,單個module,單個project,也可選擇多個批量運行,支持自定義測試計划,運行時可以靈活選擇配置和環境,
  • 分布執行:單個用例和批量執行結果會直接在前端展示,模塊和項目執行可選擇為同步或者異步方式,
  • 環境管理:可添加運行環境,運行用例時可以一鍵切換環境
  • 報告查看:所有異步執行的用例均可在線查看報告,可自主命名,為空默認時間戳保存,
  • 定時任務:可設置定時任務,遵循crontab表達式,可在線開啟、關閉,完畢后支持郵件通知
  • 持續集成:jenkins對接,開發中。。。

下載安裝

1.安裝mysql數據庫服務端(推薦5.7+),並設置為utf-8編碼,創建相應HttpRunnerManager數據庫,設置好相應用戶名、密碼,啟動mysql。
2.將HttpRunnerManager下載下來,解壓放在任意盤符位置,例如我放在D盤根目錄,並重命名為HttpRunnerManager

環境配置

HttpRunnerManager支持分布式執行,模塊和項目執行可選擇為同步或者異步方式,因此需要安裝相關依賴工具。

erlang

Erlang是一種通用的面向並發的編程語言,它由瑞典電信設備制造商愛立信所轄的CS-Lab開發,目的是創造一種可以應對大規模並發活動的編程語言和運行環境。

下載地址:http://www.erlang.org/downloads

Rabbitmq

RabbitMQ 是一個由 Erlang 語言開發的 AMQP(高級消息隊列協議)的開源實現。它支持多個消息傳遞協議。RabbitMQ可以部署在分布式和聯合配置中,以滿足高規模、高可用性的需求,另外安裝rabbitmq需要先安裝erlang。

下載地址:http://www.rabbitmq.com/download.html 下載后雙擊rabbitmq-server-3.7.7.exe文件進行安裝。

安裝完成后如下圖如所示,選中RabbitMQ Service -start 然后以管理員身份運行。

可以通過訪問 http://localhost:15672 進行測試,默認的登陸賬號為:guest,密碼為:guest。

相關資料:RabbitMQ Windows環境安裝官方手冊


免責聲明!

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



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