pytest + yaml 框架 -23.支持步骤中添加局部变量
前言
一个用例中会调用多个接口步骤,每个步骤中可能会存在相同的变量名,如登录用户名username,注册用户名usename, 这2个接口中需要使用不同的值。
于是可以在步骤中添加局部变量来解决此问题,局部变量的范围只在当前请求步骤中有效,不会污染全局变量的使用。
此功能实现在v1.2.0 版本上解决
环境准备
v1.2.0 版本解决和优化以下问题
1.断言的时候 None 和 'None' 可以判断是相等,在yaml中可以写null 或者 None, 不区分类型了
2.添加局部变量variables
3.优化request 下的hook 功能
4.其它细节优化
使用示例
以下是示例demo
config:
name: 步骤变量测试
variables:
user: test
test_s1:
print: ${user}
validate:
- eq: ['${user}', test]
test_s2:
name: 步骤变量优先
print: ${user}
variables:
user: test3
validate:
- eq: ['${user}', test3]
test_s3:
name: 全局变量不受影响
print: ${user}
validate:
- eq: ['${user}', test]
test_s4:
name: 每个步骤变量是独立的
variables:
user: testx
print: ${user}
validate:
- eq: ['${user}', testx]
test_s5:
-
name: 每个用例中可以有多个步骤变量
variables:
user: testq1
print: ${user}
validate:
- eq: ['${user}', testq1]
-
name: 每个用例中可以有多个步骤变量
variables:
user: testq2
print: ${user}
validate:
- eq: ['${user}', testq2]
-
name: 全局变量不受影响
print: ${user}
validate:
- eq: ['${user}', test]
在request 请求中也可以支持步骤变量的使用
config:
name: post示例
variables:
name: test
teststeps:
-
name: post 1
variables:
name: yoyo
request:
method: POST
url: http://httpbin.org/post
json:
username: ${name}
password: "123456"
validate:
- eq: [status_code, 200]
-
name: post 2
request:
method: POST
url: http://httpbin.org/post
json:
username: ${name}
password: "123456"
validate:
- eq: [status_code, 200]
在上面的实例中,post 1 得到步骤变量里面的 yoyo 值,post 2得到全局变量里面的test
网易云完整视频课程https://study.163.com/course/courseMain.htm?courseId=1213419817&share=2&shareId=480000002230338
报名咨询wx:283340479 (已报名的同学学习过程中有问题,都可以协助解决)