当前位置: 首页 > 知识库问答 >
问题:

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

简成仁
2023-03-14

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

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

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

共有1个答案

养研
2023-03-14

>

  • 不要将<code>${CountID}</code>形式的函数和/或变量内联到Beansell脚本中,因为它们可能会导致编译错误或其他形式的意外行为。替换此行:

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

    用这个

    int count = ThreadLocalRandom.current().nextInt(1, counter);
    

    log.info(计数);行不起作用,因为您无法将整数打印到 jmeter.log 文件,您需要先将其转换为字符串,因此将此行更改为

    log.info(String.valueOf(count));
    

    考虑使用 JSR223 Elements 和 Groovy 语言而不是 Beanshell,因为 Beanshell 解释器的性能比 Groovy 引擎差。

    如果您的目标是获得随机匹配,您可以在没有任何脚本的情况下仅使用JMeter函数来完成,例如:

    ${__V(countID_${__Random(1,${countID_matchNr},)})}
    

    有关更多详细信息,请参阅“如何组合多个 JMeter 变量”指南。

  •  类似资料:
    • 在日志中获取以下错误: 上的方法:getName() 下面是Beanshell后处理器中使用的代码。

    • 我如何使用beanshell后处理器来分析来自每个请求的数据?我需要分析请求,如果请求通过-写入文件,如果请求失败-写入其他文件。任何机构都可以为这种情况编写简单的示例脚本?

    • 我需要测试rest api发布JSON。我尝试使用JMeter通过BeanShell后处理器发布Json数据。但是BeanShell后处理器不工作或者我写不出正确的代码。 我的Json是:{“email”:“selin@xxx.com”,“password”:“123”} 你可以在下面的图片中看到我做了什么。

    • 如何更正此代码?谢谢

    • 问题内容: 有没有办法从一个BeanShell前置/后处理器到另一个BeanShell处理器 (它们在同一个线程组中) 引用变量? 如果我在HTTP Request下的BeanShell PreProcessor中创建一个String变量,那么我可以在同一HTTP Request下的BeanShell PostProcessor中使用或引用该变量。 我尝试通过以下方式访问此变量: + HTTP请求

    • 我试图在Java程序中实现一个随机数生成器。我在用数学。random(),但这似乎效果不太好。然后我尝试使用SecureRandom,但这对我的游戏来说太长了。然而,我遇到了这个生成器,MersenNetWisterng随机数生成器。这似乎是我想要的;速度很快,但仍然是随机的。 然而,我已经很长时间没有用Java编写了,只有2个月,我对API既不了解也不了解。如果有人能帮我解释一下如何在我的代码中

    • > 下面有一个json响应数组,我正在将它放入Jmeter正则表达式提取器变量中。 在这里,我有JSON对象。 在JSON对象中,我们有不同的SKU和相应的数量。 我正在使用一个hashmap从CSV文件中读取值,并更新每个SKU的数量细节,但我的脚本无法将响应取到JMeter中的数组中。 最后,我将分享解析JSON数组时遇到的Jmeter代码和错误 我看到很多帖子建议groovy,我不知道如何使

    • 问题内容: 在java中如何生成随机数? 问题答案: 在Java 1.7或更高版本中,执行此操作的标准方法如下: 请参阅相关的JavaDoc。这种方法的优点是不需要显式初始化java.util.Random实例,如果使用不当,可能会引起混乱和错误。 但是,相反,没有办法明确设置种子,因此在有用的情况下(例如测试或保存游戏状态或类似情况),很难重现结果。在这种情况下,可以使用下面显示的Java 1.