浸泡测试
定义
浸泡测试(Soak Testing)是一种性能测试,主要用来检验系统在长时间高负载运行后是否会出现内存泄露(Memory Leak)、句柄泄漏(Handle Leak)、性能逐渐变慢、CPU 占用持续上升、响应时间变长、服务崩溃或重启、数据积压、队列堆积的问题。
浸泡测试关注的是系统长时间运行的稳定性,而不是瞬间性能。
目的
- 发现资源泄露的问题
- 验证系统是否稳定运行数小时或数天
- 观察性能是否有下降趋势
- 检测数据库连接池是否正确释放连接
- 发现长时间运行后才能出现的隐藏Bug
流程
- 设置一个长期稳定、可持续的负载
- 持续监控系统资源
监控指标包括:
| 指标 | 重点 |
|---|---|
| 内存使用率 | 是否不断上升(内存泄露) |
| CPU使用率 | 是否持续升高 |
| 磁盘IO/网络IO | 是否出现阻塞 |
| GC(垃圾回收情况) | Full GC是否越来越频繁 |
| 线程数、连接数 | 是否不断增加 |
| 系统响应时间 | 是否不断变慢 |
- 测试结束后分析趋势图
浸泡测试与压力测试的区别
| 测试类型 | 目的 | 特点 |
|---|---|---|
| 压力测试 | 找极限、让系统崩溃掉 | 高负载、短时间 |
| 浸泡测试 | 看长时间是否稳定 | 中等负载、长时间 |
| 负载测试 | 评估系统性能指标 | 常规业务负载 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 JasmineRain's blog!
评论
