性能测试完整方法体系
性能测试完整方法体系
性能测试核心目标:验证系统在不同压力下的响应速度、吞吐量、稳定性、资源消耗、承载上限,提前发现瓶颈、优化架构、预估生产容量。
一、八大主流性能测试类型(最常用测试方法)
1. 基准测试(基础基线)
- 做法:系统空载 / 少量用户(5~10 并发)正常访问,采集各项基础指标
- 用途:建立性能基准数据,后续所有压测结果都和它对比,判断性能升降
- 场景:新版本上线前后对比、环境迁移前后对比
2. 负载测试
- 做法:逐步递增并发用户数(阶梯加压),持续施压
例:50→100→200→500 并发,每级运行 10~30 分钟
- 目的:找到系统正常可承受的最大并发数(业务可接受响应时间内)
- 关注点:响应时间缓慢上涨、CPU / 内存逐步占用升高
3. 压力测试(极限承压)
在负载测试上限基础上,继续加大压力,直至系统性能急剧下降、报错、崩溃
- 产出:系统极限峰值、崩溃临界点、最大吞吐量上限
- 区分:负载测舒适区间;压力测崩溃临界点
4. 稳定性测试(耐久 / 疲劳测试)
- 做法:系统在日常峰值并发量下,长时间连续运行(24h/72h/7 天)
- 核心排查:内存泄漏、连接池耗尽、线程泄露、数据库慢查询堆积、定时任务累积问题
- 高频问题:跑几小时后响应越来越慢,就是内存 / 资源未释放
5. 并发测试
聚焦同一时刻大量用户同时操作同一个接口 / 功能
典型场景:秒杀下单、表单提交、优惠券领取、红包领取
验证:锁竞争、事务并发、超卖、重复提交、接口幂等性问题
6. 容量规划测试
测算系统可支撑的整体业务容量:
- 可承载日活 DAU、日均订单量、存储上限、数据库最大数据量
结合硬件资源,给出扩容方案(加机器、分库分表、缓存扩容)
7. 异常 / 容错测试(破坏性性能)
- 弱网测试:模拟延迟、丢包、抖动(移动端接口常用)
- 服务降级 / 熔断测试:下游接口超时、宕机时,自身系统是否可控,不会雪崩
- 限流测试:验证限流规则生效,超出流量被正常拦截
- 集群宕机演练:集群中关闭某一台节点,整体服务是否平稳无中断
8. 大数据量测试
- 数据库海量数据场景:千万级数据表下查询、分页、统计接口性能
- 大量历史日志、文件存储读取性能
二、通用性能测试标准流程(落地步骤)
步骤 1:需求调研 & 制定性能指标(KPI)
先定验收标准,无指标无法判断好坏
常用业务指标:
- 并发用户数:同时在线操作人数
- TPS/QPS:每秒处理请求数(核心吞吐量)
- 响应时间 RT:95%/99% 平均耗时(95% 用户请求耗时≤300ms)
- 错误率:≤0.01%
- 资源上限:CPU≤75%、内存≤80%、磁盘 IO / 网络无瓶颈
步骤 2:搭建压测环境
要求:
- 测试环境配置尽量贴近生产(硬件、中间件、数据库版本一致)
- 数据量对齐生产:数据库灌入等量历史数据
- 隔离环境:禁止其他业务占用资源,避免干扰压测结果
步骤 3:编写压测脚本
录制 / 开发接口请求脚本:参数化、断言、Cookie/Token 携带、思考时间模拟真实用户行为
主流工具:JMeter、Locust、k6、LoadRunner
步骤 4:执行分层压测(自上而下)
- 单接口压测:逐个核心接口单独压,找出慢接口
- 链路压测:完整业务流程(登录→浏览→加购→下单→支付),最贴近真实用户行为
- 全链路混合压测:多个业务场景同时并发
步骤 5:全程监控指标(关键)
服务端监控
- 服务器:CPU、内存、磁盘 IO、网络带宽
- JVM:堆内存、GC 频率、线程数、类加载
- 数据库:慢 SQL、连接数、锁等待、索引命中率、事务吞吐量
- 中间件:Redis 连接数、队列堆积、MQ 消息生产消费速率
客户端监控
响应时间分布、请求成功率、报错明细
步骤 6:瓶颈定位 & 性能优化
常见瓶颈层级(从前往后排查):
- 前端:静态资源过大、渲染缓慢
- 网关层:限流、转发耗时
- 应用服务:代码低效、循环查询、未加缓存
- 数据库:无索引、大查询、事务过长
- 存储 / 网络:磁盘读写慢、带宽不足
步骤 7:优化回归 & 输出测试报告
优化后重新压测对比基线数据,出具报告:压测场景、指标数据、瓶颈清单、优化方案、最终容量结论。
三、加压常用三种策略
- 阶梯加压:逐步增加并发(最常用,负载测试)
- 瞬间加压(爆发式):一秒拉起大量并发,用于秒杀、并发抢购场景
- 波浪加压:并发高低起伏,模拟早晚高峰波动,贴近线上真实流量
四、主流性能测试工具分类
- 开源免费(职场最常用)
- JMeter:Java 编写,功能全面,接口、数据库压测首选
- Locust:Python 代码编写压测脚本,灵活易维护
- k6:Go 语言,轻量化,适合云原生、接口自动化压测
- 商用
LoadRunner、PerfRunner(企业级,适合大型项目)
- 云压测平台
阿里云 PTS、腾讯云压测大师:可模拟全国分布式大量用户,无需自建压测机
浙公网安备 33010602011771号