性能问题造成真实业务影响——慢页面丢用户,过载系统会崩溃。测试你主动确保系统可靠性的能力。
区分负载测试、压力测试和浸泡测试。
描述如何建立基线和设定性能预算。
解释工具和测试环境方法。
分享结果驱动的例子。
我分三个阶段做性能测试。首先基线:在正常负载下分析当前系统,建立响应时间、吞吐量和资源利用率基准。其次负载测试:逐步增加并发用户找到临界点和瓶颈——用k6或Locust。第三浸泡测试:持续24+小时负载发现内存泄漏和连接池耗尽。我总是在尽可能接近生产的环境中测试。在上一个项目中,性能测试发现了一个只在持续流量4小时后才出现的数据库连接泄漏。我们在上线前修复了它。
总是在类生产环境中测试——本地测试结果有误导性。
关注对用户有意义的指标:响应时间百分位(p95、p99),而非只看平均值。
将性能测试纳入CI/CD自动捕获回归。
负载测试验证系统能处理预期流量。压力测试超越预期极限找到临界点并观察故障行为。
k6适合开发者友好的脚本化测试,JMeter适合复杂场景,Locust适合Python团队,Gatling适合Scala/Java环境。
基于SLA、用户期望和业务需求。常见目标:p95响应时间低于200ms,99.9%可用性,处理2倍预期峰值流量。