成功的 Web 应用系统性能测试
上一篇 / 下一篇 2008-04-06 15:28:40 / 个人分类:测试经验
性能测试是 Web 应用系统的一项重要质量保证措施。在现实中,很多 Web 性能测试项目由于性能测试需求定义不合理或不明确,导致性能测试项目不能达到预期目标或进度超期。本文针对 Web 应用系统的技术架构和系统使用特点,探讨如何有效实施性能测试过程,并重点介绍如何分析获得合理的性能测试需求,最终对 Web 应用系统性能进行科学、准确的评估。51Testing软件测试网s,s!@"?S
1 引言51Testing软件测试网&e-N^3G$LGw+P
51Testing软件测试网j w z9q4n8?kC基于Web服务器的应用系统由于提供浏览器界面而无须安装,大大降低了系统部署和升级成本,得以普遍应用。目前,很多企业的核心业务系统均是Web应用,但当Web应用的数据量和访问用户量日益增加,系统不得不面临性能和可靠性方面的挑战。因此,无论是Web应用系统的开发商或最终用户,都要求在上线前对系统进行性能,科学评价系统的性能,从而降低系统上线后的性能风险。51Testing软件测试网{}.y'g@8I\
51Testing软件测试网#^@[!W.~在很多性能测试项目中,由于不能合理定义系统的性能测试需求,不能建立和真实环境相符的负载模型,不能科学分析性能测试结果,导致性能测试项目持续时间很长或不能真正评价系统性能并提出性能改进措施。
r6y+A? b*S04ob+[ukL;c:?0本文在总结许多Web应用系统性能测试实践经验和教训的基础上,从与性能测试工具无关的角度介绍Web应用系统性能测试的方法和实施过程,以及如何定义合理的性能测试需求。51Testing软件测试网H8JD'r6D
$Fmvf*YV/|'OS01.1 术语定义
{rMM'GA9L$K/j0K\I&Igk0性能测试:通过模拟大量浏览器客户端同时访问Web服务器,获得系统的性能数据。51Testing软件测试网:@ MpwAR
51Testing软件测试网(c,[/O }I!T4` Xm虚拟用户:模拟浏览器向Web服务器发送请求并接收响应的一个进程或线程。
)FpE6`Q051Testing软件测试网 ?["^!K-r响应时间:浏览器向Web服务器提交一个请求到收到响应之间的间隔时间。51Testing软件测试网{mf?w
sM%v8w1ke3_$Q0思考时间:浏览器在收到响应后到提交下一个请求之间的间隔时间。
`hCe1Y1h2Vt7h4o051Testing软件测试网z~#_w8K-vmB请求成功率:Web服务器正确处理的请求数量和接收到的请求数量的比。
/| tR q/{#T T08qZi|p`8R`0吞吐量:单位时间内Web服务器成功处理的HTTP页面或HTTP请求数量。51Testing软件测试网$}$c j2O\MP
!]5wZ:^r;~9c \0在线用户:用户通过浏览器访问登录Web应用系统后,并不退出该应用系统。通常一个Web应用服务器的在线用户对应Web应用服务器的一个Session。
Bz,~].{1Zt8G07W$Ei%I7yy6E \/A'F0并发用户数:Web服务器在一段时间内为处理浏览器请求而建立的HTTP连接数或生成的处理线程数。当所有在线用户发送HTTP请求的思考时间为零时,Web服务器的并发用户数等于在线用户数。51Testing软件测试网]!IO7M7KO!@:?B/\
|p}$GQ M9dA01.2 Web应用系统技术架构51Testing软件测试网*G%y([p|
%Qb3m/o!m"qJ j3C0Web应用系统的前端为浏览器,后台为Web服务器(如Apache,Microsoft Internet Information Server),浏览器和Web服务器之间的交互基于HTTP协议。HTTP协议本身是无连接的,Web服务器通过Session机制来建立一个浏览器所发出的先后连接之间的关联。通过实验证明,当浏览器客户端在首次访问Web服务器后,如果该浏览器客户端不发送后续请求,服务器维持该浏览器客户端的Session变量所消耗的系统资源非常小。
;[z jHes2G03a,^ m9Zt9~8p;H5Ch3V02 Web应用系统性能测试过程51Testing软件测试网5klMvt-F2FG
a@gH!w0标准的Web应用系统性能测试过程包括确定性能测试需求,开发性能测试脚本,定义性能测试负载模型,执行性能测试和形成性能测试报告。本章将分别介绍上述过程,并通过举例说明如何完成每一环节。
!OKnTn4f051Testing软件测试网[h8n_#`}2jeS#J-m wg vy q+e051Testing软件测试网qD3w*UtP科学定义Web应用系统性能测试需求对一个成功的性能测试非常重要。通常,Web应用系统的性能测试需求有如下两种描述方法。
iG_9@},D+T051Testing软件测试网5qd3mK/}2.1.1 基于在线用户的性能测试需求51Testing软件测试网gN MsphA
51Testing软件测试网.`%P(b)s8fC%B-c'T该需求描述方法主要基于Web应用系统的在线用户和响应时间来度量系统性能。当Web应用系统在上线后所支持的在线用户数以及操作习惯(包括操作和请求之间的延迟)很容易获得,如企业的内部应用系统, 通常采用基于在线用户的方式来描述性能测试需求。以提供网上购物的Web应用系统为例,基于在线用户的性能测试需求可描述为:10个在线用户按正常操作速度访问网上购物系统的下定单功能,下定单交易的成功率是100%,而且90%的下定单请求响应时间不大于8秒;当90%的请求响应时间不大于用户的最大容忍时间20秒时,系统能支持50个在线用户。
a S kS4J? \^'[051Testing软件测试网3]u4kR N.S6u`5m2.1.2 基于吞吐量的性能测试需求
D G5@UzF^BZ051Testing软件测试网O:AYzmb(T5i该需求描述方法主要基于Web应用系统的吞吐量和响应时间来度量系统性能。当Web应用在上线后所支持的在线用户无法确定,如基于Internet的网上购物系统,可通过每天下定单的业务量直接计算其吞吐量,从而采取基于吞吐量的方式来描述性能测试需求。以网上购物系统为例,基于吞吐量的性能测试需求可描述为:网上购物系统在每分钟内需处理10笔下定单操作,交易成功率为100%,而且90%的请求响应时间不大于8秒。51Testing软件测试网lC W:br2NqpQA
51Testing软件测试网Q#i,iLEKD D2.2 开发性能测试脚本51Testing软件测试网| j&z[v)l
51Testing软件测试网!H BAM*z(Rwc在确定Web应用系统性能测试需求后,就要根据性能测试需求中确定的功能开发性能测试脚本。比如,针对前面定义的网上购物系统的性能测试需求,将开发下定单功能的性能测试脚本。