软件性能与测试-第3部分_第1页
软件性能与测试-第3部分_第2页
软件性能与测试-第3部分_第3页
软件性能与测试-第3部分_第4页
软件性能与测试-第3部分_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件性能与性能测试第2部 陈本系列对软件性能与性能测试这个进行了较为全面的介绍和分析。分为三个部分:在第1部分,讲解了软件性能的基本知识,介绍了常用的软件性能指标,在分析2部分,首先给出了性能测试的基础知识,然后侧重于从性能工程的角度提出开展性能测试工作的流程,和进行性能测试工作的策略,以及如何分析性能测试数据;在第3在本的开始我们就明确地说明本是站在开发者的角度来讲解软件虽然存在许多对代码进试、分析和监视的工具—例如odunnr、S、tr、rilr、lIiroope等,但是很少能够集成为一个大型的(UI和方面专的发工或也需很大投。EclipseTPTP(EclipseTestandPerformanceToolsPlatform)是一种软件体系结构以及几个扩展了Eclipse平台的组件,它在Eclipse平台上提供了测试、性能和监视工具。一些JavaC和C++开发使用TPTP为其他开发构建独特的工具,还有一些开发将TPTP提供的工具Eclipse精力来学习和掌握许多不同的用户界面(UI、语言、和诊断技术。简单地说,TPTP在本质上是一个工具,用来构建对软件质量控制进行自动化的工具。TPTP的当前版本包括工具和三种衍生工具:TPTP为UI开发、数据收集、基于规则的数据查询以及应用程序的控制TPTPTesting这个项目是在TPTP之上构建的,提供了对应用程序进行各种自动化测试所需的其他服务。当前版本支持JUnit自动测试、一种指向和点击编程系统(用于进行手工测试并记录结果)和一个用于测试Web应用程序的自动化系统,包括一个可以记录和回放Web浏览会话并对结果进行验证的记录器。EclipseV4.1还包括一个图形用户界面(GUI)记录器的早期版本,它可以记录和回放基于SWT的界面中的鼠标和键盘事件。TPTPMonitoringTPTPTracingandProfiling这个项目也扩展了TPTP,用来收集和分析正在运行的应用程序中的资源如,可以手工地实施收集并检查剩余的对象池,从而寻找和修复内存“泄另外,TPTP包括一个称为AgentController的守护进程。AgentController是Eclipse工作台和被测试的应用程序之间的“联络人”。它代表Eclipse启动本地或Java应用程序并转发应用程序度量(包括应用程序日志文件)给EclipseTPTPTPTP需要J2SEV1.4SDK和V1.4J2RE或以上版本,在本的例子中,我们使用的是J2SEV1.5SDK和V1.5J2RE、EclipseV3.1(安装于目C:\eclipse,新版本的在EclipseV3.2版本下),在安装完eclipse,还要EMFSDKV2.11XSDSDKV2.1(具体的安装过程略,可参见相关的Eclipse下安装TPTP有两种方式,手动方式和EclipseUpdateManager址,下载一个TPTPinonepcae,对于初学习者来说,可以减少很多的麻烦。了相应的tptpuntime..win32.win32x86-TPTP-431.zi(TP4.3.1括了Ecipse32版)文件后,解压到相应的即可,的解压是C:\eclse。启动Eclipse。在Eclipse上应该会看到一个新按钮,如图1所示。这是TPTPProfile按钮。TPTP已经安装了,您可以继续学习本了。图安装UMLV2.1Metamodel如果希望以UML2图的形式描绘应用程序的行为,那么UML2插件。如果正在使用EclipseV3.2,那么V2.1M5ofUML2并在包含Eclipse的中释放它的存档文件(将.zip包中features和plugins下的内容解压到Eclipse对应即可)。安装 nrAgentController是TPTP的一个重要组件,它使Eclipse能够启动应的AgentController运行时。接下来,在包含Eclipse的中创建一个称为tptpd的,并将AgentController存档文件释放到这个中。具体1)AgentController(4.1.0|),在Windows运行环境下,如果只是想运行AgentController。那么只要Runtime即可,如果想要进行功能扩展,则要还要SDK。文件名是tptpdc.win_ia32-TPTP-4.1.0.zip的那个文件(未SDK)。2)AgentController,只要将.zip解压到一个即可,这里我们的安装是:c:\raserver。Agent将c:\raserver\bin加到系统的PATH环境变量生成配置文件,通过运 c:\raserver\bin\SetConfig.bat,参见 1图3)这时就可以运行AgentController了。可以以Application或者WindowsService的方式运行以Application方式运在命令行模式下:运 Ctrl+CDOSWindowsService方式运运行:manageserviceadd"Agent "TPTP环境下运行Java程“构建”(制造)(销售)个Java对象代表,这个对象包含几个其他对象,这些对象各自代表玩具的一个importjava.io.BufferedReader;importjava.io.IOException;publicclassSpaceShipToyTobuildaspaceship,youneedacapsule,athreestages,andtwomonkeysfromaBarrelofpublicCapsulecapsule=newCapsule();publicBoosterbooster=newBooster();publicStage[]stage=newStage[3];public{for(inti=0;i stage[i]=newStage();}privatevoid_killTime(int{for(inti=0;i<seconds;}staticfinalintMINUTE=staticfinalintCAPSULE=2*MINUTE;staticfinalintBOOSTER=5*MINUTE;staticfinalintSTAGE=3*MINUTE;staticfinalintMONKEY=10*MINUTE;classCapsulepublicMonkeychimp1=newMonkey(),chimp2=newpublicCapsule()System.out.println("Startbuildingthe}}class{ublicBooster()System.out.println("Start}}class{public{}}class{licvoidstart()System.out.println("Startthemonkey}publicvoid{}publicvoid }}publicstaticvoidmain(String[]args)throws{finalintNUMBERTOYS=BufferedReaderin=BufferedReader(newInputStreamReader(System.in));SpaceShipToy[]toys=newSpaceShipToy[NUMBERTOYS];Stringinput=in.readLine().trim();System.out.println("Toyfactoryisupandrunning...");for(inti=0;i<NUMBERTOYS;i++)toys[i]=null;while{if(input==null||input.length()!=||{System.err.println("Unknownoption.Try0-9,q");input=in.readLine().trim();}if(number==9){newSpaceShipToy();}elseif(toys[number]!={System.out.println("Shiptoy#"+number);toys[number]=null;}elseSystem.out.println("Buildingtoy#"+number);=new}}input=}}}为了使用这个应用程序,按0到8数字键来构建玩具。如果再次按同一个键,构建的玩具就被“发射”,相关联的对象被取消,从而可以被收集。因此,在任何时候在内存中最多可以有9个玩具(如果构建了所有9个玩具,而且都没有发射)。按9键会创建一个未被的对象,这模拟了内存泄漏。按q(小写)可以退出应用程序。3.TPTP对本程序程序进行分析,在Eclipse中,进入工作台并通过点击File>New>Project创建一个新的Java项目。从选项列表中选择JavaProject,然后点击Next。在下一个窗口中,输入ToyMaker作为ProjectName,然后点击Finish。标题为“ToyMaker”的新项目应该会出现在PackageExplorer面板中。参见图图在这个项目中,创建一个在example包,点击FileNew并在example包中创建一个称为SpaceShipToy的Java类。点击File>NewClass。在弹出的窗口中,在Package域中输入example并在Name域中输入SpaceShipToy。窗口中的其他设置保持不变。点击Finish。现将上面的代码到Eclipse类编辑器中,一定要留下package会使Eclipse自动地重新编译类的新版本。参见图图启动AgentController.进入 运行该程序,点击Run>Run...,双击JavaApplication,选择SpaceShipToy,然后点击Run。要与这个应用程序进行交互,点击Windows>ShowView...,然后选择Console。输入1(数字一)并按Return。屏幕应该与图4图点击TPTPProfile(点击),然后选择Profile...展开JavaApplication以显示SpaceShipToy。注意,Profile窗口与点击Run时出现的Run窗口相似,但是多了一个称为Profile的选项卡。参见图5图那么点击 Window> Open> ProfilingandLogging。当ProfilingandLogging出现时,展开Profiling视图的内容,然后选择以<monitoring>开头的行。在选择这一行时,出现一个控制台视图。输入0、1、2和9。屏幕应该与图6相似。点击MemoryStatistics视图,然后展开与example包相关联的行。这个视图应该与图7相似。这里有4个对象实例:“构建的”玩具,一未被的玩具。图图MemoryStatisticstalInstancesLiveInstances显示有多少个实例仍然被,还没有被收集器Cllct统计收集器已经收集了多少个类实例Tolizbytes)和vizbytes)分别显示所有实例使分别打开ExcutionStatistics和CoverageStatistics视图我们还可以用程序。另外,因为TPTP与Eclipse的其余部分很好地集成在一起,您会发使用UML2TPTP提供了另一个对了解正在运行的应用程序有帮助的特性:UML2序面的测试一直是很的事情,还好,现在有了TPTP,问题得到了解决。点击TPTPProfiling按钮中的小箭头。选择Profile...,选择SpaceShipToy,点击ProfilingProfilingMonitor视图中启动时,右击刚启动的进程并选择OpenWith...>UML2ThreadInteractions来打开UML2classInteractions视图。因为这个应用程序刚刚启动,所以这个图只显示了对main()的调用,如图8所示图切换到控制台视图并与应用程序进行交互,从而产生的方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论