[英]In JMeter how can I capture multiple (varying) values of a regular expression?
[英]How to capture request and response values in Jmeter and store it in file?
我正在使用Jmeter作为负载测试工具。 我通过请求传递了一个参数,作为响应,我只得到一个参数。 响应。 我想将请求和响应都保存在csv文件中。 我正在使用正则表达式提取器捕获响应,并使用Bean Shell后处理器将其保存在csv文件中。 但是无法捕获相应的请求参数。
示例:请求: http:// localhost:8080 / myService?input = abcd123455和响应:pqrst1245 / 84985 ==在此输入请求时,我正在从另一个csv文件中获取该请求。 我想捕获输入参数和相应的响应并将其存储在csv文件中,例如input,response即。 abcd123455,pqrst1245 / 84985 ==
尝试使用此Beanshell ...我没有尝试过,但应该可以。
import org.apache.jmeter.services.FileServer;
if (sampleEvent.getResult() instanceof org.apache.jmeter.protocol.http.sampler.HTTPSampleResult) {
String request = (sampleEvent.getResult().getSamplerData());
String response = prev.getResponseDataAsString();
fos = new FileOutputStream("/home/user/output.csv", true);
ps = new PrintStream(fos);
StringBuilder sb = new StringBuilder();
sb.append(request).append(",").append(response).append("\n");
ps.println(sb.toString());
ps.close();
fos.close();
}
最简单的方法是使用Sample Variables属性。 假设您有两个变量,即${request}
和${response}
只需将下一行添加到user.properties文件中:
sample_variables=request,response
并重新启动JMeter以拾取该属性。 测试完成后,您将在.jtl结果文件中看到另外两列,其中包含${request}
和${response}
变量值。
临时设置属性的另一种方法是通过-J命令行参数传递它,例如
jmeter -Jsample_variables=request,response -n -t test.jmx -l result.jtl
有关使用JMeter属性的更多信息,请参见Apache JMeter属性定制指南文章。
我不建议使用脚本编制,因为涉及高负载时,您可能会遇到多个线程同时写入同一文件的问题,并且您将需要考虑实现某种形式的写入锁定
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.