httprunner变量、参数关联与参数化
httprunner是基于requests的,所以处理思路与python中处理一样
目录
1、变量
2、httprunner参数关联
3、httprunner参数化
1、变量
比如说有一种场景,接口a需要传一个参数m值才能返回接口,接口b需要传参数m的值以及a的返回值才能获取结果,这时候可以把参数的值作为一个全局变量,然后传值
这里用到关键字variables
- config:
name: my_test
base_url: http://localhost:8090
variables:
m: test
- test:
name: a
request:
url: /a
method: post
headers:
Content-Type: application/json
json:
m: $m
extract:
- q: content.q
validate:
- eq: [status_code, 200]
- test:
name : b
request :
url : /b
method : POST
headers:
Content-Type: application/json
token: $token
json:
m: $m
q: $q
validate :
- eq : [status_code,200]- config:
name: my_test
base_url: http://localhost:8090
variables:
m: test
- test:
name: a
request:
url: /a
method: post
headers:
Content-Type: application/json
json:
m: $m
extract:
- q: content.q
validate:
- eq: [status_code, 200]
- test:
name : b
request :
url : /b
method : POST
headers:
Content-Type: application/json
token: $token
json:
m: $m
q: $q
validate :
- eq : [status_code,200]
2、httprunner参数关联
2个接口直接有关联,比如新增的接口需要登录信息才能请求成功,这时候就需要把登录信息传给登录接口,可以是cookies或者token
这里用到关键字extract关键字完成提取,这里以某平台的登录token关联为例:
mytest.yaml
- config:
name: my_test
base_url: http://localhost:8090
- test:
name: test_demo case1
request:
url: /admin/login
method: post
headers:
Content-Type: application/json
json:
username: admin
password: 123456
extract:
- token: content.token # 提取token
validate:
- eq: [status_code, 200]
- test:
name : add
request :
url : /admin/add
method : POST
headers:
Content-Type: application/json
token: $token
json:
m: $m
validate : - eq : [status_code,200]
3、httprunner参数化
在case中需要添加多种场景的参数取值组合,来检验case,以某平台登录为例子,以下记录以csv来传参,用到关键字parameters,传csv 使用parameterize(可简写为P)
myuser.csv
username,password name1,123456 name2,1234567
mytest.yaml
- config:
name: my_test
base_url: http://localhost:8090
parameters:
- username-passwd:${P(myuser.csv)} #1、参数名称与文件第一行成对应关系 2、从第2行开始取值
- test:
name: test_demo case1
request:
url: /admin/login
method: post
headers:
Content-Type: application/json
json:
username: $user
password: $password
validate:
- eq: [status_code, 200]
每个人都是一座山 世上最难攀越的山 其实是自己 往上走 即便一小步 也有新高度

浙公网安备 33010602011771号