定义

负载测试是在逐步增加并发量和请求量的情况下,验证系统在接近设计容量范围内的性能表现,确定系统能承受多大的稳定负载而不出现性能下降。

负载测试(Load Test)是一种性能测试,用来评估系统在正常和接近高负载情况下是否仍能保持:正确性、稳定性、性能指标达标(响应时间、QPS、吞吐量等),它模拟大量用户同时访问系统,通过持续施压来观察系统极限。

目标

  1. 验证系统承载能力是否达到设计值(如承诺 10k QPS 是否能达到)
  2. 找出性能瓶颈(数据库、缓存、CPU、锁竞争等)
  3. 确保系统在高负载下仍能稳定运行
  4. 为扩容、容量规划提供依据
  5. 发现隐藏问题(慢查询、内存泄漏、线程池耗尽)

常见负载测试指标

指标 含义
QPS 每秒请求数
TPS 每秒事务数
响应时间(P50,P90,P95,P99) 延迟表现
吞吐量 系统每秒处理的数据量
CPU、内存、I/O、网络使用率 监控资源瓶颈
错误率 请求失败占比
饱和度(Saturation) 系统举例极限有多近

通用流程

  1. 明确性能目标:例如:QPS ≥ 5000、P99 响应时间 ≤ 50ms、错误率 ≤ 0.1%
  2. 构造测试场景:登录、查询、下单、推送;使用真实数据(Mock 可能失真)
  3. 典型的负载模型:固定并发(steady load)、阶梯式增加(step load)、峰值负载(burst load)
  4. 使用压测工具模拟请求:常见工具:JMeter、k6(推荐)、Locust、wrk、ab、Gatling
  5. 实时监控系统资源:Prometheus + Grafana或云产品自带监控
  6. 分析结果、定位瓶颈:判断是否达到目标;查找慢查询、线程池、GC、数据库锁、Redis 命令等