访问CSV数据集配置后端监听器变量



我试图从CSV数据配置中获取变量,并将它们添加到像这样的分布式测试环境中的后端侦听器。仅供参考,它可以在我的本地机器上运行。

下面是我的测试计划:

测试计划

CSV Data Config:

CSV配置

我的csv是这样的:

SELECT count(*) FROM github_events;simpleQuery
SELECT count(*) FROM github_events;medium
SELECT count(*) FROM github_events;complexQuery
SELECT count(*) FROM github_events;simpleQuery

后端侦听器:

后台监听器我在beanshell预处理器中设置CSV配置变量,像这样:

props.put("query", "${QUERY}");
props.put("query_type", "${QUERY_TYPE}");

,这就是为什么我在后端侦听器中有${__P(query)}${__P(query_type)}

目标是从CSV数据配置中获取QUERYQUERY_TYPE,并将其发送到后端侦听器。

任何帮助都会很感激。如果我需要在这里添加更多信息,请告诉我。谢谢你!

<解决方案/strong>:

我是如何得到这个工作的…有点粗糙,但它可以满足我的需要:

我在JDBC请求上创建了一个JSR223后处理器,并添加了以下代码:

import groovy.json.*
def my_query = vars.get("QUERY")
def my_query_type = vars.get("QUERY_TYPE")
json = JsonOutput.toJson([myQuery: my_query, myQueryType: my_query_type])
prev.setSamplerData(groovy.json.JsonOutput.prettyPrint(groovy.json.JsonOutput.toJson(json)))

这将不起作用,如果你需要什么是在你的响应数据,但在我的情况下,它是可以替换。顺便说一句,这只适用于我的分布式测试。要使其在本地工作,您可以使用prev.setResponseData。希望对大家有所帮助。

我不认为你可以,因为根据JMeter 5.4.1,后端侦听器的所有字段都被填充在"testStarted"阶段

同样适用于自定义侦听器

这意味着在初始化后端侦听器时,源自CSV数据集配置的JMeter变量不存在,并且您对JMeter属性的引用返回默认值1,因为没有这样的变量。

如果你正在寻找动态发送指标到Azure的可能性,你需要使用Groovy语言在JSR223 Listener中复制Azure后端监听器的代码。


这在本地机器上工作的唯一方法是:

  1. 你第一次在GUI模式下运行你的测试计划——它失败了,但是它设置了属性
  2. 你在GUI模式下第二次运行你的测试计划-它通过了,但使用属性的最后值
  3. 等。

相关内容

  • 没有找到相关文章

最新更新