ibleintherightpanel.SeeFigure6,wheretheIBMWebSpherePortal{2}stepisalsoexpandedtoshowthelikelysourceofmatchedcontent,namelytheresponsefromthepreviousrequest.
Figure6.Findingtheresponsereferencestring
ClickthelinkintheClassicSearchviewthatyouthinkhasthecontentfromtheproperresponse(inourcasethere'sonlyonelink),andtheappropriateresponsepagefromtheloginstepinthetestisopened,withthesearched-fortextselected.Ifthisisthecorrectsourceforthecontent,right-clicktheselectedtextandselectCreateReferenceonthemenuthatappears.Areferenceisauniquelyidentifiablepieceoftexttobereusedinanotherpartofatest.Referencescanbeusedasaparametertobetestedinconditional(if/then)executionofthetestscenarioaswellasbeingpassedintocustomcode.SeeFigure7.
Figure7.Creatingthenewreference
Nowthatareferenceforthetexthasbeencreated,youneedtogobacktotherequestthatyou'vebeenbuildingandsubstitutethenewlycreatedreferenceintherequest.SelecttheURLinthethirdstepofthetest(thetextthatyoujustsearchedon),right-click,andselectSubstituteFromonthemenuthatappears.Intheresultingmenuyou'llseealistofreferences,oneofwhichistheoneyoujustcreated.Selectitandthetextwillturnpurple,indicatingthatit'snowcorrelated.SeeFigure8.Ifyoueverwanttofindthereferencethatwasusedforthistext,reselectitandselectGoTo.Therewillbeamenuchoicethatshowsthereferencethatwassubstituted;selectingitwilljumpyoubacktotheappropriatepartoftheresponsefromthelogininthesecondstepofourscenario.
Figure8.Substitutingthereferenceintherequest
Inourexample,theURLthatwasneededfortherequestafterloginwaspartofastandardHTMLhrefandwasavailableasacompletetextstring.Thisisn'talwaysthecase.Sometimestherequestmustbepiecedtogetherfromseveralreferences,obtainedfromseveralpreviousresponses.Inthatcaseyoumustsearchforandcreatereferencesforeachtextfragmentandsubstitutetheminyourrequestinthecorrectplace.
Andsometimesyoumustprocessthereferencedatabeforeyoucansubstituteit.Thereferencetextcanhavecharacterentityencodings,whicharenecessarytodisplaycertaincharactersinHTML(
for>,and&for&,forexample)andwhichmustbedecodedtobeusedinarequest.Client-sidecodecanuseinformationintheresponsetoconstructsubsequentrequeststhataremorecomplexthansimpletextsubstitution.Thistypeofmodificationrequiresyoutoaddcustomcodetotheperformancetest,somethingI'llexplainhowtodoinafuturearticle.
使用IBMRationalPerformanceTesterv6.1来产生动态需求
对于测试Web应用的性能,您需要使您的测试记录有能够与这些应用软件高度动态交互的能力。这篇深入的文章向您展示了在IBMRationalPerformanceTester中如何从事数据池和数据关联的工作。
测试一个Web应用程序的性能不是简单的记录情节并回放它来模拟众多不同的使用者点击这个应用程序。许多现代Web应用程序和Web应用构架建立了能够动态建立的包含复杂URL的页;因此他们不能在一个测试场景中被静态的记录。这意味着您必须能够创建一个灵活的测试场景足以产生适应任何种类的客户/服务器需求的结合,不论服务器的响应具有怎样的复杂性和动态特性。在IBM(r)Rational(r)PerformanceTester6.1的帮助下,您能够通过使用数据池和数据关联来记录与高动态性Web应用程序之间的交互。这篇文章向您展示了如何通过PerformanceTester在导航Web应用时记录基本的测试场景
记录一个测试场景
PerformanceTester是建立在Eclipseframework基础上的,使用基本EclipseIDE去性能测试情景,测试的执行是基于执行Java代码的。当您安装了IBMRationalPerformanceTester6.1后,一个完整的Eclipse3.0也被安装好了。它同其它可能出现在您的测试机上的Eclipse的安装程序能够愉快的共存。当您第一次启动PerformanceTester时,您将看到在一个新的称为Test的透视图和几个新视图的一个标准的Eclipse显示,这里最重要的是TestNavigator视图,如图1中所示。
图1.PerformanceTester启动画面
你的测试的所有部件都包含在性能测试项目的环境中,你能够通过选择File>New>PerformanceTestProject来创建性能测试项目。这与一个Eclipse项目不同。如果这些测试组成部件不会不被包含在一个性能测试项目中,它们将无法被识别。
一旦创建一个性能测试项目,您就需要定义一个性能测试。您可以通过记录与您测试的服务器之间的交互或是创建一个空的测试并通过手工添加测试元素来构建它。如果您有一个有少量相关静态URL或是需要自定义请求码的简单的动态场景,完成后一个将更加有意义。这里,我将详细阐述执行一个记录的过程,这样您可以看清一个完整的测试是什么样子的。
在创建了一个性能测试项目后,PerformanceTester启动HTTP记录器去记录新的性能测试。您可以接受请求并且立即记录一个性能测试,或是通过选择File>New>RecordPerformanceTest稍后再执行。
关于浏览器和记录的一个注意
在Microsoft(r)Windows(r)的机器上,默认时,PerformanceTester使用InternetExplorer(IE)来做为记录的浏览器。它自动的配置IE的代理设置使得HTTP记录能够正确产生。如果您想要使用Mozilla或是Firefox浏览器,您必须告知PerformanceTester不要使用IE。通过菜单,选择Windows>Preferences>Test>HTTPProxyRecorder并将"Applicationtorecord"设置从InternetExplorer改为None。(在Linux操作系统中,默认为空,因此这一步在该平台上不需要做。)
接下来,您需要手动启动浏览器并且正确设置代理配置,这样它才能通过IBMRationalAgentController发送信息。您可以在产品帮助文件中找到关于配置一个基于Mozilla浏览器的详细说明并为任何浏览器进行改变。一旦浏览器被正确的配置了,您可以从PerformanceTester中启动记录。
要记录一个性能测试,只需要在您的初始URL中输入URL并与服务器进行必要的交互确定您的场景。一旦您完成了这些,关闭您工作的浏览器,这时PerformanceTester将知道您已经完成了您的记录,并将创建性能测试。
图2展示了浏览一个运行在IBM(r)WebSphere(r)Portal5.1上的站点的性能测试的例子:
图2:一个性能测试的例子
这个测试包含在项目里,正如您在TestNavigator视图中看到的一样。在性能测试中场景有单独的步骤,您可以在TestContents的区域中看到展开的测试元素。每个高级别的步骤都用返回页的名称(IBMWebSpherePortal,IBMWebSpherePortal{1}等等)来标注。如果您展开一个高级别的步骤,您将会看到这个步骤包所含网页的单独的HTTP请求,初始的一个是从客户端流出的URL,其余的是由客户端发起的用来完成建建请求页的图像和JavaScript(tm)程序语言的请求。
使用数据池
在记录性能测试期间,客户端发起的具体URL和请求参数也同时被记录。但是当您回放性能测试来模拟用户去产生装载时,您可能不希望使用相同的URL和请求参数来回放。例如,您可能需要将每个不同的登陆用户的用户名称和密码插入到系统日志中,或是一些用户特定的参数,例如会议标示服或
上一篇:VB_net+SQL房地产评估系统(论文和程序)
下一篇:高级氧化技术在水处理中的应用(重庆大学城市建设与环境工程学院《高等水化学》课程论文)