仅将 JMeter 摘要报告平均、最小值和最大值写入文件



我有一个在GUI中运行良好的测试套件,并希望从命令行运行它。没问题,我明白该怎么做。

在套件中,我有一个摘要报告对象,该对象在表格中显示最小、最大和平均响应时间。摘要报告上有一个"配置"按钮,允许我选择可以写入文件的字段以捕获结果。但是,我想要的只是最小值、最大值和平均值,这些似乎不是我可以记录的字段。

谁能建议我访问这些值的方法,也许是从 Beanshell 或其他什么地方?

我的套件将有许多线程组,我想为每个线程组创建一个唯一的摘要报告文件,以便我可以在 Jenkins 中驱动一些绘图。

提前感谢任何帮助。

曲头钉

简单的 Beanshell 脚本应该是最好的解决方案。我建议使用 Beanshell 后处理器将每个请求的时间记录到一个根据线程组名称命名的文件中。

向线程组中的每个采样器添加具有以下代码的 Beanshell 后处理器:

long time = prev.getTime(); //get Sampler Execution Time
String samplerName = prev.getSampleLabel(); //get Sampler Name
String threadGroupName = ctx.getThreadGroup().getName(); // get Thread Group Name
FileOutputStream out = new FileOutputStream(threadGroupName + ".csv", true); // Create output file called ${Thread Group}.csv
//append information to the file
StringBuilder sb = new StringBuilder();
sb.append(samplerName);
sb.append(",");
sb.append(time);
sb.append(System.getProperty("line.separator"));
out.write(sb.toString().getBytes("UTF-8"));
out.flush();
out.close();

同样,您可以获取和存储所需的任何内容。测试后应计算最小、最大和平均时间。我想詹金斯足够聪明,可以绘制这个,但也可能需要采样器时间戳。

引用:

  • 贝希尔后处理器
  • 样本结果 - Beanshell 后处理器的预定义prev变量
  • JMeterContext - Beanshell 后处理器的预定义ctx变量
  • 如何使用 BeanShell - Apache JMeter Beanshell 脚本的扩展指南

最新更新