关于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
相关产品推荐
相关产品推荐

