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

如何设置指定时间后运行thread group以更新过期cookie

JMeter 长时测试Cookie定时刷新方案

核心逻辑

单独配置一个定时执行的Cookie刷新线程组,每30分钟拉取一次最新有效Cookie,同步为全局变量供主测试线程组调用,解决2小时长测下Cookie每30分钟过期的问题。

具体配置步骤

1. 新增全局Cookie存储变量

在测试计划根目录添加用户定义的变量组件,新增变量GLOBAL_VALID_COOKIE,初始值留空即可。

2. 配置Cookie刷新线程组

新建独立线程组,参数配置如下:

  • 线程数:1
  • 循环次数:永远
  • 勾选「调度器」,设置启动延迟为1800(单位为秒,对应测试启动后30分钟第一次执行刷新)
  • 调度器下设置循环周期为1800秒,即每30分钟自动刷新一次Cookie

3. 实现Cookie提取和全局同步

在刷新线程组内添加以下组件:

  • 添加和业务逻辑一致的登录/获取有效Cookie的HTTP请求采样器
  • 新增对应提取器:如果Cookie在响应体里,用JSON提取器/正则表达式提取器提取目标Cookie值,赋值给GLOBAL_VALID_COOKIE时勾选「存储为全局变量」;如果Cookie是通过响应头Set-Cookie返回,可搭配HTTP Cookie管理器,再加JSR223后置处理程序同步全局变量,参考代码:
def cookieHeader = sampler.getCookieManager().getCookieHeaderForURL(new URL("https://你的服务根域名"))
props.put("GLOBAL_VALID_COOKIE", cookieHeader)

4. 主测试线程组引用全局Cookie

在主测试线程组的HTTP请求头管理器中,新增Cookie请求头,值填${__P(GLOBAL_VALID_COOKIE,)},所有业务请求会自动调用当前最新的有效Cookie。

注意点

  • 建议把刷新线程组拖拽到主测试线程组上方,同时勾选测试计划的「独立运行每个线程组」,确保测试启动时先执行一次刷新逻辑拿到初始Cookie,再启动主测试
  • 主测试线程组建议禁用自带的HTTP Cookie管理器,避免和全局变量传递的Cookie冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:36:09