论Web应用软件性能测试及测试工具的选择

来源:网络(转载) 作者:贾文芳 徐可 发表于:2011-08-16 14:08  点击:
【关健词】Web应用软件;性能测试;测试工具
该文首先介绍了Web应用软件的定义,接着介绍了Web应用性能测试的定义和性能测试的内容,然后详细分析了Web应用性能测试工具的原理,包括目前常用的性能测试工具模型、性能测试工具的选择等。  

Web的全称是World Wide Web,简称为Web。自从产生以来,Web已经得到广泛的发展,在逻辑上形成了一个遍布全球的巨大信息网络。为了确保Web应用软件功能的正确,并能同时处理大量的并发用户的访问,而且兼容不同的浏览器、不同浏览器版本和操作系统,从而使Web应用软件的设计达到预期的功能需求同时又具有良好的性能,必须进行以下不同类型的测试,其中的性能测试主要确定在用户可接受的响应时间内,系统能够承担的并发用户的数量,能够同时处理的交易的数目,以及不同负载情况下页面的下载时间和检测瓶颈可能发生的位置。
  性能是Web应用软件成功的一个重要因素,对于用户来说,性能有时比功能更重要。因此,要保证Web应用程序达到预期的性能,开发过程中就必须进行性能测试。只有通过性能测试后,才有信心将它投入使用。Web应用软件性能测试的目标在于通过模拟真实负载,找出性能瓶颈,优化系统性能,从而保证程序在实际运行中能够提供良好和可靠的服务。
  1 Web应用软件性能测试的内容
  性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。主要包括三个方面的测试:在客户端性能的测试、在网络上性能的测试和在服务器端性能的测试。
  1.1 在客户端的性能测试
  在客户端性能测试的目的,是考察客户端应用软件的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。
  并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的状态,通过综合分析请求响应数据和资源监控指标,来确定系统并发性能的过程。负载测试是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项。负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试是通过确定一个系统的瓶颈或者不能再接收的极限点,来获得系统所能提供的最大服务级别的测试。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。压力测试的区域包括表单、登录和其他信息传输页面等。
  1.2 在网络上的性能测试
  在网络上的性能测试重点是利用成熟先进的自动化技术进行网络应用性能监控、网络应用性能分析和网络预测。网络应用性能分析的目的是准确展示网络带宽、延迟、负载和TCP(Transmission Control Protocol)端口的变化是如何影响用户的响应时间的。在系统试运行之后,需要及时准确地了解网络上正在发生什么事情;什么应用在运行,如何运行;多少PC(Personal Computer)正在访问LAN(Local Area Network)或WAN(Wide Area Network);哪些应用程序导致系统瓶颈或资源竞争,这时网络应用性能监控以及网络资源管理对系统的正常稳定运行是非常关键的。利用网络应用性能监控工具,可以达到事半功倍的效果。考虑到系统未来发展的扩展性,预测网络流量的变化、网络结构的变化对用户系统的影响非常重要,根据规划数据进行预测并及时提供网络性能预测数据。
  1.3 在服务器端的性能测试
  对于应用在服务器上的性能测试,可以采用工具监控,也可以使用系统本身的监控命令,例如Tuxedo中可以使用Top命令监控资源使用情况。实施测试的目的是实现服务器设备、服务器操作系统、数据库系统、应用在服务器上性能的全面监控。
  2 Web应用软件性能测试工具
  2.1 性能测试工具的简介
  常用的测试工具有Loadrrunner和Jmeter,下面对它们分别作简要的介绍。Loadrunner是Mercury Interactive公司的测试工具。Loadrunner是一种预测系统行为和性能的工业标准级负载测试工具,通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,对整个企业架构进行测试。
  Jmeter:这是著名的Apache组织下的Jmeter项目组开发的一个测试工具,完全使用Java语言实现,可以对http和ftp服务器进行负载和性能测试,通过使用Jmeter提供的供能,可以容易的制定测试计划:包括规定使用什么样的负载、测试什么内容、传入的参数,同时,Jmeter还提供了好多种图形化的测试结果显示方式,能够方便的开始测试工作和分析测试结果。特别是能将线程分组,同时对多个不同的功能进行测试。
  2.2 性能测试工具的模型
  一般来说,性能测试工具包括以下部件:虚拟用户脚本产生器(Vugen)、压力产生器、用户代理、压力调度和监控系统、压力结果分析工具。
  1)虚拟用户产生器通过录制客户端和后台服务器之间的通讯包,分析其中的协议,自动产生脚本。用户在自动产生的脚本的基础上进行修改,从而快速开发出一个逻辑功能和客户端软件完全一样的压力脚本程序。录制的技术主要是通过Proxy的方式来实现的。
  Vugen根据对捕获的数据的分析,将其还原成对应协议的API组成的脚本。由于Proxy源程序的获得非常容易,Vugen捕获的数据包通常为TCP数据流,这样可以很容易的生成Socket层次的脚本。
  2)压力产生器用于根据脚本内容,产生实际的负载。在性能测试工具中,压力产生器主要是产生负载。
  3)用户代理是运行在负载机上的进程,该进程与产生负载压力的进程或线程协作,接受调度系统的命令,调度产生负载压力的进程或线程,因此,用户代理也可以被看作是压力产生器的组成部分。
  4)压力调度和监控系统是性能测试工具中直接与用户交互的主要内容。压力调度工具可以根据用户的场景要求,设置各种不同脚本的虚拟用户数量,设置同步点等,而监控系统则可以对各种数据库、应用服务器、服务器的主要性能计数器进行监控。不同的性能测试工具可以提供不同类型的服务器性能计数器监控的能力。是否具有强大的性能计数器监控能力通常也是衡量性能测试工具的功能是否完备的指标之一。
  5)压力结果分析工具可以用来辅助进行测试结果的分析。性能测试工具附带的分析工具一般都能将监控系统获取的性能计数器值生成曲线图、折线图等图表,还能根据用户的需求建立不同曲线之间的叠加、关联操作,从而提供从各方面揭示压力测试结果的能力。
  2.3 性能测试工具的选择
  在进行性能测试时,决定使用哪一种性能测试工具也不是一个很容易的问题。对于商业化的工具来说,稳定性好,适用性较广,但是学习培训成本较高,某些特殊的需求不能满足等。而对于自行创建需要的测试工具,由于其适应范围小,通常只能适用于部分的特定项目,从总体拥有成本上来说,具有较高的成本,其最大的问题是稳定性和可靠性。 (责任编辑:南粤论文中心)转贴于南粤论文中心: http://www.nylw.net(南粤论文中心__代写代发论文_毕业论文带写_广州职称论文代发_广州论文网)

顶一下
(0)
0%
踩一下
(0)
0%


版权声明:因本文均来自于网络,如果有版权方面侵犯,请及时联系本站删除.