You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JMeter统计不同响应时长区间的API数量?

如何用JMeter统计不同响应时长区间的API请求数量

当然可以用JMeter实现响应时长区间的数量统计,以下是两种实用方案:

一、快速可视化统计(内置监听器)

  • 响应时间分布图(Response Time Graph):这个监听器会自动将所有请求的响应时间按区间分组,展示每个区间的请求数量。你可以通过调整图表的区间步长(比如设置为10ms),直接匹配你需要的<10ms、20ms、30ms等区间,直观看到对应数量。
  • 聚合报告(Aggregate Report):虽然核心是展示平均响应时间、百分位等指标,但可以结合90%、95%百分位数据间接推断区间分布,不过精准计数还是推荐自定义方案。

二、精准自定义区间统计(推荐)

如果需要精确统计指定区间(如<10ms、>20ms、>30ms)的请求数,用「计数器+JS233后置处理器」组合实现:

操作步骤:

  1. 添加计数器组件:为每个目标区间创建独立计数器:
    • 命名Count_Under10ms:初始值0,递增1,引用名称under10
    • 命名Count_Over20ms:初始值0,递增1,引用名称over20
    • 命名Count_Over30ms:初始值0,递增1,引用名称over30
  2. 添加JS233后置处理器:在API请求的父节点(如线程组)下添加,选择Groovy语言(JMeter3.0+性能更优),写入以下脚本:
    def responseTime = prev.getResponseTime()
    // 统计<10ms的请求
    if (responseTime < 10) {
        vars.put("under10", (Integer.parseInt(vars.get("under10")) + 1).toString())
    }
    // 统计>20ms的请求
    if (responseTime > 20) {
        vars.put("over20", (Integer.parseInt(vars.get("over20")) + 1).toString())
    }
    // 统计>30ms的请求
    if (responseTime > 30) {
        vars.put("over30", (Integer.parseInt(vars.get("over30")) + 1).toString())
    }
    
  3. 查看结果:测试结束后,通过「用户定义变量」组件或查看日志,就能获取三个计数器的最终数值,完全匹配你需要的区间统计结果。

三、适配你的测试场景

你的测试参数:50个API、2线程,总事务数100,预期统计<10ms=75、>20ms=20、>30ms=5,用上述自定义方案可以精准得到对应数值。

内容的提问来源于stack exchange,提问作者Soumick Adhikary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 07:50:29