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

JMeter迭代时变量未更新:__time函数生成的时间戳重复如何解决

JMeter 迭代生成唯一时间戳配置方案

问题根因

你当前配置失效的核心原因是JMeter「用户定义变量」的执行机制:所有用户定义变量无论放置位置,均会在测试计划初始化阶段全局一次性计算值,变量内的${__time(/1)}函数仅会在测试启动时执行一次,后续所有迭代都会复用第一次生成的结果,不会重新计算。

可行配置方案(两种任选即可,均满足单轮迭代内值相同、跨迭代值唯一的要求)

方案1:使用用户参数前置处理器(无需写代码,配置简单)

  • 在线程组的最开头(所有事务控制器之前)添加:前置处理器 → 用户参数
  • 新增变量,自定义变量名(例如request_timestamp),变量值填写${__time(/1)}
  • 勾选配置项「每次迭代更新一次」
  • 后续所有请求、JSON Payload中统一引用${request_timestamp}即可

方案2:使用JSR223前置处理器(性能更高,适合高并发测试场景)

  • 在线程组的最开头添加:前置处理器 → JSR223 前置处理器
  • 在Script输入框中填入代码:
// 生成秒级时间戳,如需毫秒级去掉/1000即可
vars.put("request_timestamp", String.valueOf(System.currentTimeMillis() / 1000))
  • 后续所有位置统一引用${request_timestamp}即可

验证说明

两种方案均会在每轮线程迭代的最开始重新计算一次时间戳,同一轮迭代内所有引用位置拿到的都是同一个值,下一轮迭代自动生成新的时间戳,完全符合你的使用需求。

相关截图

  • 用户定义变量搭配时间戳函数配置:用户定义变量搭配时间戳函数配置
  • 运行输出:运行输出
  • 迭代值重复验证:每次迭代值相同验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:15:02