java - 如何为 JMeter 中的所有线程创建一个 Java 对象?

标签 java jmeter

我正在尝试对 Azure 进行负载测试,为此,我需要创建一个“EH 客户端”对象。我希望这个对象可以被所有线程重用,否则负载测试会慢很多。我遇到了以下问题:

根据我对 JMeter 的了解,我相信我能做到这一点的唯一方法是通过 props,而不是变量。然而,我发现关于将普通 Java 对象作为 props 传递的文档和支持有限,甚至听说它是 discouarged.

我不确定将 JSR223 Sampler(它在 Beanshell 引擎上使用 Java)放置在哪里才能实现此目的。理想情况下,我希望它位于我的主线程组之外,但这样做似乎不起作用,因为任何访问该对象的尝试都会失败。

TL;DR:我想使用 JRS223 Sampler 创建一个 Java 对象,该对象可供我的所有线程使用。

最佳答案

只要你不迭代属性 values()考虑到它们都是字符串 - 你应该很好地将你的对象保存到 JMeter 的 props 速记中。

如果你想使用 Beanshell - 有 bsh.shared namespace它可用于在线程/线程组之间共享对象。

但是,如果您也想避免这种情况,您可以使用 ObjectOutputStream将您的对象保存到 setUp Thread Group 中某处的文件中并以“正常”读回 Thread Group (s)。请参阅How to read and write Java object to a file文章了解更多详细信息。

仅一个提示:don't use Beanshell, since JMeter 3.1 it's recommended to use Groovy language for scripting java 语言在底层使用 Beanshell 解释器。

关于java - 如何为 JMeter 中的所有线程创建一个 Java 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60638706/

相关文章:

csv - Jmeter 在读取 csv 时添加额外字符 

java - 在将字符串写入 Apache Commons PropertiesConfiguration 之前对其进行转义的正确方法是什么?

ubuntu - 如何在 Ubuntu 15.10 中安装最新的 JMeter?

java - Apache JMeter 4.0 中的 JVM 错误

java - Java Web 应用程序中的内存泄漏

JMeter 响应断言中的跨度标记出现问题

jmeter - 使用 jmeter 进行 Web 压力和负载测试 - 好到什么程度?基准指南?

java - 获取Array List中以指定字符串开头的所有元素

Java volatile 变量的行为不正确。

java - 将背景图像添加到背景 xml 布局