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

如何在K6本地测试中统计指定请求的平均与最大响应时间?

在K6本地统计特定请求的平均/最大响应时间

不用自己手动累加计算,K6本身就有更简单可靠的方式来统计特定请求的响应时间指标,同时手动实现也可行但并非最优解,下面分两种方式说明:

推荐方式:使用K6自定义Trend指标

K6的Trend指标专门用来跟踪数值型数据的分布,会自动帮你计算平均值、最大值、中位数、百分位数等,完全适配多VU场景的聚合统计,步骤如下:

  1. 在脚本顶部定义自定义Trend指标:
import http from 'k6/http';
import { Trend } from 'k6/metrics';

// 给目标请求创建专属的Trend指标,命名要清晰
const targetReqDuration = new Trend('target_request_duration');
  1. 发送目标请求后,将响应时长传入这个指标:
export default function () {
  // 其他无关请求
  http.get('https://your-domain.com/other-api');

  // 你要统计的特定请求
  const res = http.get('https://your-domain.com/target-api');
  // 将该请求的响应时长添加到自定义指标中
  targetReqDuration.add(res.timings.duration);

  // 其他无关请求
  http.get('https://your-domain.com/another-api');
}
  1. 本地运行测试后,在命令行的Summary区块里,就能直接看到这个指标的统计结果,比如:
target_request_duration.....: avg=185.2ms  max=620.7ms  med=160.3ms  p(95)=410.5ms  p(99)=580.1ms

这里的avg就是平均响应时间,max就是最大响应时间,直接取用即可。

如果需要把结果导出到文件分析,可以加--out参数,比如:

k6 run your-script.js --out json=test-results.json

之后从生成的JSON文件里,就能提取到target_request_duration对应的各项统计值。

手动累加计算(不推荐)

你提到的自行累加计算是可行的,但需要处理多VU之间的指标聚合问题——每个VU的变量是隔离的,不能直接用普通全局变量累加。需要结合Counter(统计请求次数)、Sum(统计总时长)、Gauge(记录最大值)来实现:

import http from 'k6/http';
import { Counter, Sum, Gauge } from 'k6/metrics';

const reqCount = new Counter('target_req_count');
const totalDuration = new Sum('target_total_duration');
const maxDuration = new Gauge('target_max_duration');

export default function () {
  const res = http.get('https://your-domain.com/target-api');
  const duration = res.timings.duration;

  reqCount.add(1);
  totalDuration.add(duration);
  
  // 更新最大值
  if (duration > maxDuration.value) {
    maxDuration.add(duration);
  }
}

运行后,你需要用total_duration的总和除以req_count的次数得到平均值,max_duration就是最大值。但这种方式需要手动计算,而且Gauge记录最大值在高并发场景下可能有精度问题,远不如Trend指标省心准确。

总结:手动累加不是唯一方法,也不是最优方法,优先用K6内置的自定义Trend指标来实现,简单可靠且统计准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 03:55:23