《loadrunner初学测试范例.docx》由会员分享,可在线阅读,更多相关《loadrunner初学测试范例.docx(25页珍藏版)》请在三一办公上搜索。
1、LoadRunner8.1 实例测试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.1 Analysis 窗口概述164.2分析窗口数据174.2.1查看事务平均响应时间 184.2.2 研究Vuser的行为195. 一些体会231.LoadRunner8.1 基础1.1术语A场景:场景是一种文件,用于根据性能要求定义在每一个测试会话 运行期间
2、发生的事件。AVuser:在场景中,LoadRunner用虚拟用户或Vuser代替实际用户。 Vuser模拟实际用户的操作来使用应用程序。一个场景可以包含几十、几 百甚至几千个Vuser。AVuser脚本:Vuser脚本用于描述Vuser在场景中执行的操作。事务:要度量服务器的性能,需要定义事务。事务表示要度量的最 终用户业务流程。1.2组件与测试流程LoadRunner包含下列组件:A虚拟用户生成器:用于捕获最终用户业务流程和创建自动性能测试 脚本(也称为虚拟用户脚本)。AController :用于组织、驱动、管理和监控负载测试。A负载生成器:用于通过运行虚拟用户生成负载。A Analys
3、is :有助于查看、分析和比较性能结果。ALauncher:为访问所有LoadRunner组件的统一界面。负载测试通常由五个阶段组成:计划、脚本创建、场景定义、场景执 行和结果分析。A计划负载测试:定义性能测试要求,例如并发用户的数量、典型业 务流程和所需响应时间。A创建Vuser脚本:将最终用户活动捕获到自动脚本中。A定义场景:使用LoadRunner Controller设置负载测试环境。A运行场景:通过LoadRunner Controller驱动、管理和监控负载测 试。A分析结果:使用LoadRunner Analysis创建图和报告并评估性能。2. 生成脚本2.1应用程序要求应用程序
4、Mercury LoadRunner8.1自带的基于Web的旅行代理系统 Mercury Tours。用户可以连接到Web服务器、搜索航班、预订航班并查 看航班路线。1. 确保示例Web服务器正在运行。安装和重新启动LoadRunner后, Web服务器将自动启动。如果该服务器没有运行,请依次选择“开始” “程 序 “Mercury LoadRunner” 示例 “Web” 启动 Web 服务器。2. 打开Mercury Tours应用程序。选择“开始” “程序” “Mercury LoadRunner” 示例” “Web” “Mercury Web Tours 应用程序”。 将打开浏览器,其
5、中显示Mercury Tours的起始页。3. 登录到 Mercury Tours。成员名:jojo,密码:bean假设您是负责验证应用程序是否满足业务需求的性能工程师。项目经 理向您提出了一些条件:1 Mercury Tours必须在不超过90秒的响应时间内,处理10起并 发航班预订业务。2 Mercury Tours必须在不超过120秒的响应时间内,处理10起并 发的旅行代理要求的航线检查业务。3 Mercury Tours必须在不超过10秒的响应时间内,处理10起代 理要求的登录和注销系统任务。、本教程将完成建立负载测试的整个流程,以验证应用程序是否满足每 项业务要求,从而决定是否可以发
6、行该应用程序。计划了负载测试之后,下面开始创建脚本。2.1录制脚本1. 启动 LoadRunner,打开 VuGen 在 Launcher 窗口中,单击“ Load Testing” 选项卡,单击 “ Create/Edit Scripts”。将打开 VuGen 的开始 页。2. 单击“ New Vuser Script ”,在弹出的脚本类型选项卡中,选择“web(http/html) ”,确定后跳转到 Introduction to Script Creation 向导窗口(如下图)。3. 点击左边Recording选项下的Record Appliction,在跳转出的界面 中选择EIISS
7、正藤史亟二I按钮,弹出开始录制窗口,在“URL地址框中, 键入 http:/localhost:1080/MercuryWebTours/。在“Record into Action” 框中,选择“Action”。单击“OK”。自动打开浏览器和浮动工具栏:其中,点击红色按钮开始录制。4. 登陆网站,输入用户名jojo,密码bean。登陆后点击左边的Fights, 打开 Find Flight 页面,将 Arrival City 改为 Los Angeles,左下的 Seating Preference选择Aisle (过道),点击Continue,接下来的页面继续 Continue,在接下来的P
8、ayment Dentails页面,输入Credit Card: 12345678, Exp Date: 11/27,单击Continue继续,显示预定完成页面。4. 单击左边的“Itinerary”查看路线。5. 点击“Sigin off”退出系统。点击悬浮条上的停止按钮。以上即完成了一次登录、预定航班、检查路线、注销的事物流程。选 择菜单栏View中的Tree View和Script View都可以查看录制好的脚本。2.2运行脚本录制好脚本之后,在运行之前先对运行做一些设置。选择侧边栏中第二个选项Replay中的Verify Replay,打开运行脚本向导页面。可以在Open runtim
9、e-settings中设置运行时的一些行为。运行时设置可以模拟各种用户活动和行为。它们包括(列举部分):A Run Logic:用户重复一组操作的次数,这里改为2。A Pacing:重复操作前等待的时间A Log :希望在测试期间收集的信息级别A Think Time:用户在各步骤之间停下来进行思考的时间,通过设置 随即思考时间可以模拟不同熟练操作程度的用户。这里按照上图设置。A Speed Simulation:使用不同网络连接(例如,调制解调器、DSL 和电缆)的用户A Browser Emulation:模拟用不同浏览器查看其应用程序性能的用 户。配置好之后,可以点击Start Repl
10、ay开始回放。回放后生成回放日志, 可以点击上面菜单View中的OutPut Window查看。2.3脚本优化2.3.1关联创建脚本后,可以通过VuGen运行该脚本来对其进行验证。有时候, 尽管操作的录制已成功,但相同操作的播放却会失败。因为许多应用程序 使用动态值,每次使用该应用程序时这些值都会更改。例如,某些服务器 为每个新会话分配唯一的会话ID。尝试回放录制的会话时,应用程序将创 建与已录制的会话ID不同的新会话ID。LoadRunner通过关联解决此问 题。关联将把会更改的值(在本例中为会话ID)保存为参数。运行仿真 时,Vuser并不是使用录制的值,而是使用服务器为其分配的新会话ID
11、。要演示常见的播放失败,需要修改Mercury Tours应用程序中的设置。此设置将通知Mercury Tours Web服务器不允许重复会话ID。1 打开“Mercury Tours ”。选择“开始” 程序” “Mercury LoadRunner” 示例 “Web” “Mercury Web Tours 应用程序。 将打开浏览器,其中显示Mercury Tours的起始页。2更改服务器选项。在Mercury Web Tours起始页上单击 “administration”链接。选择第3个复选框,其标题为:Set LOGIN forms action tag to anerror page
12、(将LOGIN表单的操作标记设置为错误页)。 滚动到该页的底部并单击“Updata”。滚动到该页的底部并单击“Return to the Mercury Tours Homepage”链接。此设置将通知服务器不允许重复 会话 ID。3关闭浏览器。此时,运行刚刚录制的脚本,会出现错误(如下图), 点击 Show and resolve dynamic server values,会打开一个新的页面, 下面会显示可以关联的选项,选中后右键选择“ correlation,就完成了Last Replay SummaryResult Directory: resultlReplay Status: Fa
13、iledErrors:Occured At Code Description臣由口口匚-WTA8T R.equested image not found MsgId: MEF: R.-279S7Dynamic Server Values (Correlations):VuGen detected one or more dynamic values in your script which may have caused your script to f “tree view”进入树视图在测试树中,双击,也Subm it Data: res ervat i ore. pl,将打开如下对话框。右
14、列中的ABC图标表示参数为常量。创建参数对话框。其中“Parameter填为seat,确定。VuGen将使用参 数图标替换ABC图标。3.为参数制定一些示例值。单击seat旁边的参数图标。从弹出菜 单中选择“参数属性”。将打开“参数属性”对话框。添加两个Row: Window 和None注意,值不区分大小写,确定。这样就完成了参数化。运行用户脚本,会发现迭代器第一次选择了 Aisle,第二次选择了 windowo3. 运行负载测试3.1生成负载1.添加负载生成器。打开Controller运行视图。选择位于屏幕底部的“Design”选项卡(如上图),将虚拟用户的数量改为8(可以自定义)。2.单击
15、“Generator”按钮,将打开“负载生成器”对话框,显示 localhost负载生成器计算机的详细信息(如下图)。此处使用本地计算机 作为负载生成器(默认情况下包含在场景中)。localhost负载生成器的 状态为关闭。这表示Controller未连接到负载生成器,可以点击connect 变为准备状态,完成后点击Close。2.点击design面板上的宫its如山也.,打开如下窗口:其中可以设置 同时加载负载还是每隔一段时间加载一定负载,按如下图设定好(每隔30 秒加载两个虚拟用户)。3.2运行负载测试1. 打开Controller运行视图。选择位于屏幕底部的“Run”选项卡。2. 启动场
16、景。单击-卸沧何口按钮开始运行测试。如果第一次运行,Controller将启动场景。结果文件自动保存到负 载生成器的临时日录中。如果是重复此测试,将提示覆盖现有结果文件。3.3运行视图概述打开 LoadRunner,点击 Run LoadTests,打开 Controller,窗口 中的“运 行”选项卡是用来管理和监控测试的控制中心。“运行”视图包含五个主要 部分:(下图显示一个汉化的界面,没有汉化的界面分布和功能是一样的)。iEijVusa己用时间己用时M.Mercury LaadRunncr 抒UM - SccnAriol 居行IE-TJ面纣I用户定义的数据点.陪误场计信.自有诸瑚V5园5
17、DODCM用汾秒J审努响应时间-整F景胡盹间时:分秒)叫皿M任海-最后一个6秒R甲务囹原色|比例|炀是大佰S “查看图”)。A图例:位于底部窗格中,使您可以查看选定图中的数据。4. 分析结果4.1 Analysis 窗口概述打开“Mercury LoadRunner Launcher” 窗口,选择 Analyze load test。, 打开一个Analysis会话文件,就出现了 Analysis窗口。Analysis窗口包括下列三个主要部分:A图树:在左窗格中,Analysis将显示可以打开查看的图。您可以 在此处显示打开Analysis时未显示的新图,或删除不再想查看的图。A图查看区域:在
18、右窗格中显示图。默认情况下,当打开一个会话时, Analysis概要报告将显示在此区域。A图例:下部,使您可以查看选定图中的数据。Surnmary Report3 analysis_session.lraFile Edit View Graph Reports Tools HelpRunning VusersHits per SecondT hroughputT ransaction Surrirnary .Average T ransactionAnalysis SummaryPeriod: 28-06-2004 09:59:49 - 28-06-2004 10:11:46Scenario
19、Name:C:Tutorial_Scenario_gaby. IrsResults in Session: S:Irun6nt 14141.,Irunner_d wnIoadprdtutDriaIVtutorial_resulttutDrial_resuIt. IrrDuration:11 minutes and 57 seconds.Statistics SummaryMaximum Runnincj Vusers:70Total Throucihput: (bvtes):2 7 3. 48 9. 36 3Awermg Throghput (b*足时380.904TotHits:S.789A
20、wermcjE Hits 口er SEcnnd:12.241View HTTP REGgnses SummaryTransaction SummaryTrmnsmrticms: T口tml Passed : 1.100 TotaI Failed: 3.112 Total Stopped: 0Transaction NameMinimumAverageMaximumStd. Deviation 90 PercentPassFailStopAction Trmnsmctinn78.016139.18252.47128.215170.8661443,0810honk flight5.37511.39
21、917.5413.01515.40717500check itinwrmry3.29532.826119.25826.40765.754147280logff0.4061.00512.9091.1461.67144301 口 口 口10.4443.9349.8642.1616.77717500swmrch flight0.4644.91511.172.3657.96617500vuser wnd Tranmmction000007000vu$wr init Trmnsmctinn00.0130.0770.0240.0627000AveracieResgnse TimeHTTP Resporis
22、es SljmmaryHTTP ResponsesTotalPer secondHTTP WDQ8,78912.241rrrLegend | Alerts Graph Details | User Notes | Graph Data | Raw Data |4.2分析窗口数据因为由于每个人的电脑配置不同,场景也不一样,生成的Analysis会 话文件也不一样,所以下面说的各项作为参考。实际运行的数据可能不一 样,但是每项的含义一致。4.2.1查看事务平均响应时间Trans a ct ion SummaryTrmnmmcticmE Ttml Passed: 1.10 0 T eta I Fai
23、led: 3 .112 T eta I Stc p ped: 0AwErafE REsremmE TimETransaction NameMinimumAverageMaximumStd. Deviation 90 PercentPassFailStop.凸.cti 口1 T rm19 m cti 口 n78.016139.18252.47128.215170.8661443,0810Bgk.刊此卜汁5.37511.39917.5413.01515.40717500chmuk itinerary3.29532.826119.25826.40765.7541472801口口口开0.4061.00
24、512.9091.1461.67144301口口口|0.4443.9349.8642.1616.77717500:5E:mrh fliciht0.4644.91511.172.3657.96617500vu:E:E:r 日口6 Trmi-immctiuri000007000uuser in it Transaiztion00.0130.0770.0240.0627000HTTP Responses SummaryHTTP ResponsesTotalPer secondHTTP 25。8,78912.241上图的事务概要中,我们来关注一下check_itinerary事务,90%的响 应时间是
25、65.744秒。该数值是事务平均响应时间(32.826)的两倍,说 明对于发生的大多数此种事务都需要较高的响应时间。还能看到该事务失 败了 28次。点击该事务的名称,打开平均响应时间图表如下:注意, check_itinerary事务的平均响应时间显著波动,在场景运行了 2:56 (分 钟:秒)时达到峰值75.067秒。在性能稳定的服务器上,事务的平均响应时间会比较平稳。注意,在 图的底部,登录、注销、book_flight和search_flight事务的平均响 应时间都比较平稳。Summary Report Running Vusers Hits per Second Throughput
26、 Transaction Summary Average Transaction Response Time(招 uoss)cdepCDsuodsaT5ECDAMo-llllqEFIN2. 筛选该图,观察所有Vuser同时运行的时间片。右键单击该图并选 择 “Set Filter/Groud By”,弹出筛选窗口。点击“Scenario Elapsed Time” 这一项的“Value”中的向下箭头,选择时间范围为从1:30 (分钟:秒) 至3:45 (分钟:秒)。现在,正在运行的Vuser图仅显示场景运行中1:30(分钟:秒)和3:45 (分钟:秒)之间运行的Vuser。所有其他的Vuser
27、 已全被筛选出去。3. 关联两个图,把两个图放在一起,以查看一个图的数据对另一个图 的数据所产生的影响。这称为将两个图关联。将正在运行的Vuser图和平均事务响应时间图相关联以比较其数据,以查看大量的Vuser对事务的平 均响应时间产生的影响。右键单击正在运行的 Vuser图并选择“ Merge Graphs”,弹出窗口(如下图),设置好之后确定。现在,正在运行的VuserRunning图和平均事务响应时间图在图查看区域中表示为一个图,即“Vusers-Average Transaction Response Time”(如下图)。Running Vuseis - Aveiage Transa
28、ction Response Time(-SUOCJCDS)cdehCDsuodsCDtlCDM4 .分析关联后的图。在该图中可以看到随着Vuser数量的增加,check_itinerary事务的平均响应时间也在逐渐增加。换句话说,随着负 载的增加平均响应时间也在逐渐地增加。运行64个Vuser时,平均响应 时间会突然急速增加,可以说服务器崩溃了。同时运行的Vuser超过64 个时,响应时间会明显开始变长。5. 一些体会初步接触LoadRunner,并且对它自带的服务器和软件系统进行了测试。 走了一遍测试的流程,但是其中很多问题还不深入,比如在虚拟脚本的编 写、运行测试过程中观察数据的选取,比
29、较监测的结果这些问题上,没有 什么项目经验,认识只停留在表面。作为一个负载测试工具,LoadRunner使用不难,难的是在实践过程中 的经验总结。比如哪些行为定义成一个事务来监测;虚拟用户多少个,怎 么加载才能测出系统的瓶颈,怎么分析生成的负载测试数据等。所以在后 续的工作中,要测试不同类型的系统,模拟不同类型的虚拟用户,定义不 同的场景,总结经验才能提高。附:51testing论坛上建议的性能测试学习线路图纵向划分3颗子树:vugen,controller, monitor。优先学习vugen脚 本开发以及调试。横向划分为2层:基础知识以及高级应用。_ FCcintngricrMpiiircwVugcn求初步网络嗅探描扩展漏程2009/11/23-2009/11/30by赵亮李杰