中间件
性能测试的目的:
● 查找软件的性能瓶颈
谁都希望自己的软件性能比别人的高,所以我们不停的查找性能的瓶颈,通过代码分析,架构调整,采用新技术等,不断对产品进行优化。我们希望能够不断发现 性能瓶颈,不断消除瓶颈,使得软件的性能越来越高,测试过程作为验证性能是否达到设计要求的一个环节,采用测试程序对软件的整体或某个模块不断测试、不断 采样、不断加压,验证软件的性能表现,通过对测试结果的分析、对比等,判断是否存在某个性能瓶颈。所以性能测试的第一个目的是发现性能瓶颈,发现问题,才 有解决问题的可能性。
产生性能的瓶颈可能外部因素,例如网络、CPU等,对于产生性能瓶颈的外部因素,实际上是软件对这些资源的使用低效。也可能是内部因素,包括实现的算法选择、共享资源的访问、模块之间的调用和配合等。
● 查找性能异常
一个软件理想的性能表现是,在一定的环境下,性能能够在一定的水平上保持较大的压力区间,当压力超过一定的值以后,性能才下降,这个压力区间越大,代表软件能够支持的系统规模越大,性能指标具有更强的竞争力。
但是事情有时候并不像我们期望的那样完美,总是会有那么一个点或者是一个小的区间的性能明显低于它的邻居的性能,在整个性能曲线上,看起来非常的不完美 和不合群,这些点或者是小的区间,就是整个软件性能表现异常的部分,如果存在这样的部分,对于软件来讲,已经不是性能瓶颈的问题了,应该定义为软件性能的 bug。
所以软件性能测试的另一个目的就是检验软件是否存在这样的点或区间,软件的性能表现不太正常。
● 检验性能的稳定性
一个软件的性能的完美表现,不仅仅是检验它的性能有多高,而是在满足系统的性能要求的前期下,这个性能是否能够稳定的表现出来,需要把这个性能表现放在时间轴上来衡量。
软件的性能的稳定性测试是选取性能的最优表现时的压力和配置,长时间运行测试实例,检验在这样的场景下,软件性能是否能够一直稳定在这样的最优值,并且系统的资源的占用没有增长的趋势。
性能其实也有稳定性测试。
● 提供性能参考指标
性能测试首先是发现产品的性能异常,也就是前面提到的三个性能测试目的。对于一个产品,最终的目的还是展现给用户,所以性能测试的其中一个目的就是整理出一份全面的性能测试报告。
性能测试报告中能够体现出软件的主要使用场景的性能表现。通过这份性能测试报告,支持人员能够给用户推荐产品的合理配置,用户可以作为系统建设的参考等。
● 系统容量测试
我们都知道,当系统的压力达到一定值后,软件的性能会开始下降。那么对于性能开始下降的这部分结果是不是就没有参考价值了呢?我们看一个一般的用户需 求:“正常情况下满足10000用户在线,峰值能够满足15000人在线,响应时间<1秒”。对于这样的需求,整个系统的设计,一定是按照10000用户 来设计的,这个时候的性能可以理解为系统的最优性能。如果按照15000用户来设计最优性能,投入产出比就会小。当然前提是能够满足用户的响应时间的要 求。
系统容量测试,实际上也是给技术人员或用户一个性能参考。