4.httprunner-参数化和数据驱动
作者:互联网
前言
- 参数化在config中使用parameters关键字
- httprunner2.x 是在testsuite中实现参数化
- httprunner3.x 是在testcase中的config实现参数化
- 测试搜索功能,只有一个输入框,但是有十种不同的搜索关键字
- 测试账号登录功能,需要输入账号密码,然后按照等价类划分后有20种组合情况
- 单个独立参数:举例的第一个场景,只需要变化搜索关键字这一个参数
- 多个具有关联性的参数:举例的第二个场景,需要变化账号密码两个参数,并且两个参数关联组合
- 对于参数而言,我们可能具有一个参数列表,运行时按照不同的规则去取值
- 例如顺序取值、随机取值、循环取值等
- 这就是典型的参数化和数据驱动
- 假设我们用4个账号登录,密码都是123456
- 我们通过parameters设置key为user,value为4个账号的列表
- 那么运行的时候,user依次循环取列表的值,供下方引用变量请求
- 列表有多少个参数,接口就会对应执行请求多少次,会有多少个用例
- 设置参数化的value必须是list
config: name: 登录用例 base_url: ${ENV(base_url)} # 设置变量 variables: password: 123456 #设置参数化 parameters: user:[test1,test2,test3,test4] teststeps: - name: step-登录 request: url: /v1/login/ method: POST params: user: $user #引用参数化命令 password: $password多个参数一一对应参数化
- 场景:我们需要每个账号对应一个单独的密码来实现场景
- 我们继续parameters设置参数化,而多个不同的参数,我们用-隔开
- 每个账号对应一个单独的密码,我们需要两个参数,user和password
- 这两个参数,我们用-隔开定义两个key,然后一一对应下面的参数
- 执行的时候,两个key依次循环取对应值供下方引用
config:
name: 登录用例
base_url: ${ENV(base_url)}
parameters:
# 设置user和password两个key,用-隔开
# 每次按顺序循环取对应的值
user-password:
-[test1,123456]
-[test2,654321]
-[test3,987544]
-[test4,678910]
teststeps:
-
name: step-登录
request:
url: /v1/login/
method: POST
params:
user: $user
password: $password
笛卡尔积组合参数
- 比如测试账号有4种,[test1,test2,test3,test4]
- 密码也有4种,[123456,654321,56789,98765]
- 用笛卡尔积组合的话,就是4*4=16种组合用例
- 我们可以在parameters下单独设置两个key,user和password
- 将用户名和密码进行全组合,即每个用户名的取值都与每个密码的取值成对进行组合应
config: name: 登录用例 base_url: ${ENV(base_url)} parameters: user: [test1,test2,test3,test4] password: [123456,654321,56789,98765] teststeps: - name: step-登录 request: url: /v1/login/ method: POST params: user: $user password: $password
标签:httprunner,name,parameters,url,参数,user,驱动,password 来源: https://www.cnblogs.com/Mickey-7/p/16226020.html