HttpRunner 接口自動化測試框架

簡介

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

**主流接口自動化工具框架: **

      從上圖可知,技術選型一般會優先考慮 Requests+Python 和 HttpRunner,Requests+Python 在自動化測試總結分類裏面有文章講過,這裏我們針對 HttpRunner 進行探索。

框架流程

 主要特性:

** 環境安裝:**

HttpRunner 是一個基於 Python 開發的測試框架,可以運行在 macOS、Linux、Windows 系統平臺上。HttpRunner 支持 Python 3.4 及以上的所有版本,推薦建議使用 Python 3.4 及以上版本。

     使用 pip 命令安裝:pip3 install httprunner  【因本人環境裝有 python 兩個版本,這裏使用是 python3.6 版本,就使用 pip3 命令,如是 python2.7 版本的話,就用 pip 命令安裝】

安裝完成後校驗:

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

基礎功能

** 1、 錄製生成用例**

在轉換生成測試用例之前,需要先將抓取得到的數據包導出爲 HAR 格式的文件。使用 Charles 抓包工具 Proxy 中的操作方式爲,選中需要轉換的接口(可多選或全選),點擊右鍵,在懸浮的菜單目錄中點擊【Export...】,格式選擇 HTTP Archive(.har) 後保存即可;假設我們保存的文件名稱爲 test.har

** 轉換測試用例**

在命令行終端中運行 har2case 命令,即可將 test.har 轉換爲 HttpRunner 的測試用例文件。使用 har2case 轉換腳本時默認轉換爲 JSON 格式

加上 -2y/--to-yml 參數後轉換爲 YAML 格式

       兩種格式完全等價,YAML 格式更簡潔,JSON 格式支持的工具更豐富,大家可根據個人喜好進行選擇。

生成後的用例如下圖所示:

json 格式:

** YAML 格式:**

config:作爲整個測試用例集的全局配置項

test:對應單個測試用例

name 這個 test 的名字

request 這個 test 具體發送 http 請求的各種信息, 如下:

url 請求的路徑 (若 config 中有定義 base_url, 則完整路徑是用 base_url + url)

method 請求方法 POST, GET 等等

data 傳入參數值

validate 完成請求後, 所要進行的驗證內容. 所有驗證內容均通過該 test 纔算通過, 否則失敗.

** 2、運行測試**

若希望測試用例在運行過程中,遇到失敗時不再繼續運行後續用例,則可通過在命令中添加 --failfast 實現。如:hrun test.yaml --failfast

若需要查看到更詳盡的信息,例如請求的參數和響應的詳細內容,可以將日誌級別設置爲 DEBUG,即在命令中添加 --log-level debug。如:hrun test.yaml --log-level debug

爲了方便定位問題,運行測試時可指定 --save-tests 參數,即可將運行過程的中間數據保存爲日誌文件。

日誌文件將保存在項目根目錄的 logs 文件夾中,生成的文件有如下三個(XXX 爲測試用例名稱):

XXX.loaded.json:測試用例加載後的數據結構內容,加載包括測試用例文(YAML/JSON)、debugtalk.py、.env 等所有項目文件,例如 test-quickstart-6.loaded.json

XXX.parsed.json:測試用例解析後的數據結構內容,解析內容包括測試用例引用(API/testcase)、變量計算和替換、base_url 拼接等,例如 test-quickstart-6.parsed.json

XXX.summary.json:測試報告生成前的數據結構內容,例如 test-quickstart-6.summary.json

 3、測試報告

默認情況下,生成的測試報告文件會位於項目根目錄的 reports 文件夾中,文件名稱爲測試開始的時間戳。HttpRunner 中自帶了一個 Jinja2 格式的默認報告模版

測試報告形式如下:

在 Summary 中,會羅列本次測試的整體信息,包括測試開始時間、總運行時長、運行的 Python 版本和系統環境、運行結果統計數據。

 

在 Details 中,會詳細展示每一條測試用例的運行結果。

點擊測試用例對應的 log 按鈕,會在彈出框中展示該用例執行的詳細數據,包括請求的 headers 和 body、響應的 headers 和 body、校驗結果、響應、響應耗時(elapsed)等信息。

       默認情況下,生成的測試報告文件會位於項目根目錄的 reports 文件夾中。如需指定生成報告的路徑,可以使用 --report-dir 參數。

如:hrun test.yaml --dirreport-name g:\home

其它高級特性如數據參數化、用例分層、環境變量等用法請參考官網中文手冊詳細介紹。

 ** 4、創建項目**

使用方式也與 Django 類似,只需要通過 --startproject 指定新項目的名稱即可。如:hrun --startproject httpapidemo

                     

運行後,就會在指定的目錄中生成新項目的目錄結構,接下來,我們就可以按照測試用例的接口 - 模塊 - 場景分層原則往裏面添加用例描述信息了。

需要注意的是,我們在組織測試用例描述的文件目錄結構時,遵循約定大於配置的原則:

具體新增用例目錄結構例子如下:

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/Wk6tdmAKKjUOibZK-mCfYQ