概念
debugtalk.py
根据约定优于配置的原则,每个项目应该且只能有一个debugtalk.py
文件。这个文件有多个功能。
- 作为项目的根路径锚,测试用例中的相对路径,例如引用测试用例或
CSV
文件,都基于此根路径 - 作存储自定义
python
函数,测试用例中调用的函数都在这个文件中定义
variables priority
有几种不同类型的变量,隐修会让人感到困惑。避免混淆的最佳方法是使用不同的变量名。但是,如果必须使用相同的变量名,则应该了解优先级策略。
testcase
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
在测试用例中,变量的优先级顺序如下:
- step variables > extracted variables, e.g. step 2, varA="step2A"
- parameter variables > config variables, e.g. step 1, varB="paramB1"
- extracted variables > parameter variables > config variables, e.g. step 2, varB="extractVarB"
- config variables are in the lowest priority, e.g. step 1/2, varC="configC"
testsuite
config:
name: xxx
variables: # testsuite config variables testsuite配置变量
varA: "configA"
varB: "configB"
varC: "configC"
testcases:
-
name: case 1
variables: # testcase variables testcase变量
varA: "case1A"
testcase: /path/to/testcase1
export: ["varA", "varB"] # export variables 导出变量
-
name: case 2
varialbes: # testcase variables testcase变量
varA: "case2A"
testcase: /path/to/testcase2
在testsuite中,变量的优先级如下:
- testcase variables > export variables > testsuite config variables > referenced testcase config variables