You need to enable JavaScript to run this app. Java StandardJMeterEngine运行JMX时__time()失效及Gradle配置问题
优惠活动
大模型
产品
解决方案
定价
更多

Java StandardJMeterEngine运行JMX时__time()失效及Gradle配置问题

场景与问题现象
  • 嵌入在HTTP请求JSON体中的JMeter函数 ${__time()},在JMeter GUI环境下运行测试可正常生效
  • 通过Java调用StandardJMeterEngine直接运行.jmx测试文件时,该函数无法正常解析生效
  • 曾尝试的替代方案:在JMeter GUI中将该函数赋值给变量,再在JSON请求体中引用该变量,结果仍为仅GUI运行场景正常;Java引擎运行时接口返回400 Bad Request,说明提交的请求体内容不符合格式要求
  • JMeter GUI中使用的HTTP请求JSON Body示例:
{
  "UniqID" : ${__time()}
}

当前使用的Java调用代码片段

JMeterUtils.loadJMeterProperties("../bin/jmeter.properties");
JMeterUtils.setJMeterHome("../jMeter");
JMeterUtils.initLocale();
SaveService.loadProperties();
File jmxFile = new File(".../test.jmx");
HashTree testPlanTree = SaveService.loadTree(jmxFile);
StandardJMeterEngine jMeterEngine = new StandardJMeterEngine();
jMeterEngine.configure(testPlanTree);
jMeterEngine.
jMeterEngine.run();
jMeterEngine.exit();

排障过程发现与核心需求

  • 临时排障验证结果:从Gradle本地缓存路径(参考路径:..\Users\.gradle\caches\modules-2\files-2.1\org.apache.jmeter\ApacheJMeter_functions\)将ApacheJMeter_functions.jar复制到代码中设置的JMeter Home路径下的../jMeter/lib/ext子目录后,函数即可正常生效
  • 核心待解决问题:因无法将jar文件上传到Git仓库,需要仅通过Gradle依赖配置实现上述等价加载效果,无需手动将jar包放入JMeter Home目录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 00:06:04