1第2章LoadRunner综述........................................................................................................12.1LoadRunner简介.........................................................................................................12.2LoadRunner工具组成.................................................................................................42.3性能测试原理..............................................................................................................52.4自动化测试工具和性能测试工具的区别..................................................................62.5协议分析......................................................................................................................72.5.1HTTP详细介绍......................................................................................................72.5.2HTTP报文结构......................................................................................................92.5.3HTTP请求............................................................................................................102.5.4HTTP应答............................................................................................................122.5.5HTTP捕获............................................................................................................132.5.6HTTP回放............................................................................................................152.6安装............................................................................................................................162.6.1在Windows下安装LoadRunner.......................................................................182.6.2安装LoadGenerator...........................................................................................192.6.3附加组件.............................................................................................................242.6.4LoadRunnerLicense.............................................................................................242.6.5测试环境的安装.................................................................................................262.7LoadRunner性能测试操作流程预览.......................................................................28小结.....................................................................................................................................301第2章LoadRunner综述第1章介绍了性能测试的一些相关概念,本章将重点介绍性能测试工具LoadRunner的相关信息。2.1LoadRunner简介LoadRunner是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间、优化性能和加速应用系统的发布。目前企业的网络应用环境都必须支持大量用户,网络体系架构中包含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和越来越复杂的应用环境使公司时刻担心会发生用户响应速度过慢、系统崩溃等问题。这些都不可避免地导致公司收益的损失。MercuryInteractive的LoadRunner能让企业保护自己的收入来源,无须购置额外的硬件而最大限度地利用现有的IT资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量、可靠性和可扩展性都有良好的评价。LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实时性能监测,来帮助你更快地查找和发现问题。此外,LoadRunner能支持广泛的协议和技术,为你的具体环境提供特殊的解决方案。1.轻松创建虚拟用户使用LoadRunner的VirtualUserGenerator,你能很简便地创建系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预订),然后将其转化为测试脚本。利用虚拟用户,你可以在Windows、UNIX或Linux机器上同时产生成千上万个访问用户。所以LoadRunner能极大地减少负载测试所需的硬件和人力资源。另外,LoadRunner的TurboLoad专利技术能提供很高的适应性。TurboLoad使你可以产生每天几十万名在线用户和数以百万点击数的负载。用VirtualUserGenerator建立测试脚本后,你可以对其进行参数化操作,这一操作能让你利用几套不同的实际发生数据来测试你的应用程序,从而反映出系统的负载能力。以一个2订单输入过程为例,参数化操作可将记录中的固定数据(如订单号和客户名称)用可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。LoadRunner通过它的DataWizard来自动实现其测试数据的参数化。DataWizard直接连于数据库服务器,从中你可以获取所需的数据(如定单号和用户名)并直接将其输入到测试脚本。这样避免了人工处理数据,节省了大量的时间。为了进一步确定你的虚拟用户能够模拟真实用户,你可以利用LoadRunner控制某些行为特性。例如,只需要点击一下鼠标,你就能轻松控制交易的数量、交易频率、用户的思考时间和连接速度等。2.创建真实的负载虚拟用户建立之后,你需要设定负载方案、业务流程组合和虚拟用户数量。用LoadRunner的Controller,你能很快组织起多用户的测试方案。Controller的Rendezvous功能提供一个互动的环境,你既能建立起持续且循环的负载,又能管理和驱动负载测试方案。同时,你也可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,你就能将测试过程自动化。同样还可以用Controller来限定你的负载方案,在这个方案中所有的用户同时执行一个动作(如登录到一个库存应用程序)来模拟峰值负载的情况。另外,你还能监测系统架构中各个组件(包括服务器、数据库、网络设备等)的性能来帮助客户决定系统的配置。LoadRunner通过它的AutoLoad技术,为你提供更多的测试灵活性。使用AutoLoad可以根据目前的用户人数事先设定测试目标,优化测试流程。例如,你的目标可以是应用系统承受的每秒点击数或每秒的交易量。3.定位性能问题LoadRunner内含集成的实时监测器,在负载测试过程的任何时候,你都可以观察到应用系统的运行性能。这些性能监测器为你实时显示交易性能数据(如响应时间)和其他系统组件(包括ApplicationServer、WebServer、网络设备和数据库等)的实时性能。这样,你就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。再者,利用LoadRunner的ContentCheckTM,你可以判断负载下的应用程序功能正常与否。ContentCheck在VirtualUsers运行时,将会检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助你从终端用户的角度观察程序性能状况。4.分析结果以精确定位问题所在一旦测试完毕后,LoadRunner收集汇总所有的测试数据,并为你提供高级的分析和报3告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner的Web交易细节监测器,你可以了解到将所有的图像、框架和文本下载到每一网页上所需的时间。例如,这个交易细节分析机制能够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,你可以将网络延时进行分解,以判断DNS解析时间、连接服务器或SSL认证所花费的时间。通过使用LoadRunner的分析工具,你能很快地查找到出错的位置和原因并做出相应的调整。5.重复测试保证系统发布的高性能负载测试是一个重复的过程。每次处理完一个出错情况,你都需要对应用程序在相同的方案下,再进行一次负载测试,以此检验你所做的修正是否改善了运行性能。6.EnterpriseJavaBeans的测试LoadRunner完全支持EJB的负载测试。这些基于Java的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,你可以在应用程序开发的早期就确认并解决可能产生的问题。利用LoadRunner,你可以很方便地了解系统的性能。它的Controller允许你重复执行与错误修改前相同的测试方案。它基于HTML的报告为你提供了一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些报告是基于HTML的文本,你可以将其公布在