做网络负载测试时,很多人盯着吞吐量和响应时间看,却忽略了错误率这个关键指标。其实,错误率直接反映了系统在高压力下的稳定性。比如你公司上线了个新接口,压测时看着延迟还行,可错误率飙到5%,这意味着每发20个请求就有1个失败,用户端可能频繁报错或加载失败。
错误率是什么?
简单说,错误率就是“失败请求”占“总请求数”的比例。在负载测试中,常见的失败包括连接超时、服务器返回5xx、响应格式异常、TLS握手失败等。工具通常会把非200状态码或超时的请求记为错误。
怎么查看错误率?以JMeter为例
JMeter是常用的负载测试工具,在聚合报告(Aggregate Report)里就能看到Error%这一列。比如:
Label Samples Average Min Max Error%
API_Login 1000 120 45 800 3.2%
这里的3.2%说明有32个请求出错了。可以再点进“查看结果树”里具体看是哪种错误,是超时还是服务端抛异常。
不只是看数字,要看趋势
很多人只看最终错误率,其实更关键的是观察错误率随并发上升的变化曲线。比如并发从100升到500时,错误率从0.5%跳到6%,说明系统在高负载下开始不稳定。这时候就得查后端服务是否线程打满、数据库连接不够,或是网关限流触发了。
常见错误类型及排查方向
如果错误率偏高,先分清是哪类错误:
- 连接拒绝(Connection refused):目标服务没启动或端口未开放,检查防火墙和服务状态
- 超时(Timeout):可能是后端处理慢或网络拥塞,结合响应时间看
- 502/504:网关或代理层问题,比如Nginx后端无健康节点
- 429 Too Many Requests:被限流了,确认是否有速率控制策略
别被“低错误率”迷惑
有时候错误率显示0%,但实际业务有问题。比如压测脚本写死了某个固定参数,绕过了真实逻辑。或者只测了GET不测POST,漏掉了写操作的压力。所以得确保测试场景贴近真实用户行为,不然数据再好看也没用。
实战建议:加点日志联动分析
光看压测工具的错误率不够,最好同步收集服务端日志。比如压测期间发现错误率上升,立刻去查应用日志有没有大量异常堆栈,数据库慢查询是否激增。这样能快速定位是代码问题还是资源瓶颈。
说白了,错误率不是个孤立数字,得结合上下文看。它像是个报警灯,亮了就得马上查背后的原因,而不是只盯着那个百分比叹气。