如何在 JSR223 中存储自定义对象?
How to store a custom object in JSR223?
我在 Jmeter 中将我的自定义侦听器设置为 JSR223 侦听器。
目前它在测试期间将记录附加到文本文件然后调用侦听器 运行(我认为这对测试准确性不利),但我不希望收集所有数据(通过侦听器)并保存测试结束后一片祥和(在拆解部分)
Google 找到了很多方法来存储像字符串这样的单个变量,但是如果我想存储大量复杂的数据集,这是不可接受的。是否可以通过 JSR223 以某种方式存储我的自定义对象的 Java 数组(或类似的东西)作为全局变量(在设置阶段的某处创建),可用于每个 JSR223 lisneners/Samplers 等?
如果我制作了“datakeeper”单例,它会像我预期的那样工作吗(我不知道 GC 是如何为 JSR223 工作的,它会不会清理这个,它是否可用于其他 JSR223 实例)并且它好吗解决我的问题?
只需使用 props
shorthand 代表正常 Properties 依次为:
因此,如果您执行以下操作:
props.put('myObject', yourObject)
在设置线程组中
您将能够在其他任何地方获得 props.get('myObject')
的值
有关此 props
和其他 JMeter API shorthand 的更多信息 - Top 8 JMeter Java Classes You Should Be Using with Groovy
你问题中的这个短语大量复杂的数据集敲响了警钟。在内存中存储如此大量的数据会对您的执行产生不利影响。您可以预计线程会意外终止,主要是由于 OutOfMemoryException
。此外,如果 JMeter 崩溃,您将丢失在那之前捕获的所有统计信息。您可以调整堆设置,但这只是一个补丁工作,并不是您问题陈述的真正解决方案。
您可以继续使用当前的方法保存到本地文件。
我在 Jmeter 中将我的自定义侦听器设置为 JSR223 侦听器。
目前它在测试期间将记录附加到文本文件然后调用侦听器 运行(我认为这对测试准确性不利),但我不希望收集所有数据(通过侦听器)并保存测试结束后一片祥和(在拆解部分)
Google 找到了很多方法来存储像字符串这样的单个变量,但是如果我想存储大量复杂的数据集,这是不可接受的。是否可以通过 JSR223 以某种方式存储我的自定义对象的 Java 数组(或类似的东西)作为全局变量(在设置阶段的某处创建),可用于每个 JSR223 lisneners/Samplers 等?
如果我制作了“datakeeper”单例,它会像我预期的那样工作吗(我不知道 GC 是如何为 JSR223 工作的,它会不会清理这个,它是否可用于其他 JSR223 实例)并且它好吗解决我的问题?
只需使用 props
shorthand 代表正常 Properties 依次为:
因此,如果您执行以下操作:
props.put('myObject', yourObject)
在设置线程组中
您将能够在其他任何地方获得 props.get('myObject')
的值
有关此 props
和其他 JMeter API shorthand 的更多信息 - Top 8 JMeter Java Classes You Should Be Using with Groovy
你问题中的这个短语大量复杂的数据集敲响了警钟。在内存中存储如此大量的数据会对您的执行产生不利影响。您可以预计线程会意外终止,主要是由于 OutOfMemoryException
。此外,如果 JMeter 崩溃,您将丢失在那之前捕获的所有统计信息。您可以调整堆设置,但这只是一个补丁工作,并不是您问题陈述的真正解决方案。
您可以继续使用当前的方法保存到本地文件。