3.httprunner-extract/.env/Testcase

参数关联-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-修改个人资料
  ......

 

作者:木子七

出处:https://www.cnblogs.com/Mickey-7/p/16225831.html

posted @   木子七  阅读(93)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示
workspaces
keyboard_arrow_up dark_mode palette
选择主题