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

关于Gatling测试报告响应时间指标的困惑咨询

21:16:16  ---- Global Information --------------------------------------------------------
21:16:16  > request count                                      85445 (OK=85433  KO=12    )
21:16:16  > min response time                                      7 (OK=79     KO=7     )
21:16:16  > max response time                                  60001 (OK=4299   KO=60001 )
21:16:16  > mean response time                                   256 (OK=252    KO=25460 )
21:16:16  > std deviation                                        469 (OK=103    KO=29221 )
21:16:16  > response time 50th percentile                        236 (OK=236    KO=5026  )
21:16:16  > response time 75th percentile                        290 (OK=290    KO=60000 )
21:16:16  > response time 95th percentile                        416 (OK=416    KO=60001 )
21:16:16  > response time 99th percentile                        577 (OK=577    KO=60001 )
21:16:16  > mean requests/sec                                  47.47 (OK=47.46  KO=0.01  )
21:16:16  ---- Response Time Distribution ------------------------------------------------
21:16:16  > t < 800 ms                                         85188 (  99.7%)
21:16:16  > 800 ms <= t < 1200 ms                                160 (  0.19%)
21:16:16  > t >= 1200 ms                                          85 (   0.1%)
21:16:16  > failed                                                12 (  0.01%)

测试疑问

本次测试共执行85445次请求,其中12次失败(KO),85433次成功(OK),总数匹配。但对响应时间指标存在以下疑问:

  • 平均响应时间中,256是整体均值,OK对应的252、KO对应的25460分别代表什么?
  • 响应时间为何会区分OK和KO?并未设置响应时间断言。
  • 85445-252-25460=59733,这部分请求的响应时间数据为何未体现?
  • 252、25460与256之间的计算关系是什么?
  • 为何不同指标下的成功/失败请求数据差异明显?

以上疑问同样适用于标准差等其他响应时间指标,且官方文档仅说明HTML报告,未解释这些控制台数值。

疑问解答

1. OK与KO对应的平均响应时间含义

  • OK=252:所有成功请求的平均响应时间,仅统计85433次成功请求的响应时间平均值。
  • KO=25460:所有失败请求的平均响应时间,仅统计12次失败请求的响应时间平均值。

2. 响应时间区分OK/KO的原因

Gatling默认会区分请求的成功(OK)和失败(KO)状态,这和是否设置响应时间断言无关。请求失败的判定依据包括:

  • HTTP状态码不在2xx/3xx范围内(默认规则)
  • 自定义的断言失败(如响应内容不匹配)
  • 请求超时
    即便你没设置响应时间断言,只要请求本身因上述原因失败,Gatling就会将其归类为KO,单独统计响应时间。

3. 关于计算85445-252-25460的误区

这里的252、25460是平均响应时间(单位:毫秒),不是请求数量,不能用总请求数去减这两个数值。你混淆了指标的含义,总请求数是85445,其中OK是85433次,KO是12次,所有请求的响应时间数据都已经包含在整体和分组统计里了。

4. 252、25460与256的计算关系

256是整体请求的加权平均响应时间,计算逻辑为:
(成功请求总响应时间 + 失败请求总响应时间) / 总请求数
代入数值就是:
(85433*252 + 12*25460) / 85445 ≈ 256
结果会和控制台的256基本一致(可能因小数精度略有差异)。

5. 成功/失败请求数据差异明显的原因

从数据能看到,失败请求的响应时间远高于成功请求:

  • 失败请求的平均响应时间25460ms,接近成功请求的100倍,最大响应时间达到60001ms(大概率是超时)
  • 这种差异是因为失败请求往往是服务端超时、处理异常导致的,这类请求的响应时间会远长于正常处理的成功请求,从而拉高了整体的标准差(469),而成功请求的标准差仅为103,说明成功请求的响应时间波动很小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:55:56