json - JMeter/AMQ - 从 JSON 文件读取字符串时替换子字符串

标签 json scripting jms activemq jmeter

自从周一客户告诉我我们需要模拟多达 50,000 个伪并发实体以进行性能测试以来,我一直在这个问题上苦苦挣扎。这就是设置。我有充满 JSON 对象的文本文件,其中包含 JSON 数据,看起来有点像这样:

{"customerId"=>"900", "assetId"=>"NN_18_144", "employee"=>"", "visible"=>false,
 "GenerationDate"=>"2012-09-21T09:41:39Z", "index"=>52, "Category"=>2...}

这是一条线的一个对象。我正在使用 JMeter 的 JMS 发布器按顺序读取行:

${_StringFromFile(${PATH_TO_DATA_FILES}scenario_9.json)}

其中每个都包含不同的场景。

我需要做的是读取文件并用从 50,000 个非连续的预生成字符串列表中随机选择的值替换 assetId 的值(我不可能为每个 assetId 都有一个单独的文件,因为这将涉及到向负载注入(inject)器散布 50,000 个文件,并在 JMeter 中为每个文件配置一个线程组)。从编程角度来说,执行替换是一件微不足道的事情,但在 JMeter 中动态执行此操作就没那么简单了。

通常情况下,我会将此视为有趣的技术挑战,并花几天时间来解决它,但我只有周末,我怀疑无论如何我都会在办公室里睡一夜。

有人可以帮我解决这个问题吗?

谢谢。

最佳答案

要读取您的 Assets ,请使用 CSV Data SetConfig ,我想 assetId 将是变量名称。

修改你的表达方式:

   ${_StringFromFile(${PATH_TO_DATA_FILES}scenario_9.json, lineToSubstitute)}

要进行替换,请添加 Beanshell samplerJSR223_Sampler J(使用 groovy)并编写替换代码:

   String assetId = vars.get("assetId");
   String lineToSubstitute = vars.get("lineToSubstitute");
   String lineSubstituted = ....;
   vars.put("lineSubstituted", lineSubstituted);

关于json - JMeter/AMQ - 从 JSON 文件读取字符串时替换子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12858581/

相关文章:

json - 将Json数据拆分为array <string>列

Linux 语法错误

svg - 是否可以通过命令行将 Inkscape 自动跟踪 PNG 转换为 SVG?

windows - Linux 相当于 DOS "start"命令?

java - 向 MQ 发送消息时如何删除默认的 Spring JMS 模板 header ?

java - 如何使用 JMS 队列将消息发送给特定的接收者

java - Weblogic JMS 客户端在长时间处理后尝试提交时抛出 DispatcherException

java - MySQL JSON_SEARCH 和 JSON_REPLACE 不转义引号

javascript - 我需要在我的 HTML 中转义什么(JSON 响应)

PHP 到 JSON 编码数据不起作用