一、了解性能测试
性能测试是不断的通过不同场景的系统表现去探究系统设计与资源消耗之间的平衡。
我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达到预估的性能需求,发现系统可能存在的性能瓶颈,进而改善优化并系统的性能,提高系统的可扩展性、稳定性。
从上面的描述可以看出,性能测试的主要工作包括:获得预估的性能需求、搭建测试环境、执行测试、分析测试结果。其中,最为重要两个工作是确定测试的目的、方案,并对结果进行分析。
二、确认测试目的
性能测试的需求包含但不限于用户的需求。在性能测试前我们同样需要充分了解开发、运维对系统的关注点。此外,要对被测模块的设计有深入了解,基本判断该模块是cpu密集型或是io密集型。以上这些是为更确立测试的目的,并有针对性的梳理测试方案和分析做好准备。
性能测试的目的包括:
(1)验证系统是否满足预期需求;
(2)验证系统在高压下的表现;
(3)验证系统是否能持续稳定的运行;
(4)探测系统的瓶颈和产生瓶颈的原因;
(5)探测系统设计与资源之间的最佳平衡,改善并优化系统的性能。
三、确认测试方案
根据性能测试目的的不同,所实施的测试方案也不同。
一般,性能测试主要包括如下几种:
1)验证系统在预估负载下的表现:负载测试
2)验证系统在极端负载下的表现:压力测试
3)验证系统是否能持续稳定的运行:稳定性测试
以下是对上述三种测试的图示。一般,常态负载低于瓶颈负载,从常态负载到瓶颈负载区间系统的承受能力可以看作是可扩展能力。当瓶颈负载小于等于常态负载时,说明该系统的性能没有满足预计要求,是存在问题的。探测常态负载与瓶颈负载的关系,正是负载测试所要完成的工作。压力测试则验证从系统到达瓶颈之后,继续持续加压时系统的表现。