今天的文章,我們將進行 HttpRunner 的快速上手,將會進行以下步驟
在開始之前,若想對 HttpRunner 的項目組織結構有所了解,建議可以先閱讀 HttpRunner 名詞解釋,
一條測試用例(testcase)應該是為了測試某個特定的功能邏輯而精心設計的,並且至少包含如下幾點:
測試用例(testcase)
是測試步驟的 有序
集合,而對於接口測試來說,每一個測試步驟
應該就對應一個 API 的請求描述
測試用例集(testsuite)
是 測試用例 的 無序
集合,集合中的測試用例應該都是相互獨立,不存在先後依賴關係的
若已經有 python 和 pip 環境,安裝 HttpRunner
pip install httprunner
or
pip3 install httprunner
安裝的過程
安裝後確定是否安裝成功,
hrun -V
har2case -V
若需要更新 HttpRunner 的版本
pip install -U HttpRunner
建立項目腳手架,專案名稱是 day27
hrun --startproject day27
HttpRunner 會幫我們建立專案目錄結構
day27
├── .env // 環境變數,可存放測試中用到的敏感訊息
├── api // 測試用例(testcase) 對應的 API
│ └── demo_api.yml
├── debugtalk.py // 可以用 python 定義輔助函數,在專案內使用
├── reports // 測試報告存放的料夾
├── testcases // 測試案例資料夾
│ └── demo_testcase.yml
└── testsuites // 測試案例集資料夾
└── demo_testsuite.yml
在 HttpRunner 中,測試用例組織主要基於三個概念:
腳手架產生的 demo_api.yml
內容
name: demo api
variables:
var1: value1
var2: value2
request:
url: /api/path/$var1
method: POST
headers:
Content-Type: "application/json"
json:
key: $var2
validate:
- eq: ["status_code", 200]
使用 day27 的 Code
將 demo_api.yml
內容修改如下,測試 google search api
name: google search
base_url: https://www.google.com
variables:
keyword: httprunner # 宣告 keyword 變數
request:
url: /search
method: GET
params:
q: $keyword # 使用 keyword 變數作為搜尋的參數,這邊是 httprunner
extract:
- title: "<title>(.*)</title>" # 用正規式找到 response html 的 title
validate:
- eq: ["status_code", 200] # 斷言 status_code 等於 200
- startswith: ["$title", "httprunner"] # 斷言 title 以 httprunner 開始
使用 hrun
Command 跑測試
cd day27
hrun api/demo_api.yml
or
hrun api
Console 顯示測試結果,並產出 HTML 格式的測試報告
測試報告,1 個測試案例通過,
測試報告,檢查 google search api 的 response,
確認 status_code = 200
and title startswith httprunner