首页 > 解决方案 > 如何在 JSR223 中存储自定义对象?

问题描述

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

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

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

如果我制作了“datakeeper”单例,它会按我的预期工作(我不知道 GC 如何对 JSR223 工作,它是否会清理它,它是否可用于其他 JSR223 实例)并且它对我的目的来说是一个好的解决方案吗?

标签: jmeterjsr223

解决方案


只需使用props代表正常属性的简写,依次:

  1. 全局且可在其他线程组和此JVM实例中的任何位置访问
  2. 可以存储您想要的任何对象,而不仅仅是字符串

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

 props.put('myObject', yourObject)

在设置线程组中

您将能够像props.get('myObject')其他任何地方一样获得价值

有关此props和其他 JMeter API 速记的更多信息 -您应该与 Groovy 一起使用的前 8 个 JMeter Java 类


推荐阅读