使用beanshell更新Jmeter变量
问题内容:
尝试使用bean脚本更新Jmeter变量时遇到了问题。我已经阅读了本手册,
- 更新变量使用
vars.put("variable", "newValue");
- 您输入的值只能是一个字符串。
现在我要使用以下代码:
String x = vars.get("counter");
int y = Integer.parseInt(x);
y = y + 1;
String z = "" + y;
vars.put("counter", z);
// print(z);
我的变量计数器是一个值为1的用户参数(之前作为用户定义的变量尝试过)。我可以看到我的脚本正在工作,因为print(z)返回值2。现在我也可以说我的变量计数器在用户参数,以便当我再次运行它时,它给我的值为3。事实并非如此:该值未更新,因此我运行脚本的所有程序都向我返回值2。
有人可以帮助我吗?
问题答案:
我在您的脚本中看不到任何问题。它应该工作正常。
请记住,所有这些beanshell变量都是特定于线程的。即,如果Thread1将其增加到2,则Thread2的“ counter”的当前值仍为1。
我认为您只需一次迭代就可以为更多线程/用户运行测试。这就是为什么它为所有用户打印2的原因。如果您有更多的循环计数/将其设置为永久,则计数器将递增。
如果jmx文件仍然无法解决问题,则可以上载。
编辑:
我刚刚检查了您的jmeter测试。即使在Beanshell Sampler中将计数器值增加1,Yolu仍将计数器设置回1 User Parameters
。去掉它。删除它们后,对我来说效果很好。