5.2 Web性能测试方法的比较与共性 在5.1节中,我们学习了9种Web性能测试的方法,在本节中通过总结的形式,指出它们的不同,并从操作步骤等方面指出它们的共性,供读者参考。
5.2.1 各种Web性能测试方法的比较
性能测试包 含的这9种具体测试方法,实际上是从不同的角度和出发点来考察Web应用的性能表现。在这些方法中,有的关注"点",比如负载测试所关注的性能极限;有的 关注"面",比如性能测试所关注的一般性能情况;还有的关注"变化",比如尖峰冲击测试所关注的用户数量突然增加。具体来说:
性能测试是整个广义的性能测试中最基本的、也是必备的方法,它获得网站总体性能的评估,使网站的各个参与者对情况有基本了解。它是偏向总体、宏观的。
负载测试通过不断给Web应用增加负荷的过程来获得系统能够承受的最大压力数值。它确定了性能的最大限度和范围。
尖峰冲击测试、并发测试都是从在线用户数量这个因素来考察Web应用是否健壮,不同的是尖峰冲击测试注重在线用户的变化率,并发测试注重在线用户的绝对值。
压力测试考察了Web应用在服务器较大负荷条件下的表现,与并发测试、耐久度测试(或可靠性测试)分别侧重在线用户数量与运行时间两个具体因素不同。
配置测试为现有Web应用发挥最大效能提供了一种途径。它更面向网站性能优化,而不是发现网站性能上的Bug。
失败恢复测试则为网站把好最后一道关口,验证一旦网站出现问题后能够快速恢复的能力。
【各性能测试方法执行的时机】
正如了解一个人需要从多方面去获得信息一样,了解网站的真实性能情况也需要以上各种性能测试方法的配合。在实际工作中,各项测试的开始时间不一定是一成不变的,可以因公司规定、制定测试计划的工程师个人理解与习惯不同而灵活设置。笔者个人采取的性能测试顺序如图5-13所示。
图5-13 笔者采用的各性能测试方法开始时间顺序示意
5.2.2 各种Web性能测试方法的相同点 虽然各种Web性能测试在测试理念上有一些区别,但它们具有更多的相同点,这些相同点导致各种性能测试方法在实际工作中往往界限并不非常清楚,"你中有我,我中有你":
(1)它们同属于性能测试的范畴,都遵循性能测试的3个目的。
获得Web应用的性能表现情况。
发现并验证、修改Web应用中影响性能的Bug。
为网站性能优化提供数据参考。
(2)它们的测试步骤均类似,都具有如下阶段。
测试计划阶段:约定测试所采用的具体方法、时间、资源。
测试准备阶段:确定测试采用的Web应用版本号、准备测试环境。自动测试还需要准备、录制模拟场景等的脚本等工作。
测试实施阶段:进行测试,获得测试结果。
测试分析阶段:对结果进行分析,发现Bug或性能优化关键点。
测试报告发送:将分析结果进行总结,发送给网站相关人员。
测试总结阶段:综合各种测试结果,积累经验,为下一次测试打下坚实基础。
测试步骤在后面的章节还要具体涉及,比如测试计划的编写,测试结果的分析,测试报告的发送等,这里就不展开讨论了。
5.3 本章小结
本章主要介绍了Web性能测试的目的和具体测试的分类/方法,这9种方法分别是:
性能测试(Performance Testing);
压力测试(Stress Testing);
负载测试(Load Testing);
并发测试(Concurrency Testing);
配置测试(Configuration Testing);
耐久度测试(Endurance Testing);
可靠性测试(Reliability Testing);
尖峰冲击测试(Spike Testing);
失败恢复测试(Failover Testing)。
其中,性能测试是整个广义性能测试中最基本、也是必备的一个方法,能够获得被测试网站的一般性能。负载测试、尖峰冲击测试主要是查看Web应用 在极端情况下的表现,压力测试、并发测试和耐久度测试(可靠性测试)分别考察Web应用在较大负荷、多用户和长时间运行3种条件下的表现,验证了网站受到 具体重要因素影响的程度。配置测试则是为现有Web应用的优化提供了一种途径。失败恢复测试则为提高网站的可用性、预防和补救网站出现的问题提供了验证的 方法。
总之,合理、灵活地利用以上这些测试方法,可以使网站在开发阶段、测试阶段、部署阶段、运行阶段有关性能方面都有全方位的质量报告与质量保证,从而给予网站更优化的性能、用户更快速的响应,以及公司其他相关部门更多的信息、更大的信心。
(未完待续)
相关链接:
捉虫记--大容量Web应用性能测试与LoadRunner实战(连载一)
捉虫记--大容量Web应用性能测试与LoadRunner实战(连载二)
捉虫记--大容量Web应用性能测试与LoadRunner实战(连载三)
捉虫记--大容量Web应用性能测试与LoadRunner实战(连载四)
捉虫记--大容量Web应用性能测试与LoadRunner实战(连载五)