我正在尝试使用beanshell post processor生成一个随机数,但我不断收到错误
"ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval In file: inline evaluation of: `` try {....."
我通过正则表达式提取器获取匹配记录的总数,并将该变量传递给Post处理器,但它不起作用。
答案 0 :(得分:4)
不要将${CountID}
形式的函数和/或变量内联到Beanshell脚本中,因为它们可能会导致编译错误或其他形式的意外行为。替换此行:
int count = ${__Random(1,counter,)};
这一个
int count = ThreadLocalRandom.current().nextInt(1, counter);
log.info(count);
行无法正常工作,因为您无法将整数打印到 jmeter.log 文件,您需要先将其强制转换为String,然后将此行更改为
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指南。