繁体   English   中英

如何在Jmeter中捕获请求和响应值并将其存储在文件中?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM