Jmeter - 如何获取 SLA 指标

Jmeter - how to get SLA metric

是否存在任何方法可以根据 UI 计算 jmeter 中 SLA 下的请求数?例如,响应时间 < 400 毫秒的请求数?

  1. 最简单的解决方案是使用 Simple Data Writer 将标签、运行时间和/或延迟保存到 CSV 文件,这将生成如下所示的原始输出:

    elapsed,label
    423,sampler1
    452,sampler2
    958,sampler1
    152,sampler1
    

    从这里您可以将它带到任何其他工具(awk、Excel 等)来过滤您想要的结果。

  2. 另一种选择是使用 BeanShell Listener 即时生成此类报告。像这样:

    long responseTime = sampleResult.getEndTime() - sampleResult.getStartTime();
    if(responseTime < 400) {
        FileOutputStream f = new FileOutputStream("myreport.csv", true);
        PrintStream p = new PrintStream(f);
        this.interpreter.setOut(p); 
        print(sampleResult.getSampleLabel() + "," + responseTime);
        f.close(); 
    }
    

    但是,如果您计划 运行 对许多(超过 200-300 个)用户和许多 "fit" 过滤器的操作进行压力测试,则此方法的性能可能不够。

前段时间我遇到了类似的问题,写了一个小工具-见https://github.com/sgoeschl/jmeter-sla-report

JMeter 提供 OOTB 一个 Web 报告,该报告使用 APDEX、百分位数等标准指标提供有关负载测试的大量信息...

看到这个:

如果您仍想这样做,请执行以下操作:

添加作为您请求的子项添加 Duration Assertion:

它下面的所有响应都将被标记为失败。 在报告中,您将看到满足此 SLA 标准的成功请求数。