3.httprunner-extract/.env/Testcase
阅读原文时间:2023年07月08日阅读:1

参数关联-extract

场景:上一个接口的返回值,传给下一个接口当请求参数

extract:提取变量
$变量名 :引用变量

假设我们有如下场景

用户A登录之后,返回值返回用户UID,我们需要查询该用户的用户信息,需要用到登录接口返回值的uid

那我们先请求登录接口,然后使用extract提取uid,获取用户信息接口里面我们再引用uid变量

config:
  name: 登录用例
  base_url: http://xxx.com

teststeps:
-
  name: step-登录
  request:
    url: /v1/login/
    method: POST
    params:
      user: test
      password: 123456
  # 使用extract提取,使用jmespath提取表达式获得返回值的uid,赋值给变量UID
  extract:
      uid: body.uid
  validate:
    - eq: [status_code,200]

-
  name: setp-获取用户信息
  request:
    url: /v1/userInfo/
    method: POST
    params:
      uid: $uid # 请求这里直接使用$变量名来引用提取的uid
  validate:
    - eq: [ status_code,200 ]

环境变量.env

在自动化测试项目的根目录中,创建.env文件

并将敏感数据信息放置到其中,采用name=value存储,例如账号密码、数据配置等信息

创建环境变量

#.env文件
base_url=http://www.123.com
username=test
password=123456

引用环境变量

引用格式:

${ENV(key)} #ENV是内置函数

示例

config:
  name: 登录用例
  base_url: ${ENV(base_url)} # 对应格式引用环境变量

teststeps:
-
  name: step-登录
  request:
    url: /v1/login/
    method: POST
    params:
      user: ${ENV(username)}
      password: ${ENV(password)}

  extract:
      uid: body.uid
  validate:
    - eq: [status_code,200]

Testcase引用Testcase

假设我们有两个用例,用例1:登录,用例2:登录,修改个人资料

那么登录步骤就会重复,我们可以第二个用例引用第一个用例,当成测试步骤

httprunner3中,可以使用testcase引用另一个testcase

config:
  name: 用户用例
  base_url: ${ENV(base_url)}

teststeps:
-
  name: step-登录
  # login用例是其他yaml用例写好的,在这里直接引用
  # 使用testcase关键字,项目根目录相对路径引用登录的yaml文件路径
  testcase: testcase/login.yaml
-
  name: step-修改个人资料
  ......

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章