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]
报告