Scala使用jackson解析JSON
簡介
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
若版本號正常顯示,則說明安裝正常。
入門使用
測試場景
- 測試介面:http://httpbin.org/get
- 介面型別:GET
用例設計
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。