定义

浸泡测试(Soak Testing)是一种性能测试,主要用来检验系统在长时间高负载运行后是否会出现内存泄露(Memory Leak)、句柄泄漏(Handle Leak)、性能逐渐变慢、CPU 占用持续上升、响应时间变长、服务崩溃或重启、数据积压、队列堆积的问题。

浸泡测试关注的是系统长时间运行的稳定性,而不是瞬间性能。

目的

  1. 发现资源泄露的问题
  2. 验证系统是否稳定运行数小时或数天
  3. 观察性能是否有下降趋势
  4. 检测数据库连接池是否正确释放连接
  5. 发现长时间运行后才能出现的隐藏Bug

流程

  1. 设置一个长期稳定、可持续的负载
  2. 持续监控系统资源
    监控指标包括:
指标 重点
内存使用率 是否不断上升(内存泄露)
CPU使用率 是否持续升高
磁盘IO/网络IO 是否出现阻塞
GC(垃圾回收情况) Full GC是否越来越频繁
线程数、连接数 是否不断增加
系统响应时间 是否不断变慢
  1. 测试结束后分析趋势图

浸泡测试与压力测试的区别

测试类型 目的 特点
压力测试 找极限、让系统崩溃掉 高负载、短时间
浸泡测试 看长时间是否稳定 中等负载、长时间
负载测试 评估系统性能指标 常规业务负载