变量优先级
有几种不同类型的变量,优先级可能会令人困惑。 避免混淆的最好方法是使用不同的变量名。 但是,如果必须使用相同的变量名,则应该了解优先级策略。
测试用例
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: # 提取变量(extract variables)
varA: body.data.A # 假设 varA="extractVarA"
varB: body.data.B # 假设 varB="extractVarB"
-
name: step 2
varialbes:
varA: "step2A"
request:
url: /$varA/$varB/$varC # varA="step2A", varB="extractVarB", varC="configC"
method: GET
在一个测试用例中,变量优先级如下:
- step variables > extract variables, 例如:step 2, varA="step2A"
- parameter variables > config variables, 例如:step 1, varB="paramB1"
- extracted variables > parameter variables > config variables, 例如:step 2, varB="extractVarB"
- config variables的优先级最低,例如:step 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
在测试套件中,变量优先级如下:
- 测试用例变量(testcase variables) > export variables > testsuite config variables > 被引用用例配置变量(referenced testcase config variables)