首页 / 软件开发 / JAVA / WEB应用程序的测试与优化概述
WEB应用程序的测试与优化概述2010-12-08“让你的WEB应用程序完成你想做的事情是一回事,而让他们快速、有效的去做常常是另外一回事。”在这篇文章里我将初步讨论有关“WEB应用程序的性能”的问题,主要是一些基本概念以及工具,算是抛砖引玉吧!注意这些内容同样适用于J2EE应用。此后,也许我会写更多关于此方面的文章。首先,这里有两个性能方面的重要指标。请注意,下面的“定义”并不规范,仅供参考。* Response Time - 响应时间从初始化请求到完成响应所用的时间。这是一个测试WEB应用程序速度的重要度量。* Scalability - 伸缩性一个可伸缩的应用程序的响应时间随负载的增加而线性增加。没有WEB应用程序可以处理无限数目的请求,但是一般我们可以预测一个范围,并保证我们的WEB应用程序可以在此范围内“优雅”的伸缩,即始终把响应时间维持在可接受的级别。如果我们打算优化我们的WEB应用程序,那么至少我们应该知道它到底该不该优化。压力测试可以解答这个问题。* Load Test - 压力测试为WEB应用程序模拟用户请求以测量其伸缩性的过程。它非常有用,虽然开始的时候会觉得有点“变态”。一般我们会模拟大量的用户请求以获得在WEB应用程序的速度恶化到无法接受的级别前能够处理的并发请求数量。所谓“无法接受的级别”并不是一定要到实例池崩溃、应用服务器瘫痪甚至服务器当机的时候,这要视需求而定。一般压力测试包含如下步骤:* 确定接受请求并完成响应的最大允许的延时。* 估计WEB应用程序的最大并发用户数量。* 模拟用户请求,以一个比较小的负载开始,逐渐增加模拟用户的数量,直到WEB应用程序的 相应延时超过最大延时。* 如果负载比估计的用户数量小,那么应该优化这个WEB程序,否则你选择性的执行优化。你不会在考虑自己写一个测试程序吧?算了,何必再重新发明一次轮子?这里有一些压力测试工具,它们各有特色,先介绍免费的:* Web Application Stress Tool, Microsoft, http://www.microsoft.com* JMeter, Java Apache Project, http://www.apache.org/* LoadItUp, BroadGun Software, http://www.broadgun.com