第三方性能压力测试不是找几个人用JMeter跑一遍,而是一个流程:定目的、建业务模型、准备环境和数据、设计场景、执行压测、监控分析、调优回归、出报告验收。对高并发业务管理系统来说,尤其要注意全链路、混合业务、数据一致性和稳定性,不能只测单个接口。
第一,先把压测目的定清楚。要和业务方、开发方、运维方、第三方测试团队一起确定:系统要支撑多少并发用户、目标TPS或QPS是多少、接口 P95/P99 响应时间要求、错误率上限、稳定性运行时长、峰值不断时间、资源水位红线。比如支持5000并发在线,审批提交TPS不低于800,P99小于800ms,错误率低于0.1%,连续运行12小时无内存泄漏。没有验收标准,第三方报告就没有结果。
第二,选第三方看是不是有同类高并发业务系统压测经验、是不是有商业工具或自研分布式压测平台、是不是能做全链路监控和短板定位、报告是不是被甲方或监管认可。同时要签保密协议、确定工作说明书、验收标准、交付物、责任边界。第三方应独立于开发团队不能既做开发又给自己出合格报告。
第三,做系统调研和业务建模。第三方要整理架构拓扑、应用集群、数据库、缓存、消息队列、网关、第三方依赖、定时任务、批处理、报表导出等。然后从生产日志或监控中提取真实业务比例,比如登录、查询、提交、审批、退回、消息推送、文件上传各占多少,形成混合业务模型。只按单接口压测,结果会严重偏乐观。
第四,准备压测环境和数据。优先使用和生产1:1的预发环境,或者生产影子环境。如果只能在生产压测,必须低峰期、白名单、压测标记、隔离账号、限流熔断、回滚预案、数据清理方案。数据要参数化、唯一化,避免所有请求命中同一缓存或同一行记录。数据量要接近生产,否则数据库索引、分页、锁竞争都测不出来。
第五,设计压测方案。场景一般包括标准测试、单业务场景、混合业务场景、阶梯加压、容量测试、峰值测试、稳定性测试、异常测试。异常测试包括依赖超时、数据库主从切换、缓存宕机、MQ 堆积、网络抖动、限流降级是不是生效。执行时不要一上来就满负载,先标准,再逐步加压,观察 TPS 曲线、响应时间曲线和资源曲线,找到性能拐点和短板点。
第六,工具和施压能力。常用工具有 LoadRunner、JMeter、Locust、Gatling、k6、wrk、Taurus,以及云压测平台。高并发下必须用分布式施压机,并监控施压机自身的 CPU、内存、网络带宽、端口耗尽和文件句柄。否则以为是系统短板,其实是压测机先扛不住。
第七,监控必须全包括。应用层看 TPS、QPS、并发数、P50/P95/P99、错误率、线程池、连接池、GC、超时重试;系统层看 CPU、内存、磁盘 IO、网络;中间件看数据库 QPS、慢 SQL、锁等待、缓存命中率、MQ 堆积;链路层看 Trace 和日志。没有监控的压测只能看到慢,无法定位为什么慢。
第八,执行后要定位和调优。常见短板包括数据库慢 SQL、连接池过小、锁竞争、缓存击穿、GC 频繁、线程池配置不合理、序列化效率低、网关限流、第三方依赖超时、网络带宽不足。调优后必须回归压测,不能只调不测。第三方应给出短板证据、调优建议和复测结果。
第九,报告和验收。报告应包含测试目的、环境拓扑、业务模型、数据量、脚本说明、执行方法、监控图表、结果数据、短板分析、调优建议、风险提示、是不是达标结果。第三方报告要签字盖章、可追溯、可审计。如果未达标,要确定差距和复测计划。
只压接口不压全链路;数据不真实;缓存预热过度;只看平均响应时间不看 P99;忽略稳定性和异常场景;没有熔断降级证实;生产压测没有回滚方案。高并发业务管理系统的第三方压测主要是真实业务模型加全链路监控加可复现结果,而不是单纯追求一个漂亮的TPS数字。