14.2 性能测试结果分析方法
在14.1节中我们学习了对于性能测试数据有效性的判断,并且利用统计学知识与以往经验从中可以得到性能概况。另外,还可以根据几条经验规则对怀疑数据进行剔除。在本节中将讲解如何对现有有效的数据进行分析,并据此得到性能好与坏的结论,为编写性能测试报告做准备。
对性能测试结果进行分析需要依次进行以下几个步骤:
(1)判断影响性能的因素。
(2)运用隔离、对比等方法进行趋势判断。
(3)记录各个结果,发现规律。
14.2.1 判断影响性能的因素
判断影响Web应用性能的因素其实一般发生在性能测试的设计阶段,但列在这里也是适当的,因为:
在实际工作中,设计阶段可能对于影响因素考虑不足,导致有些因素没有考虑到。这种情况会令测试结果不完全,要增加测试的运行。
设计阶段也可能出现考虑影响因素过多的情况,这需要在测试数据中进行判断,从而将无关的因素去除。该情况下那些多余的测试结果并非没有益处,因为正是它们,使得性能测试工程师得以发现了无关因素。
在Web应用领域,影响性能的因素有用户数量、服务器性能(请见前面章节有关性能计数器的部分)、网络带宽、客户端软件配置等多种。由于这些因素是综合起作用的,它们对Web应用的影响可以组合出很多种情况,其中部分如表14-6所示。
表14-6 影响性能各因素的部分组合
情况编号 | 用户数量 | 服务器性能 | 网络带宽 | 客户端软件配置 |
1 | 变化 | 不变 | 不变 | 不变 |
2 | 变化 | 不变 | 变化 | 变化 |
3 | 变化 | 不变 | 不变 | 变化 |
可以知道,这样的组合还有很多种,如果都针对它们进行测试,在大多数情况下(时间、人力、软件发布要求等要求比较严格紧迫)是不可能完成的任务。因此,有必要使用隔离的方法进行精简。
不过,值得一提的是,对性能做出正确判断需要足够多的测试数据。
14.2.2 隔离与对比
隔离、对比是常见的生成、分析数据的方法。通俗地讲,隔离就是指固定其他的影响因素,只变化剩余那个影响因素的方法。对于表14-6的情况来说,我们只需要测试4种情况就可以了,即:
用户数量变化,其他因素不变的情况。
服务器性能变化,其他因素不变的情况。
网络带宽变化,其他因素不变的情况。
客户端软件配置变化,其他因素不变的情况。
这样一来,问题得到了简化,同时,各因素的影响规律也能够被发现。
并列是分析数据的方法,特别适用于将数据生成为图表的情况下。它可以分为纵向比较与横向比较。
【纵向比较】
所谓纵向比较就是在同一个影响因素数值变化、其他因素固定的情况下,将多次测试结果并列在一张图表当中进行分析,从而发现该因素对性能的影响规律。比如针对表14-6中的数据,可以将用户数量分别是100、1000、10000的时候制表进行比较,发现用户数量对于性能的影响规律。
【横向比较】
而横向比较则是将多次纵向比较的结果,并列在一张图表中,从中发现各因素之间的关系或者性能的变化趋势。这多用于判断性能的优化成果。比如针对表14-6中的数据,可以在优化前与优化后进行不同用户数量的测试,如果测试结果曲线变化明显不同,则可说明优化的效果好坏。