自从周一客户告诉我我们需要模拟多达 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 sampler或JSR223_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/