首页/开发/软件测试速查/k6 指标与 check

k6 指标与 check

区分 check 与 metric:check 记录通过率但不中止执行,阈值与指标用于判定;内建指标含 http_req_duration、http_req_failed、vus、iterations;自定义指标用 Trend/Counter/Gauge/Rate 表达业务量。

软件测试速查开发更新于 2026-10-13

k6 指标与 check

区分 check 与 metric:check 记录通过率但不中止执行,阈值与指标用于判定;内建指标含 http_req_duration、http_req_failed、vus、iterations;自定义指标用 Trend/Counter/Gauge/Rate 表达业务量。把业务口径独立建模,报告才解释得清楚。

基本信息

check断言型记录,失败不中止,仅计通过率
阈值thresholds 在结果层判定通过与否
内建指标http_req_duration、http_req_failed、vus、iterations
自定义指标Trend、Counter、Gauge、Rate 四类
标签tags 按接口与场景切分指标
输出终端汇总、JSON 导出、接监控系统
check 写法check(res, { ok: (r) => r.status === 200 })
报告导出handleSummary 自定义输出格式

自定义指标

自定义指标
import { Trend } from 'k6/metrics';
const bizTime = new Trend('biz_time');

bizTime.add(res.timings.duration);
// 业务成功耗时单独建指标,比复用网络耗时更贴业务口径

指标速查

名称含义关注点
checks检查通过率失败不中止,仅记录
http_req_duration请求耗时分布看分位与阈值
http_req_failed请求失败率非零先查原因
vus 与 iterations并发与迭代数换算实际吞吐
自定义 Trend业务耗时等业务口径独立建模

典型使用场景

  • 业务口径:把关键事务耗时与成功数建成自定义指标。
  • 回归判定:用 thresholds 把目标写成自动判定。
  • 问题定位:按标签切分,比较不同接口的表现。
  • 报告解读:区分 check 通过率与指标数值的用法。
  • CI 集成:小规模运行也能给出趋势与判定结论。
  • 监控对接:把关键指标导出到监控看板。
  • 断言语义:check 内写条件函数,失败原因随输出展示。
  • 阈值联动:thresholds 引用指标名与聚合方式。
  • 基线管理:核心指标基线与阈值一起纳入版本库。
把 check 当断言使用是常见误解:失败不中止,也不影响判定。
自定义指标命名混乱,报告难以解读:命名先定规范。
指标口径写进报告说明,否则读者各取所需。
check 与 threshold 配合:前者记录,后者判定,不要互相替代。
同一类指标只用一个命名规范,团队报告才能对照。
指标只增不删会让报告臃肿:过时指标定期清理。

易错点

  • 把 check 当断言使用:失败不中止也不影响判定。
  • 自定义指标命名混乱,报告难以解读。
  • 阈值缺失,跑完只有数字没有判据。
  • 标签滥用导致指标基数爆炸,报告无法阅读。
  • 把业务成功与网络成功率混为一谈,指标解释失真。
  • 报告解读不标注指标口径版本,历史对比失准。

数据来源与参考

  • k6 官方文档:Metrics 与 Checks(k6.io/docs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌