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: '\> (.*) \&nbsp\;\&nbsp' # 通过正则提取页面中欢迎您: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]

  

报告

 

posted @ 2021-06-04 11:05  莫使娇躯空对月  阅读(149)  评论(0编辑  收藏  举报