HttpRunner 的測試用例支持兩種文件格式:YAML 和 JSON。JSON 和 YAML 格式的測試用例完全等價,包含的信息內容也完全相同。
在 HttpRunner 中,測試用例組織主要基於三個概念:
測試用例集(testsuite):對應一個文件夾,包含單個或多個測試用例(YAML/JSON
)文件
測試用例(testcase):對應一個 YAML/JSON
文件,包含單個或多個測試步驟
測試步驟(teststep):對應 YAML/JSON
文件中的一個 teststep,
描述單次接口測試的全部內容,包括發起接口請求、解析響應結果、校驗結果等。
本篇內容主要描述testcase 和 teststep 的編寫格式和內容。
1.在一個測試用例文件中包含了兩層變量空間作用域(本篇用yaml文件舉例)
config:作為整個測試用例的全局配置項,作用域為整個測試用例;test:測試步驟的變量空間,會繼承或覆蓋 config 中定義的內容;
2.config中的參數詳情
參數 | 是否必須 | 格式 | 詳情 |
name |
YES | string | 測試用例的名稱,在測試報告中將作為標題 |
variables | NO | list of dict | 定義的全局變量,作用域為整個用例 |
parameters | NO | list of dict | 全局參數,用於實現數據化驅動,作用域為整個用例 |
request | NO | dict | request 的公共參數,作用域為整個用例;常用參數包括 base_url 和 headers |
參數 | 是否必須 | 格式 | 詳情 |
base_url | NO | String | 測試用例請求 URL 的公共 host,指定該參數后,test 中的 url 可以只描述 path 部分 |
headers | NO | dict | request 中 headers 的公共參數,作用域為整個用例 |
output | NO | list | 整個用例輸出的參數列表,可輸出的參數包括公共的 variable 和 extract 的參數; 在 log-level 為 debug 模式下,會在 terminal 中打印出參數內容 |
3.測試步驟(teststeps)參數詳情
參數 | 是否必須 | 格式 | 詳情 |
name | YES | String | 測試步驟的名稱,在測試報告中將作為測試步驟的名稱 |
request | YES | dict | HTTP 請求的詳細內容;可用參數詳見 python-requests 官方文檔 |
variables | NO | list of dict | 測試步驟中定義的變量,作用域為當前測試步驟 |
extract | NO | list | 從當前 HTTP 請求的響應結果中提取參數,並保存到參數變量中(例如token ),后續測試用例可通過$token 的形式進行引用 |
validate | NO | list | 測試用例中定義的結果校驗項,作用域為當前測試用例,用於實現對當前測試用例運行結果的校驗 |
times | NO | int | 重復執行測試用例的次數 |
setup_hooks | NO | list | 在 HTTP 請求發送前執行 hook 函數,主要用於准備工作 |
teardown_hooks | NO | list | 在 HTTP 請求發送后執行 hook 函數,主要用戶測試后的清理工作 |