httprunner2.x--HttpRunner参数化:内置参数 + 组合参数(固定组合策略)
在测试用例集合(testsuite)中实现参数化:
- 用例中参数个数:2个 (用户名和密码同时进行参数化处理)
- 数据源提供:直接定义在测试集合文件内部
- 测试数据: 正确的“用户名/密码”组合为 “test/123456”
- 关于组合: “用户名+密码”的组合数据已经提前定义好
登录api
name: login api
variables:
p_username : test # api变量
p_password: 123456 # api变量
base_url: http://localhost:8000
request:
url: /api/login/
method: POST
headers:
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
data:
account: $p_username # 使用变量p_username
password: $p_password # 使用变量p_password
# 禁止重定向
allow_redirects: False
#validate:
# - eq: ["status_code", 200]
index api
name: index
base_url: http://localhost:8000
request:
url: /api/index/
method: GET
headers:
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36
cookie: $cookievalue
#validate:
# - eq: ["status_code", 200]
测试用例
config:
name: 登录测试用例
base_url: http://localhost:8000
variables:
p_username: test # api变量
p_password: 123456 # api变量
teststeps:
-
name: 第一步:调用登录接口,并提取cookies
api: api/Http_login.yml
extract:
- cookievalue: headers.Set-Cookie #从上面请求结果(响应)中提取 cookies
validate:
- eq: ['status_code', 302]
-
name: 第二步:传入cookievalue
api: api/Http_index.yml
extract:
- s1: status_code #提取响应状态码
- s2: '\> (.*) \ \;\ ' # 通过正则提取页面中欢迎您:test
validate:
- eq: [$s1, 200] #“status_code” 进行HTTP响应状态码断言
- eq: [$s2, 欢迎您:$p_username]
测试套件
config:
name: 登录 测试套件
base_url: http://localhost:8000
testcases:
-
name: 测试用例test.yml
testcase: testcases/test_Httplogin.yml
parameters:
# 每次读取一对参数
p_username-p_password:
- [admin,11111]
- [test,123456]
- [test,1111]
报告


浙公网安备 33010602011771号