第5章 Web性能测试方法
良好的开始是成功的一半。小白所在公司网站的代码编写的差不多了,安放服务器的机房也已经找好,只要等第4章选购的服务器正式到位,就可以上机架、部署测试版本网站进行试运行了。离部署测试版的日子还有一段时间,小白对现在这段短暂的空闲,做了如下的安排:
首先要熟悉性能测试的几种方法。
在第4章CPU和硬盘的基础上,熟悉常见操作系统的性能计数器特点,并在自己的电脑上进行一次手工的性能测试。
熟悉常用的几种性能测试软件,听说有Load Runner等,从中选择一个比较好的,毕竟这也是部门经理在第4章开头布置的任务之一。
这3点内容将分别在从本章开始的第5章、第6章和第7章中讲述。现在就开始介绍Web性能测试的一些方法。
5.1 Web性能测试的目的与方法
本节首先介绍测试的目的,然后会介绍最常见的9种Web性能测试的方法,希望读者通过这些方法,对性能测试有深度的认识。
5.1.1 Web性能测试的目的
进行Web性能测试的目的很简单:
获得Web应用的性能表现情况。
发现并验证、修改Web应用中影响性能的Bug。
为网站性能优化提供数据参考。
实际所做的一切测试工作都要围绕这3个目的来进行,这样才不会在出现这样或那样困难的时候迷失方向,导致资源浪费。
5.1.2 Web性能测试方法的先决条件
对于性能测试方法,在某种意义上说,就是性能测试的分类。不同的性能测试分类,决定了需要采用不同的性能测试方法。Web性能测试也是如此。
不过在介绍具体的分类或者方法之前,有必要强调一下进行Web性能测试的先决条件。其实,从前面的章节,我们已经能够发现,进行Web性能测试的先决条件有这样几条:
一个稳定的Web应用版本。该版本必须与投入生产环境的版本极其类似。这一点的原因在前文也介绍过,对一个最终不会上线运行的版本,或者功能没有完成的版本进行性能测试是没有多大意义的,除非为了演练性能测试方法本身。
性能测试所处的测试环境,必须独立于开发环境,并且尽量类似于实际生产环境。这一点也很重要,测试环境必须是可比较的,大致拥有相同的参照物(比如CPU、硬盘速度等),这样的测试结果才更有参考价值。
当然,小白在今后这3章所做的性能测试,是为了在个人电脑上方便快速地了解性能测试方法,熟悉性能测试软件,并不打算将测试报告发送出去形成结果。对于小白和我们一般的初学者,这不失是一个好的学习方法。但是,在真正的性能测试工作中,对于上面的两个Web性能测试(也可以推广到所有的软件性能测试上面),一定要记牢。
下面将介绍Web性能测试方法的具体内容。
5.1.3 Web性能测试的详细分类
在第2章中曾粗略地讲到性能测试包含性能测试方法(狭义的)、压力测试等,现在可以将绝大部分文档中提到的众多分类列举出来了,它们是如下9种:
性能测试(Performance Testing);
压力测试(Stress Testing);
负载测试(Load Testing);
并发测试(Concurrency Testing);
配置测试(Configuration Testing);
耐久度测试(Endurance Testing);
可靠性测试(Reliability Testing);
尖峰冲击测试(Spike Testing);
失败恢复测试(Failover Testing)。
看起来分类很多,但它们实际上都是为了性能测试的目的:考察应用对于系统性能的影响状况。因此,它们的区别只在于考察系统性能的角度不同。角度决定方法,这正是本节开始时将性能测试方法和性能测试分类基本划等号的原因。