一、 httprunner 用例变量
1. 配置变量(config variables)
- 用于数据解耦 —- 字典类型
- 定义在
config
或者 teststep
中 - 变量在引用时,
不使用函数引用
,可以不加大括号 {}
用例级别(config 中 配置)
方式1:直接 指定 参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| config: name: 登录 base_url: http://120.55.190.222:7080 verify: false variables: user: auto pw: sdfsdfsdf
export: - cookie
teststeps: - name: 登录 request: method: POST url: /api/mgr/loginReq data: username: ${user} password: ${pw} extract: cookie: cookies.sessionid validate: - eq: ['status_code', 200] - eq: ['body.retcode', 0]
|
方式 2:在项目根目录中创建一个名为 debugtalk.py
的文件
debugtalk.py 文件
1 2
| def login_variables(): return {'user': 'auto', 'pw': 'sdfsdfsdf'}
|
login.yml 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| config: name: 登录 base_url: http://120.55.190.222:7080 verify: false variables: ${login_variables()}
export: - cookie
teststeps: - name: 登录 request: method: POST url: /api/mgr/loginReq data: username: ${user} password: ${pw} extract: cookie: cookies.sessionid validate: - eq: ['status_code', 200] - eq: ['body.retcode', 0]
|
步骤级别(teststeps 中 配置)
- 不支持 使用
函数返回值的方式
配置变量 - 当 用例级别 函数名 和 步骤级别 函数名相同时, 步骤级别的 优先级大于 用例级别
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| config: name: 登录 base_url: http://120.55.190.222:7080 verify: false variables: user: auto pw: sdfsdfsdf export: - cookie
teststeps: - name: 登录 variables: user: auto pw: sdfsdfsdf request: method: POST url: /api/mgr/loginReq data: username: ${user} password: ${pw} extract: cookie: cookies.sessionid validate: - eq: ['status_code', 200] - eq: ['body.retcode', 0]
|
2. 环境变量(env variables)
- 在 项目 根目录 创建一个名为
.env.txt 文件
.env
文件中的内容不能有空行
.env.txt 文件
1 2
| username=auto password=sdfsdfsdf
|
login.yml 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| config: name: 登录 base_url: http://120.55.190.222:7080 verify: false variables: user: ${ENV(username)} pw: ${ENV(password)}
export: - cookie
teststeps: - name: 登录 request: method: POST url: /api/mgr/loginReq data: username: ${user} password: ${pw} extract: cookie: cookies.sessionid validate: - eq: ['status_code', 200] - eq: ['body.retcode', 0]
|
二. 参数化(parameter variables)
- 用于参数化 —- 列表类型
- 定义在
config
中
1. 独立参数
运行用例数 = 独立参数的 笛卡尔积
可以运行 八次
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| config: name: 登录 base_url: http://120.55.190.222:7080 verify: false parameters: user: - auto - auto1 pw: - sdfsdfsdf - sdfsdf code: - 0 - 1 export: - cookie
teststeps: - name: 登录 request: method: POST url: /api/mgr/loginReq data: username: $user password: $pw extract: cookie: cookies.sessionid validate: - eq: ['status_code', 200] - eq: - body.retcode - $code
|
2. 关联参数
运行用例数 = 关联参数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| config: name: 登录 base_url: http://120.55.190.222:7080 verify: false parameters: user-pw-code: - ['auto', 'sdfsdfsdf', 0] - ['auto1', 'sdfsdf', 1] - - aout2 - sdfsdf - 1 export: - cookie
teststeps: - name: 登录 request: method: POST url: /api/mgr/loginReq data: username: $user password: $pw extract: cookie: cookies.sessionid validate: - eq: ['status_code', 200] - eq: - body.retcode - $code
|
3. 关联参数 和 独立参数 混合使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| config: name: 登录 base_url: http://120.55.190.222:7080 verify: false parameters: user-pw: - ['auto', 'sdfsdfsdf'] - ['auto1', 'sdfsdf'] - - aout2 - sdfsdf code: - 1 - 0 export: - cookie
teststeps: - name: 登录 request: method: POST url: /api/mgr/loginReq data: username: $user password: $pw extract: cookie: cookies.sessionid validate: - eq: ['status_code', 200] - eq: - body.retcode - $code
|
4. 使用 函数 调用参数
debugtalk.py 文件
1 2 3 4 5 6
| def login_parameters(): return [ {'user': 'auto', 'pw': 'sdfsdfsdf', 'code': 0}, {'user': 'auto1', 'pw': 'sdfsdfsdf', 'code': 1}, {'user': 'auto', 'pw': 'sdfsdfsdf1', 'code': 1}, ]
|
login_parameters.yml 文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| config: name: 登录 base_url: http://120.55.190.222:7080 verify: false parameters: user-pw-code: ${login_parameters()} export: - cookie
teststeps: - name: 登录 request: method: POST url: /api/mgr/loginReq data: username: $user password: $pw extract: cookie: cookies.sessionid validate: - eq: ['status_code', 200] - eq: - body.retcode - $code
|
三、 httprunner 前置与后置