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

JMeter预处理器存储Long值到变量后,取样器调用失败求助

解决JMeter中BeanShell预处理器变量无法解析的问题

嗨Hari,你的问题出在BeanShell预处理器中变量存储的类型不匹配上,我来一步步帮你搞定:

问题根源

JMeter的vars对象(也就是JMeterVariables)的put()方法要求第二个参数必须是字符串类型,但你直接传入了long类型的变量c,这会导致变量没有被正确存入JMeter的变量空间,所以后续BeanShell取样器里的${c}无法解析,直接输出了占位符文本。

解决方案

1. 修改BeanShell预处理器代码

把预处理器里的vars.put("c",c);改成以下两种方式之一,将long类型转为字符串后再存储:

// 方式1:用String.valueOf()转换
long c = 25478995L;
log.info(c + " - It is long");
vars.put("c", String.valueOf(c));

或者:

// 方式2:用字符串拼接自动转换
long c = 25478995L;
log.info(c + " - It is long");
vars.put("c", "" + c);

2. 验证变量是否正确存储(可选)

可以在预处理器里加一行日志输出,确认变量已经成功存入:

log.info("已存入变量c的值:" + vars.get("c"));

你可以在JMeter的日志窗口(Options -> Log Viewer)里看到这条日志,确认值是否正确。

3. 在BeanShell取样器中正确获取变量

除了用${c},在BeanShell脚本里更推荐直接使用vars.get("c")来获取变量,这样更可靠,比如:

// 方式1:用日志输出
log.info("变量c的值是:" + vars.get("c"));
// 方式2:直接打印到结果树
return vars.get("c");

这样在查看结果树里就能正确显示25478995了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:02:47