前言
- httprunner 3.x里面变量可以分为这几种:step变量,config变量,extract变量,export变量
变量介绍
- httprunner 3.x里面变量:
- step(参数变量) 在step 步骤中设置的variables,也就是局部变量,在当前step中生效
- config(配置变量) 在config配置中设置的variables,也就是全局变量,在当前整个文件中都生效
- extract(提取变量) 提取返回结果的变量
- export(导出变量) export 导出变量,让局部变量可以在全局引用,也可以在导入前面一个用例的时候提取的变量关联过来
测试用例
- 避免混淆的最好方法是使用不同的变量名。 但是,如果必须使用相同的变量名,则应该了解优先级策略
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
- 在测试用例中,变量优先级按以下顺序排列:
- 步骤变量 > 提取的变量,例如步骤 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
- 在测试套件中,变量优先级如下:
测试用例变量 > 导出变量 > 测试套件配置变量 > 引用的测试用例配置变量