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

时间:2015-06-22 13:59:44

标签: jmeter 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配置中的局部变量,但这不会将任何结果写入数据库。

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

1 个答案:

答案 0 :(得分:3)

这不起作用,因为Backend Listener参数将在执行setUp ThreadGroup之前传递给组件。

所以发生的事情是第一次没有配置属性,它失败了,然后设置线程组运行并填写下一次运行的属性。

这是你的问题。

也许您可以尝试使用rootMetricsPrefix属性中的__BeanShell函数生成您的名字。