4.6 性能测试方法
性能测试是测试者最看重的测试之一,很多公司甚至有专职的人员来设计性能测试方案,并开发相关工具。
一般来说,产品的需求规格书中都会描述系统性能,但是系统需求规格说明书往往只会给出系统在最优配置下的最好性能,而用户真实使用的环境、配置、业务负载往往都非常复杂,测试者仅按照需求规格说明书去测试最好性能是远远不够的,还需要分析那些影响性能的因子,测出各种影响因子叠加下系统的最差性能和用户典型场景下的端到端整体性能。总结起来说,测试方法就是:
·基线性能测试法:测试目标是测试系统可以达到的最优性能。
·影响性能的因子测试法:测试目标是测试系统在各种因子影响下的最差性能。
·场景性能测试法:测试目标是验证系统在用户真实场景下的使用性能。
这三种性能测试方法是层层递进的。我们要先通过测试确认系统最优的性能是否满足系统设计预期;再在这个基础上,测试影响性能的因子是否会让系统性能下降到完全无法使用的程度;最后测试端到端、综合情况下的性能,并结合最差性能来评估系统是否可以承受用户真实场景的严酷考验。
分析哪些因子会影响性能,这是性能测试的基础,这往往和实现有关。我们可以从组件、单功能、多功能交互、系统等层面来对可能影响性能的因子进行深入分析。
由于性能实在太重要了,所以很多行业都有自己的性能测试标准、规范以及专有的性能测试工具。如网络行业著名的RFC2544(网络互联设备通用性能测试标准,定义网络互联设备需要测试的性能指标为吞吐量、时延、丢包率等)。我们可以将这些测试标准理解为“性能测试的广度”,把上述测试方法理解为“性能测试的深度”,就能得到被测系统的性能测试模型,如图4-32所示。
需要特别说明的是,图4-32所示以网络行业性能指标为例,读者可以将其换为自己行业/产品的性能指标,得到属于自己的性能测试模型。
图4-32 性能测试模型