httprunner4.x学习6 - 两种方式处理接口关联

发布时间 2023-05-28 14:43:55作者: 此名称已经存在

第一种方式:使用export导出变量,变成全局变量

当登录用例写完后,后面想继续写其他用例,可以导入前面的login用例,当成下个用例的步骤使用
导入前一个用例之前,需先 export 导出变量,变成全局变量。

登陆用例:

创建文件夹login,在文件夹下分别创建两个文件login.yml 和 useinfo.yml

login.yml用于测试登陆接口, useinfo.yml用于测试获取用户信息

login.yml内容大概如下:

config:
  name: 测试登录后关联
  variables:
    username: test
    password: 123456
  export:
    - token

teststeps:
-
  name: 登录成功
  request:
      url: http://124.70.221.221:8201/api/v1/login
      method: POST
      json:
        username: ${username}
        password: ${password}
  extract:
      token: body.token
  validate:
      - eq: ["status_code", 200]
      - eq: [body.code, 0]

获取用户信息用例:

其他用例需用到登录的场景,可以使用testcase 关键字导入

config:
  name: 测试登录后关联

teststeps:
-
  name: 1.登录后-获取token
  testcase: login/login.yml

- name: 2.info
  request:
    method: GET
    headers:
      Authorization: Token ${token}
    url: http://124.70.221.221:8201/api/v1/userinfo
  validate:
    - eq: [body.code, 0]

  使用testcase 导入前面一个用例,导入用例的路径根据项目根目录使用相对路径
使用hrp 命令运行后生成报告

hrp run login/userinfo.yml --gen-html-report

  注意点:执行hrp命令的时候,进入的目录一定要是login文件夹的上一级目录,否则无法成功引入login.yml文件种的内容。用例执行结果为0

 

 

第二种方式直接写入:把依赖关系写在同一条用例中

具体步骤:

config:
    name: 用例描述-登录用例
    base_url: http://124.70.221.221:8201
    variables:
        user: test1
        psw: "123456"
    export:
    - token

teststeps:
-
    name: step-登录
    request:
        url: /api/v1/login
        method: POST
        json:
            username: $user
            password: $psw
    extract:
        token: body.token
    validate:
        - eq: [status_code, 200]
        - eq: [body.msg, login success!]

-
    name: step-userinfo
    request:
        url: /api/v1/userinfo
        headers:
            Authorization: Token $token
        method: POST
        json:
            name: $user
            sex: M
            age: 20
            mail: 283340479@qq.com
    validate:
    - eq: [status_code, 200]
    - eq: [body.code, 0]

  进入testcase目录,执行hrp输出report

hrp run test_info.yml --gen-html-report