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 配合:前者记录,后者判定,不要互相替代。
同一类指标只用一个命名规范,团队报告才能对照。
指标只增不删会让报告臃肿:过时指标定期清理。