![](/img/trans.png)
[英]JMeter - Save complete JSON response of all the request to CSV file for test data preparation
[英]Sending Complete JSON Data from the CSV file in one request in JMeter
我正在尝试在JMeter中发送JSON请求
{"responseProtocol":"PROTOCOL_JSON","requestProtocol":"PROTOCOL_JSON","codes":"164","122","123","161","149","158"]}
我没有对值进行硬编码,而是尝试将它们保存在CSV文件中并遍历它们。我尝试使用CSV数据集config进行循环,但是请求是以这种方式发送的
{"responseProtocol":"PROTOCOL_JSON","requestProtocol":"PROTOCOL_JSON", "codes":"164"}
{"responseProtocol":"PROTOCOL_JSON","requestProtocol":"PROTOCOL_JSON", "codes":"122"}
{"responseProtocol":"PROTOCOL_JSON","requestProtocol":"PROTOCOL_JSON", "codes":"123"}
它为每个请求发送一个代码,并在遍历文件末尾的同时发送多个请求。
有没有一种方法可以在单个请求中发送多个代码。
当前,JMeter不提供相关的测试元素,甚至不提供测试元素的组合来实现您的方案,因此您必须通过一些脚本来绕过JMeter的限制。
假设您的CSV文件如下所示:
164
122
123
161
149
158
而且您正在使用HTTP Request采样器通过POST方法发送JSON,您可以按照以下步骤进行操作:
将以下代码放入预处理器的“脚本”区域:
StringBuilder requestBody = new StringBuilder(); requestBody.append("{\\"responseProtocol\\":\\"PROTOCOL_JSON\\",\\"requestProtocol\\":\\"PROTOCOL_JSON\\",\\"codes\\":["); BufferedReader reader = new BufferedReader(new FileReader(new File("/path/to/your/csv/file.csv"))); String line; while ((line = reader.readLine()) != null) { requestBody.append("\\"").append(line).append("\\"").append(","); } reader.close(); requestBody.append("]}"); sampler.setPostBodyRaw(true); sampler.addNonEncodedArgument("",requestBody.toString(),"");
/path/to/your/csv/file.csv
替换为CSV文件的真实路径 应该是这样。 用1个线程运行test,并查看View Results Tree侦听器,以确保一切正常。
请参阅“ 如何使用BeanShell:JMeter的最喜欢的内置组件指南”,以获取有关JMeter中Beanshell脚本的更多信息以及一种包含一些流行Beanshell脚本食谱的食谱。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.