随着Web2.0技术在B/S结构软件中的广泛应用,许多公司和政府机构都对外提供了一些基于Web的互联网服务软件。但是,通常在设计和开发这类Web应用软件的时候很难模拟出大量网络用户同时访问此系统的实际情况,因此,当web应用软件遭遇到网络用户并发访问时,容易发生应用服务器和数据库服务器的响应时间变慢,甚至有可能出现服务器宕机。为了避免这种情况的发生,在系统上线运行前,需要一种能够真实模拟大量用户访问Web系统的性能测试工具进行压力测试,测试动态网页(包括ASP、PHP、JSP等)的响应时间,为服务器的性能优化和调整提供数据依据。使用开源软件最明显的优势是成本。各种Linux发行版比如Ubuntu不仅免费下载,而且易于安装、使用和更新,也不存在许可证的问题。成本虽然是最大的优势,但是质量也是重要的因素,开源软件质量可靠、弹性大、适应性也更强。例如电信和金融部门大规模采用Linux和其它开源解决方案是由于它们的性价比远远超过了Unix和Windows。在性能测试领域除了常见的LoadRunner、silk-performance外还有众多的开源工具,笔者在此为大家介绍几款。ApacheJMeterDescription:ApacheJMeterisa100%pureJavadesktopapplicationdesignedtoloadtestfunctionalbehaviorandmeasureperformance.ItwasoriginallydesignedfortestingWebApplicationsbuthassinceexpandedtoothertestfunctions.ApacheJMetermaybeusedtotestperformancebothonstaticanddynamicresources(files,Servlets,Perlscripts,JavaObjects,DataBasesandQueries,FTPServersandmore).Itcanbeusedtosimulateaheavyloadonaserver,networkorobjecttotestitsstrengthortoanalyzeoverallperformanceunderdifferentloadtypes.Youcanuseittomakeagraphicalanalysisofperformanceortotestyourserver/script/objectbehaviorunderheavyconcurrentload.Requirement:Solaris,Linux,Windows(98,NT,2000).JDK1.4(orhigher).ApacheJMeter是一个专门为运行和服务器装载测试而设计的、100%的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。GrinderDescription:TheGrinderisaJavaload-testingframeworkmakingiteasytoorchestratetheactivitiesofatestscriptinmanyprocessesacrossmanymachines,usingagraphicalconsoleapplication.Requirement:OSIndependentGrinder是一个Java测试框架,被广泛的应用在开元Java性能测试产品中,根据项目网站的说法,Grinder的主要目标用户是“理解他们所测代码的人——Grinder不仅仅是带有一组相关响应时间的‘黑盒’测试。由于测试过程可以进行编码——而不是简单地脚本化,所以程序员能测试应用中内部的各个层次,而不仅仅是通过用户界面测试响应时间。HammeroraDescription:HammeroraisaloadgenerationtoolfortheOracleDatabaseandWebApplications.Hammeroraincludespre-builtschemacreationandloadtestsbasedontheindustrystandardTPC-CandTPC-HbenchmarkstodeployagainsttheOracledatabasewithmultipleusers.HammeroraalsoconvertsandreplaysOracletracefilesandenablesWeb-tiertestingtobuildbespokeloadtestsforyourentireOracleapplicationenvironment.Requirement:PlatformIndependent(BinariesforLinuxandWindows)HammerOra工具是基于TCL(ToolCommandLanguage)语言的数据库性能测试工具。首先HammerOra是一款负载测试工具;其次HammerOra目前支持Oracle,MySQL和HTTP应用(web应用);然后HammerOra是开源的,框架有点类似于商业工具LoadRunner;因为HammerOra是基于Tcl语言的,所以天生就是可移植的,可以运行于Windows平台和Linux平台。HammerOra内嵌了两套标准测试脚本tpc-candtpc-h,当然你也可以自己开发和扩充测试脚本,开发语言是TclOpenSTADescription:AdistributedsoftwaretestingarchitecturebasedonCORBA.UsingOpenSTA(OpenSystemTestingArchitecture)ausercangeneraterealisticheavyloadssimulatingtheactivityofhundredstothousandsofvirtualusers.OpenSTAgraphsbothvirtualuserresponsetimesandresourceutilizationinformationfromallWebServers,ApplicationServers,DatabaseServersandOperatingPlatformsundertest,sothatpreciseperformancemeasurementscanbegatheredduringloadtestsandanalysisonthesemeasurementscanbeperformed.Requirement:Windows2000,NT4andXPOpenSTA是一个免费的、开放源代码的web性能测试工具,能录制功能非常强大的脚本过程,执行性能测试。例如虚拟多个不同的用户同时登陆被测试网站。其还能对录制的测试脚本进行,按指定的语法进行编辑。在录制完测试脚本后,可以对测试脚本进行编辑,以便进行特定的性能指标分析。其较为丰富的图形化测试结果大大提高了测试报告的可阅读性。OpenSTA基于CORBA的结构体系,它通过虚拟一个proxy,使用其专用的脚本控制语言,记录通过proxy的一切HTTP/Straffic。通过分析OpenSTA的性能指标收集器收集的各项性能指标,以及HTTP数据,对系统的性能进行分析。