前言
所謂熱愛,就是堅持和投入!
一、問題描述
在之前的httprunner版本中(2.*之前),進行參數化傳值利用測試用例中config下的parameters實現,如下所示:
# testcase_demo.yml文件
- config:
name: "驗證百度搜索是否正確"
base_url: "https://www.baidu.com"
parameters:
search_word: ['天天向上','12306','newdream']
- test:
name: "百度搜索請求"
request:
url: "/s"
method: GET
headers:
User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"
Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
Accept-Encoding: "gzip, deflate, br"
Accept-Language: "zh-CN,zh;q=0.9"
params:
wd: $search_word
validate:
- eq: ["status_code",200]
上述利用命令 hrun testcase_demo.yml 進行執行后,在 httprunner 2.* 上會提示 $search_word 不存在,原因是httprunner 2.*上不支持在測試用例文件中使用parameters字段。
二、問題解決
在 httprunner 2.* 版本中,只能在testsuite測試套件文件中調用用例文件的時候才可以使用參數化,如下代碼:
# testsuite測試套件文件內容
config:
name: 測試套件
testcases:
- name: param_demo
testcase: testcases/testcase_demo.yml
parameters:
search_word: ['天天向上','12306','newdream']
此時把之前出現問題代碼的config部分中的parameters去掉,使用 hrun testsuite測試套件文件.yml 執行,即可完成參數化功能。
三、小結
如還有讀者有疑問或者根據步驟還是報錯,可加博主QQ或V信咨詢。
