You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Taurus中实现每5分钟发送一次/auth请求的测试场景?

用Taurus实现每5分钟获取一次Token的测试场景

我需要用Taurus测试一个场景:先发送/auth请求获取Token,再用这个Token作为请求头参数调用/get-data接口获取数据。Token有效期5分钟,希望每5分钟执行一次/auth请求,而不是每次调用数据接口前都执行。之前尝试think-time选项,但会同时影响第二个请求,不符合需求。

当前的测试配置如下:

scenarios:
  getdata:
    requests:
      - url: https://myurl.com/auth
        method: POST
        label: auth
        body:
          username: my_usernmae
          password: my_password
        extract-jsonpath:
          auth_token: $.token
      - url: https://myurl.com/get-data
        method: GET
        headers:
          x-access-token: ${auth_token}
        label: getdata

实现方案

可以通过拆分场景+全局变量的方式实现,具体配置如下:

settings:
  env:
    auth_token: ""  # 全局变量存储Token

scenarios:
  # 定时获取Token的场景:每5分钟执行一次
  auth_refresh:
    requests:
      - url: https://myurl.com/auth
        method: POST
        label: auth
        body:
          username: my_usernmae
          password: my_password
        extract-jsonpath:
          auth_token: $.token
        store:
          auth_token: ${auth_token}  # 将提取的Token存入全局变量
    executor: jmeter
    iterations: -1  # 无限循环
    think-time: 300s  # 每次循环间隔5分钟(300秒)
    startup-delay: 0  # 立即启动

  # 持续调用数据接口的场景
  get_data_loop:
    requests:
      - url: https://myurl.com/get-data
        method: GET
        headers:
          x-access-token: ${auth_token}  # 使用全局变量中的Token
        label: getdata
    executor: jmeter
    iterations: -1  # 无限循环
    think-time: 10s  # 数据接口调用间隔,可自行调整
    startup-delay: 0  # 立即启动

配置说明

  • 全局变量:通过settings.env定义auth_token,两个场景共享这个变量
  • Token刷新场景:设置无限循环,每次执行后等待300秒(5分钟)再执行下一次,提取Token后更新全局变量
  • 数据接口场景:无限循环调用数据接口,每次直接使用全局变量中的Token,不受Token刷新场景的间隔影响

这样就能实现每5分钟获取一次Token,同时持续调用数据接口的需求,避免了每次调用数据接口都重复获取Token的问题。

内容的提问来源于stack exchange,提问作者Nik Paramonov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 03:42:32