node-elm 这个项目在我手里接管的时间不短了,平时接口响应中位数稳定在 80ms 上下,日志里看不到什么明显异常,我一直以为它算健康。直到一次类似大促预热的活动流量翻了几倍,首页聚合接口的 P99 直接冲到 3 秒,几分钟内 502 刷屏,我才意识到:光靠“感觉还行”过日子,迟早要被线上环境教育。后来我基于 k6 对 node-elm 做了一整套高并发压力测试,覆盖脚本设计、阶梯加压、瓶颈定位、参数调优和 CI 落地,前后踩了不少坑,也沉淀出一套可以复用的方法。这篇指南就是把整个流程完整复盘一遍,希望给正在准备对自己 Node.js 服务做压测的人一点参考。
k6 是一款以 JavaScript 编写脚本的开源负载测试工具,单机就能模拟大量虚拟用户(VU)并发请求,尤其适合接口型业务的高并发压力测试。node-elm 是我这边一个内部项目代号,一个基于 Node.js + Express + MySQL + Redis 的即时配送类业务后端,包含用户认证、商家查询、商品详情、订单提交等典型接口。这次压测覆盖了环境准备、脚本设计、模型选择、瓶颈定位、调优验证和 CI 接入,适合后端开发、测试工程师以及对性能调优感兴趣的读