微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 JSR223 中存储自定义对象?

如何解决如何在 JSR223 中存储自定义对象?

我在 Jmeter 中将我的自定义侦听器设为 JSR223 侦听器。

目前它在测试运行期间将记录附加到文本文件然后调用侦听器(我认为这对测试准确性不利),但我想收集所有数据(由侦听器)并在结束后一次和平地保存测试(在拆解部分)

Google 找到了很多方法来存储字符串等单个变量,但是如果我想存储大量复杂的数据集,这是不可接受的。是否可以通过 JSR223 以某种方式存储我的自定义对象的 Java 数组(或类似的东西)作为全局变量(在设置阶段的某个地方创建),可用于每个 JSR223 lisneners/Samplers 等?

如果我制作了“datakeeper”单例,它会像我期望的那样工作(我不知道 GC 如何为 JSR223 工作,它是否会清理它,以及它是否可用于其他 JSR223 实例)并且它是否是好的解决方案我的目的?

解决方法

只需使用 props 简写,它代表正常的 Properties,依次为:

  1. 全局,并且可以在其他线程组以及此 JVM 实例中的任何地方访问
  2. 可以存储您想要的任何 Object,而不仅仅是字符串

因此,如果您执行以下操作:

 props.put('myObject',yourObject)

在设置线程组中

您将能够在其他任何地方获得 props.get('myObject') 的值

有关此 props 和其他 JMeter API 速记的更多信息 - Top 8 JMeter Java Classes You Should Be Using with Groovy

,

您问题中的这句话大量复杂的数据敲响了警钟。在内存中存储如此大量的数据将对您的执行产生不利影响。您可以预期线程会因 OutOfMemoryException 而意外终止。此外,如果 JMeter 崩溃,您将丢失所有捕获到的统计信息。您可以调整堆设置,但这只是修补工作,并不是您问题陈述的真正解决方案。

您可以继续使用当前的方法保存到本地文件。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。