Web 应用程序是决定网站性能的关键,对其进行测试是网站测试的核心。压力测试的目的是测试系统在各种负荷(由并发用户所产生的综合处理量)下的性能和稳定性。
为了保证Web 应用程序的压力测试能取得理想的测试效果,压力测试也应该遵循软件工程中软件测试的一般规范。整个测试流程应有文档记录,压力测试应得到相应的重视。
需求分析
对不同的系统其压力测试的强度和侧重点也不同。一个用于中小企业内部网和一个要处理大量用户的电子商务站点的负荷量和负荷分布是明显不同的。前者的最大负荷量和负荷分布是可预期的,而且对企事业单位内部网来说,暂时关闭系统后重新起动也是可以接受的。例如一个高校的选课系统只在进行选课的几天内要求系统能承受大负荷,其它时间其负荷几乎为零;而对于后者却无法预期有多少客户会同时访问站点,对高峰负荷出现的时间也无法预知。因此在压力测试前必须进行需求分析,它是编写良好测试案例的基础。
确定测试目标
在确定压力测试目标中,我们要定义测试的对象,并对每一个测试对象给出清晰说明,也要定义测试结束的目标。为控制测试的有效性以及完成程度,必须定义准则和策略,以判断何时结束测试阶段。准则必须是客观的,可量化的,而不能是经验或感觉。下面是一些压力测试目标:(1)测定终端用户事务的响应时间,它可能随用户的增加而增加,但要定义一个可接受时间。(2)定义主机最优配置,我们可以以最低的价格发挥最佳的性能。在压力测试目标确定过程中,要邀请用户、设计人员等对其进行评审。
制定压力测试计划
测试计划的内容主要包括:定义测试资源、制定测试进度表、选择测试工具等。制定测试计划的主要目的是使压力测试有章可循并得到人力、物力方面的保证。需要指出的是在制定测试进度表时应和开发进度相互协调。当开发一个Web应用程序时,根据功能的不同将系统分成一些单独的子系统。一个较好的方法是随着子系统的完成先进行子系统的压力测试,当然,最后还必须进行整个系统的综合压力测试。
分析系统
分析系统有两个主要任务:第一,搞清系统对各个资源的分布与使用情况,它将帮我们确定可能系统性能的瓶颈;第二,搞清用户事务的分布,确定压力测试的针对点。我们定义事务是用来表示用户要求服务器连续完成的操作任务。