JMeter - Graphite 后端侦听器 rootmetricsPrefix 获取先前生成的值

JMeter - Graphite Backend listener rootmetricsPrefix taking previously generated value

背景: 我正在使用 Graphite 来存储性能测试期间生成的数据,理想情况下,我们也想查看历史图表。因此,我在设置线程组中动态创建一个 rootMetricsPrefix 文件夹名称并将其分配给 属性。后端侦听器位于不同的线程组中,配置使用此文件夹名称作为 rootMetricsPrefix -

<elementProp name="rootMetricsPrefix" elementType="Argument">
                <stringProp name="Argument.name">rootMetricsPrefix</stringProp>
                <stringProp `enter code here`name="Argument.value">${__property(graphiteFolderName)}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
</elementProp>

症状: 第一次JMeter srcript为运行(打开JMeter后),Graphite DB中没有生成文件夹。从第二个 运行 开始,结果将写入前一个 运行 中定义的文件夹。例如, 运行 1: DynamicResultsFolder_1(未写入结果) 运行 2:DynamicResultsFolder_2(结果写入DynamicResultsFolder_1) 运行 3:DynamicResultsFolder_3(结果写入DynamicResultsFolder_2)

当我在主线程组中将文件夹名称打印到日志时,打印出了预期的文件夹名称。问题似乎在于在 BackendListener 配置中评估 ${__property(graphiteFolderName)} 的方式。

我也试过将 属性 分配给局部变量并在 BackendListener 配置中使用局部变量,但这不会将任何结果写入数据库。

关于这里发生了什么或者我是否遗漏了一些明显的东西有什么想法吗?

这行不通,因为 Backend Listener parameters will be passed to components before the setUp ThreadGroup 将被执行。

所以发生的事情是第一次 属性 没有配置,它失败了,然后设置线程组 运行 并为下一个 [=23= 填充 属性 ].

这是你的问题。

也许您可以尝试使用 rootMetricsPrefix 属性.

中的 __BeanShell 函数生成您的名字