学院首页 软件应用 编程开发 创意设计 认证培训 软件论坛
ASP ASP.NET PHP JSP SQL MYSQL Java VB

您的位置:学院 >> 编程开发 >> Java >> WEB应用程序的测试与优化概述


WEB应用程序的测试与优化概述


天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。


  “让你的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

  如果你或你的公司很有Money,或者需要更加丰富的功能,可以使用以下商业软件,不过它们都价值$10,000,甚至更多:

  * WebLoad, RadView Software, http://www.radview.com/
  * SilkPerformer, Segue Software, http://www.segue.com/
  * Benchmark Factory, Quest Software, http://www.benchmarkfactory.com/
  * LoadRunner, Mercury Interactive, http://www.mercuryinteractive.com/

  无论你选择哪种工具,它都至少应该提供以下的功能,以便为以提供丰富且有意义的测试数据:

  * 发送GET和POST请求

  * “记录”从浏览器发送的GET和POST请求(以免开发者需要手写这些合适的请求)。

  * 获取和发送COOKIE。

  * 多线程

  * 模拟用户延迟

  * 记录性能数据

  * 控制带宽

  我打赌如果你以前没有接触过以上这些内容,那么你的WEB应用程序很难在压力测试中获得令人满意的结果。你会看到响应时间会随着请求数量的增多而暴涨,甚至出现一些我们不想看到的情况,比如“拒绝连接”。

  一旦没能通过压力测试我们应该如何应对呢?优化!没错,不过我们怎么知道那里应该优化呢?Profiler可以对此提供很多的帮助。(我不知道怎么翻译它更贴切一些,所以干脆不翻译了!)

  Profiler提供这样的功能,它可以检测你的应用程序并提供一些有用的运行时信息,比如某块代码的执行时间、内存/堆的使用情况、内存中的对象实例数量等等。比如,我们想知道到底是哪个Java对象的哪个方法耗费了更多的时间。

  以下是一些Profiler:

  * Quantify,Rational Software,http://www.rational.com/
  * Optimizeit,Intuitive Systems,http://www.optimizeit.com/
  * JProbe,Sitraka Software,http://www.jprobe.com/

  请注意,我们不能过分依赖工具,虽然它们很多时候可以极大的是我们的工作变得简单、轻松。一般如果你知道了系统的瓶颈所在,修改往往是一件相对轻松的事情。个人认为寻找、发现系统的瓶颈所在才是最关键、也是最体现一个人功力的步骤。这是一个非常专业的问题,它需要你对所使用的应用平台、软件架构、数据库系统、网络环境等等诸多方面非常深的造诣。这并不夸张,任何一个会JSP和JDBC的人都可以写出一个WEB应用程序来,但是那还相差太远……限于篇幅,话题先进行到这里。其实你可以在很多地方找到有关测试和优化技巧的文章,都非常有针对性,比如TheServerSide.com、JavaLobby.com等。Java之路很长,一步一步走吧!!


技术文章快速查找

栏目导航
软件应用
·操作系统 ·杀毒防黑 ·应用软件
·聊天软件 ·网络软件  
Web开发
·ASP ·JavaScript ·CGI
·JSP ·VbScript ·Web服务器
·PHP ·XML  
开发语言
·VB ·VC ·ASP.NET
·Java ·C/C++ ·Delphi
数据库开发
·MySQL ·SQL/Access ·PowerBuilder
·Oracle ·DB2  
网站设计
·Flash ·Dreamweaver ·HTML/CSS
·Fireworks ·FrontPage  
平面设计
·Photoshop ·CorelDraw ·AutoCAD
·FreeHand ·Illustrator ·3DsMAX
媒体动画
·Director ·Authorware ·Maya
·视频处理    


相关软件 产品库推荐
·笔记本 ·台式机 ·服务器
·数码相机 ·手机 ·GPS
·DV摄像机 ·MP3 ·MP4
·CPU ·硬盘 ·内存
·主板 ·显卡 ·显示器
·打印机 ·投影机 ·路由器

还没人留言,抢个先,哈哈!
对"WEB应用程序的测试与优化概述"的评论 - 快速回贴
内容:
  [完成后可按Ctrl+Enter发布]

百度中 WEB应用程序的测试与优化概述 相关内容
Google搜索中 WEB应用程序的测试与优化概述 相关内容
雅虎中 WEB应用程序的测试与优化概述 相关内容
Sogou搜索中 WEB应用程序的测试与优化概述 相关内容

相关软件 最新回复帖子:

·AutoCAD打造精致三维鸟笼实例详解
·Photoshop自定义水晶字特效样式
·AutoCAD三维基础实例教程
·PS为黑背景长发美女照片抠图换背
·用Photoshop自制个性摩托车贴花小经验
·轻松几步将美女照片处理为手工素描
·巧用Photoshop画笔轻松绘制创意特效
·用Photoshop通道将模糊肖像照片清晰化
·照片处理:Photoshop修复残破照片
·PS CS2新增形状模糊滤镜绘制花布图案


  相关软件 WEB应用程序的测试与优化概述相关文章
JXTA技术的设计目标和层次结构 Java语言中两种异常的差别
JXTA技术与应用发展慨述 Java用户界面本地化实例探索
JFreeChart在Webwork中的应用 用Java Web服务打造聊天程序
J2EE应用程序打包与部署之三 Java中的抽象数据类型探讨
Java虚拟机结构基础研究之一 J2EE应用程序打包与部署之二
J2EE应用程序打包与部署之一 用Java实现HTTP断点续传
全面接触Java集合框架 用Java调用VC音量控制程序
Struts开发指南之其他Web构架 Struts开发指南之Taglib
Struts开发指南之工作流程 Struts开发指南之安装与使用
Struts开发指南之J2EE n层结构 Struts开发指南之MVC架构