求助:如何在k6中获取分组执行时长?调用group.duration报错
解决k6分组执行时长获取问题
你的错误根源在于k6的group是一个函数,并非带有duration方法的对象,所以直接调用group.duration()会触发类型错误。下面提供两种可行的解决方案:
方案1:手动计时(简单直接)
利用performance.now()记录分组执行的开始和结束时间,计算时间差:
import http from 'k6/http'; export default function () { const groupStart = performance.now(); group('my-group', function () { http.get('https://test.k6.io'); }); const groupDuration = performance.now() - groupStart; console.log(`my-group 执行时长:${groupDuration}ms`); }
performance.now()返回高精度时间戳,适合计算短任务的执行时长- 把计时逻辑放在
group函数外部,确保统计的是整个分组的完整执行时间
方案2:自定义Metric统计(适合结果分析)
如果需要在k6最终报告中也能看到分组时长的统计数据,可以使用自定义Gauge指标:
import http from 'k6/http'; import { Gauge } from 'k6/metrics'; // 定义自定义Gauge指标 const groupDurationGauge = new Gauge('group_duration_ms'); export default function () { const start = performance.now(); group('my-group', function () { http.get('https://test.k6.io'); }); const duration = performance.now() - start; // 将时长记录到指标中 groupDurationGauge.add(duration, { group: 'my-group' }); console.log(`my-group 执行时长:${duration}ms`); }
运行脚本后,终端输出的统计结果里会出现group_duration_ms相关指标数据,方便后续分析。
内容的提问来源于stack exchange,提问作者Abhishek Pandey
相关产品推荐
相关产品推荐

