httprunner2.x--HttpRunner参数化:内置参数 + 独立参数
在测试用例集合(testsuite)中实现参数化:
- 用例中参数个数:1个 (用户名进行参数化处理),为了便于演示,密码固定不变。
- 数据源提供:直接定义在测试集合文件内部
- 测试数据:两个错误用户名,一个正确用户名(test)
登录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关键字
parameters:
p_username: [admin,test,test1]
报告


浙公网安备 33010602011771号