前言
httprunner 3.x里面變量可以分為這幾種:step變量,config變量,extract變量,export變量
variables變量優先級
httprunner 3.x里面變量:
- step(參數變量) 在step 步驟中設置的variables,也就是局部變量,在當前step中生效
- config(配置變量) 在config配置中設置的variables,也就是全局變量,在當前整個文件中都生效
- extract(提取變量) 提取返回結果的變量
- export(導出變量) export 導出變量,讓局部變量可以在全局引用,也可以在導入前面一個用例的時候提取的變量關聯過來
原則上在使用變量的時候,變量名稱盡量不要重復,如果有重復的時候,那么變量就會有優先級了
yaml 用例示例
config:
name: xxx
variables: # config variables
varA: "configA"
varB: "configB"
varC: "configC"
parameters: # parameter variables
varA: ["paramA1"]
varB: ["paramB1"]
teststeps:
-
name: step 1
variables: # step variables
varA: "step1A"
request:
url: /$varA/$varB/$varC # varA="step1A", varB="paramB1", varC="configC"
method: GET
extract: # extracted variables
varA: body.data.A # suppose varA="extractVarA"
varB: body.data.B # suppose varB="extractVarB"
-
name: step 2
varialbes:
varA: "step2A"
request:
url: /$varA/$varB/$varC # varA="step2A", varB="extractVarB", varC="configC"
method: GET
在測試用例中,變量優先級按以下順序排列:
- 步驟變量 > 提取的變量,例如步驟 2,varA="step2A"
- 參數變量 > 配置變量,例如第 1 步,varB="paramB1"
- 提取的變量 > 參數變量 > 配置變量,例如第 2 步,varB="extractVarB"
- 配置變量的優先級最低,例如步驟 1/2,varC="configC"
測試套件
config:
name: xxx
variables: # testsuite config variables
varA: "configA"
varB: "configB"
varC: "configC"
testcases:
-
name: case 1
variables: # testcase variables
varA: "case1A"
testcase: /path/to/testcase1
export: ["varA", "varB"] # export variables
-
name: case 2
varialbes: # testcase variables
varA: "case2A"
testcase: /path/to/testcase2
在測試套件中,變量優先級按以下順序排列:
測試用例變量 > 導出變量 > 測試套件配置變量 > 引用的測試用例配置變量