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

JMeter使用__time函数生成跨请求复用变量出现无法替换问题

故障根因

你的配置存在两个核心错误,导致变量无法正常读取:

  • JSR223 组件中声明的currentTime是代码局部变量,没有存入JMeter的全局变量上下文,后续HTTP请求作为JMeter原生组件,无法直接读取代码内部的局部变量
  • 你使用的是JSR223 PostProcessor(后置处理器),该组件会在所属的取样器执行完成后才运行,如果放置位置不对,请求执行时变量还未生成,自然无法替换
修复方案

方案1:调整原有JSR223配置

  1. 把JSR223 PostProcessor替换为JSR223 PreProcessor(前置处理器),放置在两个HTTP请求的最前面,保证变量先生成再被请求使用
  2. 替换JSR223组件内的代码为以下内容:
// 生成时间戳
long currentTime = System.currentTimeMillis();
// 将值存入JMeter变量上下文,后续所有同线程内的组件都可读取
vars.put("currentTime", String.valueOf(currentTime));
  1. 两个HTTP请求的请求体保持原有写法即可,变量会正常替换。

方案2:无需代码的轻量方案

如果你不想写代码,可以直接用JMeter自带组件实现需求:

  • 线程组最前面新增用户定义的变量组件
  • 新增一条变量配置:变量名填currentTime,变量值填${__time(,)}
  • 后续请求直接引用${currentTime}即可,同线程内的所有请求会复用同一个时间值,不会重复生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:06:03