以 CSV 格式保存 JMeter 响应

Save JMeter response in CSV

我是 JMeter 的新手,正在尝试对我正在处理的项目执行负载测试。 我创建了一个测试计划来创建 2000 个用户。结果请求如下: { : "Status":"200", : "Error":空, : "Content":"1858" } 我想将所有 2000 个请求的 "Content" 的值保存在一个 csv 文件中。 有什么办法吗?

简单方法:将值附加到 .jtl 结果文件

  1. 将以下行添加到 user.properties 文件(位于 JMeter 安装的 /bin 文件夹下)

    sample_variables=content
    
  2. 添加 Regular Expression Extractor 作为 returns 内容的请求的子项,并按如下方式配置:

    • 参考名称:content
    • 正则表达式:"Content":"(\d+)"
    • 模板:$

    当你 run JMeter in command-line non-GUI mode 作为

    jmeter -n -t /path/to/your/script.jmx -l /path/to/test/results.jtl
    

    测试执行完成后,您将能够看到 "Content" 值作为 results.jtl 结果文件的最后一列


困难:自定义脚本

  1. 添加 Beanshell PostProcessor 作为 returns 结果
  2. 请求的子项
  3. 将以下代码放入PostProcessor的"Script"区域

    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    String response = new String(data);
    
    FileOutputStream out = new FileOutputStream("content.csv", true);
    String regex = "\"Content\":\"(\d+)\"";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(response);
    if (m.find()) {
        String content = m.group(1);
        out.write(content.getBytes());
        out.write(System.getProperty("line.separator").getBytes());
        out.flush();
    }
    

一旦测试完成,您将在 JMeter 的工作目录(通常是 /bin)中看到包含所有 "Content" 值的 content.csv 文件。