java - 如何在 JMeter 中使用 beanshell 后处理器生成随机数

标签 java jmeter beanshell

我正在尝试使用 beanshell 后处理器生成一个随机数,但我不断收到错误

 "ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval   In file: inline evaluation of: `` try {....."

我正在通过正则表达式提取器获取匹配记录的总数并将变量传递给后处理器,但它不起作用。

请看截图。 Regular Expresssion Extractor Beanshell Script

最佳答案

  1. 不要将 ${CountID} 形式的函数和/或变量内联到 Beanshell 脚本中,因为它们可能会解析为导致编译错误或其他形式的意外行为的内容。替换这一行:

    int count = ${__Random(1,counter,)};
    

    这个

    int count = ThreadLocalRandom.current().nextInt(1, counter);
    
  2. log.info(count); 行将不起作用,因为您无法将整数打印到 jmeter.log 文件,您需要将其转换为首先是字符串,因此将此行更改为

    log.info(String.valueOf(count));
    
  3. 考虑使用 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/

相关文章:

java - 使用 JMeter 调用 java 方法

java - 在 JMeter 的 BeanShell 采样器中将字符串解析为整数

java - Struts 2 - HTTP 状态 404 - 没有为操作定义结果

javaFX 在标签或微调器中存储数字格式

javascript - 如何在 selenium webdriver javascript 脚本中设置 cookie?

POST请求正文中的Jmeter变量并在发送请求之前更改它

java - 在 Spring Boot 应用程序中使用 @Bean 声明 bean

java - 为什么 Kerberos/SPNEGO 身份验证不起作用?

java - 按顺序运行 N 个 Jmeter 线程

java - 有人会如何用 Java 实现数学公式?