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

关于k6测试结果解读的疑问:http_req_duration计算是否正确?

k6 HTTP请求指标的正确解读方式

你的理解不正确。

http_req_duration的实际计算范围是请求发送开始到响应接收完成的总耗时,也就是以下三个指标的总和:

  • http_req_sending(请求发送耗时)
  • http_req_waiting(服务器处理等待/TTFB耗时)
  • http_req_receiving(响应接收耗时)

它不包含http_req_blocked,这是你理解的核心错误点。

各指标详细说明:

  • http_req_blocked:请求正式发送前的准备耗时,包括k6内部队列阻塞时间、DNS查询、TCP连接建立(http_req_connecting是其中的子项)、TLS握手时间,属于请求发起前的前置阶段,不算入请求本身的处理时长。
  • http_req_connecting:单独统计的TCP连接建立耗时,是http_req_blocked的一部分,用来细分连接阶段的耗时。
  • http_req_sending:k6将请求数据完整发送给服务器的时间。
  • http_req_waiting:从请求发送完毕到收到服务器响应第一个字节的等待时间(即TTFB,Time To First Byte)。
  • http_req_receiving:k6接收并处理完服务器全部响应数据的时间。

为什么测试结果不符?

你错误地把http_req_blocked加入了http_req_duration的计算,但实际上前者是前置准备时间,和请求处理阶段的耗时是分开统计的。如果要算从请求初始化到响应完成的全链路总耗时,应该用http_req_blocked + http_req_duration。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:58:13