第1页共24页LoadRunner11实例性能测试1.LoadRunner8.1基础...........................................21.1术语....................................................21.2组件与测试流程..........................................22.生成脚本.....................................................42.1应用程序要求............................................42.1录制脚本................................................52.2运行脚本................................................72.3脚本优化................................................82.3.1关联...............................................82.3.2参数化............................................103.运行负载测试................................................123.1生成负载...............................................123.2运行负载测试...........................................133.3运行视图概述...........................................144.分析结果....................................................164.1Analysis窗口概述......................................164.2分析窗口数据...........................................174.2.1查看事务平均响应时间..............................184.2.2研究Vuser的行为..................................195.一些体会....................................................23第2页共24页1.LoadRunner11基础1.1术语➤场景:场景是一种文件,用于根据性能要求定义在每一个测试会话运行期间发生的事件。➤Vuser:在场景中,LoadRunner用虚拟用户或Vuser代替实际用户。Vuser模拟实际用户的操作来使用应用程序。一个场景可以包含几十、几百甚至几千个Vuser。➤Vuser脚本:Vuser脚本用于描述Vuser在场景中执行的操作。➤事务:要度量服务器的性能,需要定义事务。事务表示要度量的最终用户业务流程。1.2组件与测试流程LoadRunner包含下列组件:➤虚拟用户生成器:用于捕获最终用户业务流程和创建自动性能测试脚本(也称为虚拟用户脚本)。➤Controller:用于组织、驱动、管理和监控负载测试。➤负载生成器:用于通过运行虚拟用户生成负载。➤Analysis:有助于查看、分析和比较性能结果。➤Launcher:为访问所有LoadRunner组件的统一界面。负载测试通常由五个阶段组成:计划、脚本创建、场景定义、场景执行和结果分析。第3页共24页➤计划负载测试:定义性能测试要求,例如并发用户的数量、典型业务流程和所需响应时间。➤创建Vuser脚本:将最终用户活动捕获到自动脚本中。➤定义场景:使用LoadRunnerController设置负载测试环境。➤运行场景:通过LoadRunnerController驱动、管理和监控负载测试。➤分析结果:使用LoadRunnerAnalysis创建图和报告并评估性能。第4页共24页2.生成脚本2.1应用程序要求应用程序MercuryLoadRunner8.1自带的基于Web的旅行代理系统MercuryTours。用户可以连接到Web服务器、搜索航班、预订航班并查看航班路线。1.确保示例Web服务器正在运行。安装和重新启动LoadRunner后,Web服务器将自动启动。如果该服务器没有运行,请依次选择“开始”“程序”“MercuryLoadRunner”“示例”“Web”启动Web服务器”。2.打开MercuryTours应用程序。选择“开始”“程序”“MercuryLoadRunner”“示例”“Web”“MercuryWebTours应用程序”。将打开浏览器,其中显示MercuryTours的起始页。3.登录到MercuryTours。成员名:jojo,密码:bean假设您是负责验证应用程序是否满足业务需求的性能工程师。项目经理向您提出了一些条件:1MercuryTours必须在不超过90秒的响应时间内,处理10起并发航班预订业务。2MercuryTours必须在不超过120秒的响应时间内,处理10起并发的旅行代理要求的航线检查业务。3MercuryTours必须在不超过10秒的响应时间内,处理10起代理要求的登录和注销系统任务。、第5页共24页本教程将完成建立负载测试的整个流程,以验证应用程序是否满足每项业务要求,从而决定是否可以发行该应用程序。计划了负载测试之后,下面开始创建脚本。2.1录制脚本1.启动LoadRunner,打开VuGen在Launcher窗口中,单击“LoadTesting”选项卡,单击“Create/EditScripts”。将打开VuGen的开始页。2.单击“NewVuserScript”,在弹出的脚本类型选项卡中,选择“web(http/html)”,确定后跳转到IntroductiontoScriptCreation向导窗口(如下图)。第6页共24页3.点击左边Recording选项下的RecordAppliction,在跳转出的界面中选择按钮,弹出开始录制窗口,在“URL”地址框中,键入。在“RecordintoAction”框中,选择“Action”。单击“OK”。自动打开浏览器和浮动工具栏:其中,点击红色按钮开始录制。4.登陆网站,输入用户名jojo,密码bean。登陆后点击左边的Fights,打开FindFlight页面,将ArrivalCity改为LosAngeles,左下的Seating第7页共24页Preference选择Aisle(过道),点击Continue,接下来的页面继续Continue,在接下来的PaymentDentails页面,输入CreditCard:12345678,ExpDate:11/27,单击Continue继续,显示预定完成页面。4.单击左边的“Itinerary”查看路线。5.点击“Siginoff”退出系统。点击悬浮条上的停止按钮。以上即完成了一次登录、预定航班、检查路线、注销的事物流程。选择菜单栏View中的TreeView和ScriptView都可以查看录制好的脚本。2.2运行脚本录制好脚本之后,在运行之前先对运行做一些设置。选择侧边栏中第二个选项Replay中的VerifyReplay,打开运行脚本向导页面。可以在Openruntime-settings中设置运行时的一些行为。图2.1第8页共24页运行时设置可以模拟各种用户活动和行为。它们包括(列举部分):➤RunLogic:用户重复一组操作的次数,这里改为2。➤Pacing:重复操作前等待的时间➤Log:希望在测试期间收集的信息级别➤ThinkTime:用户在各步骤之间停下来进行思考的时间,通过设置随即思考时间可以模拟不同熟练操作程度的用户。这里按照上图设置。➤SpeedSimulation:使用不同网络连接(例如,调制解调器、DSL和电缆)的用户➤BrowserEmulation:模拟用不同浏览器查看其应用程序性能的用户。配置好之后,可以点击StartReplay开始回放。回放后生成回放日志,可以点击上面菜单View中的OutPutWindow查看。2.3脚本优化2.3.1关联创建脚本后,可以通过VuGen运行该脚本来对其进行验证。有时候,尽管操作的录制已成功,但相同操作的播放却会失败。因为许多应用程序使用动态值,每次使用该应用程序时这些值都会更改。例如,某些服务器为每个新会话分配唯一的会话ID。尝试回放录制的会话时,应用程序将创建与已录制的会话ID不同的新会话ID。LoadRunner通过关联解决此问题。关联将把会更改的值(在本例中为会话ID)保存为参数。运行仿真时,Vuser并不是使用录制的值,而是使用服务器为其分配的新会话ID。要演示常见的播放失败,需要修改MercuryTours应用程序中的设置。第9页共24页此设置将通知MercuryToursWeb服务器不允许重复会话ID。1打开“MercuryTours”。选择“开始”“程序”“MercuryLoadRunner”“示例”“Web”“MercuryWebTours应用程序”。将打开浏览器,其中显示MercuryTours的起始页。2更改服务器选项。在MercuryWebTours起始页上单击“administration”链接。选择第3个复选框,其标题为:SetLOGINform'sactiontagtoanerrorpage(将LOGIN表单的操作标记设置为错误页)。滚动到该页的底部并单击“Updata”。滚动到该页的底部并单击“ReturntotheMercuryToursHomepage”链接。此设置将通知服务器不允许重复会话ID。3关闭浏览器。此时,运行刚刚录制的脚本,会出现错误(如下图),点击Showandresolvedynamicservervalues,会打开一个新的页面,下面会显示可以关联的选项,选中后右键选择“correlation”,就完成了第10页共24页关联,关联成功会有一个绿色的勾。2.3.2参数化在模拟中,跟踪一位预订航班并选择Aisle座位的用户。但是,在实际生活中,不同的用户会有不同的喜好。因此,要改进测试,需要检查当用户选择不同座位首选项(过道、窗口或无)时,预订是否可以正常工作。要达到此目的,需要参数化脚本。用参数代替录制值Aisle。参数值放在一个参数文件中,运行脚本时,Vuser将从参数文件中取值(aisle、window或none),从而模拟真实的旅行代理环境。1.找到要更改数据的部分。选择“View”“treeview”进入树视图在测试树中,双击,将打开如下对话框。右列中的ABC图标表示参数为常量。2.创建参数。单击第七行Aisle旁边的ABC图标。将打开“选择或第11页共24页创建参数”对话框。其中“Parameter”填为seat,确定。VuGen将使用参数图标替换ABC图标。3.为参数制定一些示例值。单击{seat}旁边的参数图标。从弹出菜单中选择“参数属性”。将打开“参数属性”对话框。添加两个Row:Window和None注意,值不区分大小写,确定。这样就完成了参数化。运行用户脚本,会发现迭代器第一次选择了Aisle,第二次选择了window。第12页共24页3.运行负载测试3.1生成负载1.添加负载生成器。打开Controller运行视图。选择位于屏幕底部的“Design”选项卡(如上图),将虚拟用户的数量改为8(可以自定义)。2.单击“Generator”按钮,将打开“负载生成器”对话框,显示localhost负载生成器计算机的详细