性能测试在不同情况下是有着不同的目的,清楚每次性能测试的目标,能够让我们在设计性能测试方案的时候,更加有针对性。
性能测试的目的 1.获取正常请求流量下,系统的各个性能指标: 这是最常见的性能测试目的,常规性能测试通常都有这个需求。在正常压力(无压力)流量下对系统进行性能测试,建立一个可度量的参考标准,为其他测试场景或者调优过程提供对比参考。 常用的性能测试指标包括: 服务响应相关的:平均响应时间,响应时间分布情况,失败率等 资源使用相关:CPU使用,内存,磁盘IO,网络IO等 2.获取系统能够承载的极限容量,以及获得系统的性能瓶颈 系统容量评估因为比较难自动化,所以通常这类需求频率会低一些,可能会周期性评估。通过“拐点法”进行性能测试,逐步增大系统的压力,直到性能指标不可接受或者出现了明显的拐点,从而找到系统的瓶颈点。需要注意的是,压测时的极限并发或者极限每秒处理请求数,一定是以在安全运维的性能标准下为前提。 3.测试系统稳定性: 系统稳定性压测是要知道在各种情况下系统能否稳定运行。造成系统不稳定的情况有: 极限的每秒请求数 极限的并发数或连接数 突发流量高峰 长时间的压力流量 热点数据请求 差网络环境 下游模块慢返回、超时或故障假死等 4.性能测试辅助系统参数调整: 需要配合研发,测试在不同系统参数或者部署方案下,系统性能情况的对比。 5.系统性能回归: 在版本升级时,通常需要对比新老版本的性能情况。 什么时候需要开展性能测试? 1.上线新模块/功能,且模块/功能对系统影正常运作影响大时,或者是重大功能的上线; 2.有线上促销活动的需求时:促销活动通常会导致系统流量翻好几十倍,通过性能测试可以得知系统是否足够支撑瞬间峰值流量,并为系统扩容提供依据; 3.线上服务需要扩容时; 4.性能调优后:评估性能调优的效果,进而决定是否还需要重新进行性能优化。
|