我正在尝试使用 beanshell 后处理器生成一个随机数,但我不断收到错误
"ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval In file: inline evaluation of: `` try {....."
我正在通过正则表达式提取器获取匹配记录的总数并将变量传递给后处理器,但它不起作用。
最佳答案
不要将
${CountID}
形式的函数和/或变量内联到 Beanshell 脚本中,因为它们可能会解析为导致编译错误或其他形式的意外行为的内容。替换这一行:int count = ${__Random(1,counter,)};
这个
int count = ThreadLocalRandom.current().nextInt(1, counter);
log.info(count);
行将不起作用,因为您无法将整数打印到 jmeter.log 文件,您需要将其转换为首先是字符串,因此将此行更改为log.info(String.valueOf(count));
考虑使用 JSR223 Elements and Groovy language而不是 Beanshell,因为 Beanshell 解释器的性能比 Groovy 引擎差。
如果您的目标是获得随机匹配,您可以在没有任何脚本的情况下仅使用 JMeter Functions 来实现喜欢:
${__V(countID_${__Random(1,${countID_matchNr},)})}
参见 Here’s What to Do to Combine Multiple JMeter Variables指南了解更多详情。
关于java - 如何在 JMeter 中使用 beanshell 后处理器生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43862111/