需要帮助找出Jmeter BeanShell预处理器的问题,我正在使用下面的代码来获取变量数据并作为下一个POST请求传递,但它失败了,尽管我可以看到所有变量都被正确捕获。
请帮助确定导致问题的原因
int keys = Integer.parseInt(vars.get("getkeys_matchNr"));
StringBuilder requestBuilder = new StringBuilder();
requestBuilder.append("[");
for (int i = 1; i <= keys; i++) {
requestBuilder.append(vars.get("getkeys_" + i));
if (i != keys) {
requestBuilder.append(",");
}
}
requestBuilder.append("]");
sampler.getArguments().getArgument(0).setValue(requestBuilder.toString());
字符串
获取以下错误:
2023-11-01 12:51:12,275错误o.a.j.u.BeanShellInterpreter:Error invoking bsh method:eval Sourced file:inline evaluation of:``int keys = toString.parseInt(vars.get(“getkeys_ .":Attempt to resolve method:toString()on undefined variable or class name:out
尝试setValue到不同的字符串-“sampler.getArguments().getArgument(0).setValue(out.toString(0));”但也不起作用
1条答案
按热度按时间oyjwcjzk1#
我在你的代码中没有看到任何
out
对象的声明,很可能是复制粘贴问题,试着用requestBuilder
替换out
,这个问题就会消失。使用Beanshell也是某种形式的性能反模式,从JMeter 3.1开始,您应该使用JSR223测试元素和Groovy语言进行脚本编写。
示例代码:
字符串
更多信息: