k6压测接口:阈值、阶段和结果判断
2024年4月记录,分类「性能测试」。这里不追求大而全,主要记录一个测试点从发现到落地的过程。
脚本目标
k6 写压测脚本时,我最看重 thresholds 和 stages。没有阈值的压测只是跑了一遍,有阈值才知道能不能过。
对测试来说,最后要落到可复现、可验证、可交接,文章也是按这个思路写的。
阶段设计
- 用 stages 模拟爬升、稳定、回落,不只打一档并发。
- 给 http_req_duration、http_req_failed 设置明确阈值。
- 把业务断言写进 check,避免错误响应混进成功统计。
export const options = {
stages: [{ duration: '2m', target: 100 }, { duration: '5m', target: 100 }],
thresholds: { http_req_failed: ['rate<0.005'], http_req_duration: ['p(95)<800'] }
};
阈值设置
- 压测失败能指出是耗时还是错误率超阈值。
- 不同阶段的资源曲线能解释。
- 结果能给出容量建议。
落到团队协作里,重点是让新人能照着补用例,开发也能看懂为什么要改。
报告判断
k6 的好处是把性能预期写进脚本,压测结果不再只靠人工解读。真正有价值的不是这一次解决了什么,而是下次能不能更快定位同类问题。