Loadrunner进阶指南
LoadRunner 操作技巧(个人经验总结)

LoadRunner 操作技巧(个人经验总结)Load Runner 相关概念解析集合点1) 集合点用以同步虚拟用户以便恰好同一时刻执行任务。
在没有性能测试工具之前,要实现用户的并发是很困难的,最常见的方法就是把公司的所有或者部分员工召集起来,有一个同志喊123开始。
然后大家一起提交数据。
2) Load Runner的集合点则可以完全实现用户的同步问题,而且可以模拟成千上万的用户操作是轻而易举的事情。
3) 集合点的设置方法A.在录制过程中可以设置集合点。
B.在使用Load Runner的Controller进行负载时,可以通过依次选择【Scenario】>【Rendezvous…】项实现。
C.可以选择某个虚拟用户后单击enable rendezvous或disable rendezvous.可以设置许启用或者禁止某个集合点.D.可以设置集合点策略,在Rendezvous information,点击Policy按钮。
这个很重要。
有三种情形。
E.在集合点设计策略窗体中也可以设计集合点释放比例。
还可以设置Timeout between Vusers虚拟用户之间的超时间隔。
一般默认是30秒。
可以根据实际情况进行设置。
事务事务是要度量其服务器响应时间的任务或操作集。
一个完整的事务由事务开始、事务结束以及一个或多个业务操作/任务构成。
重点提示事务必须是成对出现,即一个事务有事务开始,必然要求有事务结束。
不要将Lr_think_time放在事务里,影响分析和统计,除非有特殊的情况需要这么做。
检查点检查点的作用是在回放脚本期间搜索特定的文本字符串或者图片等内容,从而验证服务器响应内容的正确性。
添加检查点方法:切换到脚本数视图,然后在左侧切换到“Server response”页,然后添加一个文本Add a Text check。
也可以检查图片。
P14 重点提示检查点设置完成后,要保证检查点能使用,需要在Run Time settings �C Preferences >Enable Image and Text check 复选框选上,否则的话检查点失效。
性能测试进阶指南——LoadRunner_9[1].1实战
![性能测试进阶指南——LoadRunner_9[1].1实战](https://img.taocdn.com/s3/m/4ce4891655270722192ef7e6.png)
作者简介陈霁,现任职博为峰软件技术有限公司高级讲师,51Testing软件测试论坛版主(论坛ID云层),ISO内审员,曾任职于Etang、Gameloft等多家知名企业。
八年软件测试工作经验,多年性能测试和测试管理经验,擅长解决客户在工作中的具体问题,授课诙谐幽默,思路清晰,能够将复杂的知识通过简单的例子分解描述,深受学员好评。
编辑推荐 国内唯一一本基于HP LoadRunner 9.10工具的指导用书。
本书简介 本书作为国内唯一一本基于HP LoadRunner 9.10工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。
第一步(了解理论):磨刀不误砍柴工,打下基础;第二步(掌握工具):深入介绍LoadRunner工具三大部分(Virtual User Generator、Controller、Analysis)分别是如何实现用户行为的模拟、性能指标的监控、负载的生成及后期的数据分析;第三步(项目实施):理论联系实际,介绍性能测试项目实施的流程和性能测试部门的组织管理;第四步(进阶提升):对一些当下流行的或比较特殊的协议和开发技巧进行真实案例的介绍。
本书结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。
同时,本书也可以作为高校开展性能测试课程的参考教材,让在校学生能对性能测试的本质和价值有一定的认识。
目录第1章 性能测试基础 1.1 性能测试工程师的标准及挑战 1.1.1 性能测试工程师的考评指标 1.1.2 性能测试工程师的挑战 1.2 性能测试基础 1.2.1 性能 1.2.2 性能指标 1.2.3 性能分析及调优 1.2.4 单机软件性能与网络架构软件性能 1.2.5 性能测试的流程 1.2.6 性能测试的注意要点 1.2.7 性能测试招聘要求 小结第2章 LoadRunner综述 2.1 LoadRunner简介 2.2 LoadRunner工具组成 2.3 性能测试原理 2.4 自动化测试工具和性能测试工具的区别 2.5 协议分析 2.5.1 HTTP详细介绍 2.5.2 HTTP报文结构 2.5.3 HTTP请求 2.5.4 HTTP应答 2.5.5 HTTP捕获 2.5.6 HTTP回放 2.6 安装 2.6.1 在Windows下安装LoadRunner 2.6.2 安装Load Generator 2.6.3 附加组件 2.6.4 LoadRunner License 2.6.5 测试环境的安装 2.7 LoadRunner性能测试操作流程预览 小结第3章 用户行为模拟 3.1 VuGen界面介绍 3.1.1 Tree图形化模式 3.1.2 脚本模式 3.1.3 Output Window 3.2 录制用户行为 3.2.1 录制流程 3.2.2 协议选择 3.2.3 录制选项 3.2.4 开始录制 3.2.5 插入命令 3.2.6 结束录制 3.2.7 回放验证 3.2.8 录制回放常见问题 3.3 脚本开发 3.3.1 Action简介 3.3.2 脚本如何注释 3.3.3 语言规则 3.3.4 如何使用模板 3.3.5 脚本的导入导出 3.3.6 脚本调试 3.4 通用选项(General Options) 3.4.1 Parameterization标签 3.4.2 Replay标签 3.5 运行设置(Run-Time Setting) 3.5.1 Run Logic 3.5.2 Pacing 3.5.3 Log 3.5.4 Think Time 3.5.5 Additional attributes 3.5.6 Miscellaneous 3.5.7 Speed simulation 3.5.8 Browser Emulation 3.5.9 Preferences 3.6 参数化 3.6.1 参数化的操作 3.6.2 Parameter List界面介绍 3.6.3 VuGen中的参数 3.6.4 Controller中的参数 3.6.5 同行取值(Same line as) 3.6.6 参数模拟(Simulate Parameter) 3.6.7 参数类型 3.6.8 数据向导(Data Wizard) 3.6.9 参数和变量 3.7 关联 3.7.1 关联原理 3.7.2 自动关联 3.7.3 手动关联 3.7.4 一边录制一边关联 3.7.5 关联函数web_reg_save_param详解 3.7.6 关联函数的高级使用 3.8 检查点 3.8.1 文本检查点 3.8.2 自动检查点 3.8.3 图片检查点 3.9 事务 3.9.1 响应时间 3.9.2 添加事务 3.9.3 事务时间 3.9.4 手工事务 3.10 集合点 小结第4章 负载生成及监控Controller 4.1 设计场景 4.1.1 新建场景 4.1.2 负载生成器管理 4.1.3 用户管理 4.1.4 运行设置 4.1.5 IP虚拟 4.1.6 场景运行原理 4.1.7 Service Level Agreement(服务品质保障) 4.2 系统监控 4.2.1 Scenario Groups(场景用户状态) 4.2.2 Scenario Status(场景运行状态) 4.2.3 计数器原理 4.2.4 计数器管理 4.2.5 SiteScope 4.3 场景运行 4.4 QTP脚本在场景中的运行 4.5 场景数据 小结第5章 数据收集分析Analysis 5.1 新建Analysis分析 5.2 Analysis Summary 5.2.1 Analysis Summary(场景的摘要) 5.2.2 Statistics Summary(场景状态的统计说明) 5.2.3 5 Worst Transaction(SLA失败事务) 5.2.4 Scenario Behavior Over Time(场景行为综述) 5.2.5 Transaction Summary(事务摘要) 5.2.6 Service Level Agreement Legend 5.2.6 (SLA图标说明) 5.2.7 HTTP Responses Summary(HTTP响应摘要) 5.3 Graphs(数据图) 5.3.1 Vusers(虚拟用户状态) 5.3.2 Errors(错误统计) 5.3.3 Transactions(事务) 5.3.4 Web Resources(网页资源信息) 5.3.5 Web Page Diagnostics(网页分析) 5.3.6 Network Monitor(网络监控) 5.3.7 Resources(资源监控) 5.4 图设置与操作 5.4.1 Merge Graphs(合并图) 5.4.2 Auto Correlate(自动定位瓶颈) 5.5 Transaction Report(事务报告) 5.6 SLA Report(系统阈值监控报告) 5.7 External Monitor(外部监控数据导入) 5.8 Cross with result(跨脚本横向比较) 5.9 生成测试报告 5.9.1 创建HTML报告 5.9.2 创建Word报告 5.9.3 创建水晶报表 小结第6章 性能测试实战 6.1 性能测试流程 6.1.1 计划测试 6.1.2 创建脚本 6.1.3 创建场景 6.1.4 运行场景 6.1.5 分析性能数据 6.1.6 性能测试报告 6.2 性能测试组织 6.2.1 性能测试团队 6.2.2 性能测试流程分工 6.2.3 配置管理 6.2.4 性能测试自动化 小结第7章 高级脚本开发 7.1 AJAX 7.2 开心网咬人游戏 7.3 基于域权限的登录 7.4 FLEX 7.5 Windows Sockets 7.6 E-mail(SMTP/POP3)附录A 常见HTTP请求返回简介附录B LoadRunner 9.5简介附录C 常见LoadRunner问题索引附录D 常见性能测试工具附录E 常用文档模板参考资料插图摘要书摘插图 第3章 用户行为模拟 3.2 录制用户行为 3.2.8 录制回放常见问题 录制错误 1.录制本机WebTours或录制本地网站无法打开 当使用Vista或者Windows 2008操作系统时,会出现该问题。
LoadRunner培训教程

LoadRunner培训教程LoadRunner是一款由美国微软公司推出的性能测试工具,其主要功能是对应用程序的性能进行测试,以判断是否满足业务需求,同时也可以帮助开发人员找出应用程序的瓶颈,提高应用程序的性能。
为了更好地使用LoadRunner工具,很多企业和IT人员都需要进行培训。
本文将深入介绍LoadRunner培训教程。
一、LoadRunner基础1. LoadRunner工具的介绍:本章主要介绍LoadRunner工具的使用场景,包括LoadRunner构成、使用对象、主要功能以及误区等。
2. 安装配置:本章介绍LoadRunner的安装过程,包括如何下载安装程序、安装过程中需要注意的事项以及配置参数等。
3. 脚本录制:本章介绍LoadRunner的脚本录制功能,包括如何选择录制模式、录制参数的配置和环境的设置等。
4. 脚本回放与编辑:本章介绍LoadRunner的回放和编辑功能,包括回放过程中的错误处理、日志输出和数据分析等。
二、性能测试1. 性能测试概述:本章主要介绍性能测试的基本概念、测试种类、测试目的以及测试需求等。
2. 性能测试计划:本章介绍如何制定性能测试计划,包括测试环境的准备、测试用例的设计、性能测试的执行和数据的分析等。
3. 脚本设计:本章介绍LoadRunner的脚本设计功能,包括如何制定脚本的目标、步骤和参数等,以及如何进行随机数据生成和参数化等。
4. 性能测试执行:本章介绍如何执行性能测试,包括测试执行过程中的错误处理、模拟压力和相关性能参数的设置等。
5. 结果分析和报告输出:本章介绍性能测试结果的分析和报告输出,包括如何分析测试结果、如何生成测试报告以及如何进行测试结果的验证等。
三、性能优化1. 性能优化概述:本章介绍性能优化的基本概念、性能瓶颈以及优化方法等。
2. 性能监控:本章介绍如何使用LoadRunner的性能监控功能,包括如何监测流量、CPU、内存和带宽等指标,以及如何提取性能数据等。
LoadRunner(负载测试工具)入门培训教程

LoadRunner入门培训教程目录1 概要介绍1.1 软件性能介绍1.2 LoadRunner介绍2 LoadRunner测试过程2.1 计划测试2.2 创建Vuser脚本2.3 创建场景2.4 运行、监控场景2.5 分析测试结果3 LoadRunner测试实例演示3.1 脚本录制、调试、回放3.2 创建负载测试场景3.3 运行、监控负载测试场景3.4 结果分析1 概要介绍1.1 软件性能介绍1.1.1 软件性能的理解性能是一种指标,表明软件系统或构件对于其及时性要求的符合程度;同时也是产品的特性,可以用时间来进行度量。
表现为:对用户操作的响应时间;系统可扩展性;并发能力;持续稳定运行等。
1.1.2 软件性能的主要技术指标响应时间:响应时间=呈现时间+系统响应时间吞吐量:单位时间内系统处理的客户请求数量。
(请求数/秒,页面数/秒,访问人数/秒)并发用户数:业务并发用户数;[注意]系统用户数:系统的用户总数;同时在线用户人数:使用系统过程中同时在线人数达到的最高峰值。
1.2 LoadRunner介绍LoadRunner是Mercury Interactive的一款性能测试工具,也是目前应用最为广泛的性能测试工具之一。
该工具通过模拟上千万用户实施并发负载,实时性能监控的系统行为和性能方式来确认和查找问题。
1.2.1 LoadRunner工具组成虚拟用户脚本生成器:捕获最终用户业务流程和创建自动性能测试脚本,即我们在以后说的产生测试脚本;压力产生器:通过运行虚拟用户产生实际的负载;用户代理:协调不同负载机上虚拟用户,产生步调一致的虚拟用户;压力调度:根据用户对场景的设置,设置不同脚本的虚拟用户数量;监视系统:监控主要的性能计数器;压力结果分析工具:本身不能代替分析人员,但是可以辅助测试结果的分析。
1.2.2 LoadRunner工具原理代理(Proxy)是客户端和服务器端之间的中介人,LoadRunner就是通过代理方式截获客户端和服务器之间交互的数据流。
Loadrunner进阶指南

3.9事务3.9.1响应时间事务是指用户在客户端做一种或多种业务所需要的操作集,通过事务函数可以标记完成该业务所需要的操作内容;另一方面事务可以用来统计用户操作的响应时间,事务响应时间是通过记录用户请求的开始时间和服务器返回内容到客户时间的差值来计算用户操作响应时间的,如图3.159所示。
图3.159事务响应时间计算方式这里的响应时间不包含客户端GUI 时间(例如浏览器解释页面所消耗的时间)。
前面说响应时间是服务器返回和用户请求发出之间的时间差,那么得到这个时间就够了吗?例如:现在有一场跑步比赛。
当比赛完成后,可以得到每位运动员跑完整个比赛所需要消耗的时间,现在需要分析谁的起跑好、谁的冲刺好,能分析出来吗?答案是不能,虽然得到了最重要的完成比赛的响应时间,但是这对分析和优化几乎没有作用,因为只知道了结果而不知道过程。
跑步的时间是由起跑、中途、冲刺等时间组成的,如果想要进行分析优化,必须先了解各个阶段所花费的时间和速度以及各个运动员的优缺点。
对于软件来说,通过事务得到的系统响应时间也是由非常多的部分组成的,一般来说响应时间由网络时间、服务器处理时间、网络延迟三大部分组成。
先来看看当一个客户端发出请求到服务器返回需要经历哪些路径,如图3.160所示。
图3.160事务响应时间组成1.网络时间客户端发出请求首先通过网络来到Web Server 上(消耗时间为N1);然后Web Server 将处理后的请求发送给App Server (消耗时间为N2);App Server 将操作数据指令发送给Database (消耗时间为N3);Database 服务器将查询结果数据发送回App Server (消耗时间为N4);App Server 将处理后的页面发给Web Server (消耗时间为N5);最后Web Server 将HTML 转发到客户端(消耗时间为N6)。
这里的N x 都是网络传输上的时间开销,没有计算业务处理所需要花费的时间。
LoadRuner入门

LoadRunner入门简介LoadRunner是一款由Micro Focus开发的性能测试工具,可以模拟多个用户同时访问应用程序或网站,对其进行压力测试和性能测试。
本文将介绍如何入门使用LoadRunner进行性能测试。
安装首先,你需要从Micro Focus官方网站下载并安装LoadRunner。
根据你的操作系统,选择适合的安装包进行下载。
安装过程相对简单,按照提示一步步进行即可完成安装。
创立新工程安装完成后,翻开LoadRunner并创立一个新的工程。
在工程创立向导中,你需要提供工程的名称和保存路径。
此外,你还需要选择测试类型,如Web应用程序、数据库、Web Service等。
根据你的测试需求选择适当的测试类型。
配置脚本在创立工程后,你需要配置测试脚本。
测试脚本是用来模拟用户行为并发送请求的脚本。
LoadRunner支持多种脚本语言,如C、Java、JavaScript等。
根据你的熟悉程度,选择一种适合的脚本语言。
在配置脚本时,你需要定义测试场景、事务、请求等。
测试场景是指模拟用户的行为流程,事务是指用户在应用程序中完成的一个操作,请求是指客户端向效劳器发送的请求。
设定虚拟用户数量在性能测试中,模拟用户的数量对测试结果有着重要影响。
你需要设定虚拟用户数量来模拟实际用户的并发访问。
LoadRunner提供了多种方式来设定虚拟用户数量,如固定数量、逐渐增加数量等。
根据你的需求选择适当的方式。
设定负载模式负载模式是指模拟用户对应用程序的访问模式。
LoadRunner提供了多种负载模式,如逐渐增加负载、保持稳定负载等。
你需要根据你的测试目标选择适当的负载模式。
负载模式可以设置为持续运行一定时间或到达一定的负载水平后停止。
运行测试配置完成后,你可以开始运行测试了。
LoadRunner会模拟用户行为并发送请求到被测试应用程序。
测试过程中,LoadRunner会监控各项性能指标,并记录相关数据。
分析性能数据测试完成后,你需要分析性能数据来评估被测试应用程序的性能。
LoadRunner使用手册范本

LoadRunner 使用手册创建脚本1.打开“Mercury LoadRunner”窗口。
选择“开始” > “程序” > “Mercury LoadRunner” > “LoadRunner”,将打开“Mercury LoadRunner Launcher”窗口2.打开VuGen。
在 Launcher 窗口中,单击“负载测试”选项卡,单击“创建/ 编辑脚本”。
将打开 VuGen 的开始页。
3.选择协议。
在 VuGen 开始页的“脚本”选项卡中,单击“新建 Vuser 脚本”,将打开“新建虚拟用户”对话框,其中显示用于新建单协议脚本的选项。
确保“类别”类型为“所有协议”。
VuGen 将显示所有可用于单协议脚本的协议列表。
向下滚动该列表,选择“Web (HTTP/HTML)”并单击“确定”创建一个空白 Web 脚本。
4.向导模式。
打开 VuGen 的向导时将出现空白脚本,并且该向导的左侧将显示任务窗格。
(如果任务窗格没有显示,请单击工具栏上的“任务”按钮)VuGen 向导将指示您逐步创建脚本并根据所需的测试环境编辑此脚本。
任务窗格列出了脚本创建过程中的每个步骤或任务。
在您执行每个步骤时,VuGen 将在该窗口的主区域中显示详细的说明和规则。
5.录制脚本。
在任务窗格中,单击步骤 1 中的“录制应用程序”,单击说明窗格底部的“开始录制”。
也可以选择“Vuser” > “开始录制”或单击页面顶部工具栏中的“开始录制”按钮将打开“开始录制”对话框在“URL”地址框中,键入要录制的页面地址,在“录制到操作”框中,选择“操作”。
单击“确定”,将打开浮动录制工具栏并开始录制。
在浮动工具栏上单击“停止”停止录制过程。
生成 Vuser 脚本时,“代码生成”弹出窗口将打开。
然后, VuGen 向导将自动继续任务窗格中的下一步,并显示录制概要。
录制概要包括协议信息和会话执行期间创建的操作列表。
对于录制期间执行的每个步骤, VuGen 都生成一个快照(即录制期间窗口的图片)。
LoadRunner8.1_系列培训(一)

LR可用来测试整个企业的系统,它通过模拟实际用户的操作行为和实行实 时性能监测,帮助使用者更快的查找和发现问题。同时LR支持广泛的协议 可应用于许多不同架构应用的测试。
LR有着良好的操作界面和组织优秀的文档,通过自学和摸索很快就能掌握 菜单操作,但简单的“录制/回放”远远满足不了实际性能测试需要,LR提 供了多种脚本修改的方法和函数等
\\192.168.3.242\backup\Loadrunner8.1
LoadRunner脚本开发(1):
LR性能测试流程: 一个好的测试计划能够保证LR能够完成性能测试的 目标,以及确保项目中指定的软件性能指标符合性 能需求的要求 测试计划完成后,后续的步骤是创建VU脚本。LR提 供了方便的GUI界面,用于支持用户的“录制”、 “回放”和“调试” 创建测试场景是创建VU脚本后的一个步骤。在该步 骤中可根据设计的场景(VU运行状况)制定脚本的 运行方式等,通过场景模拟实际的用户操作,在此 情况下得到的性能测试结果才具有代表性 创建测试场景完成后需要运行该场景,在该步骤中值需要Run按钮即可运行整个 场景,在运行过程中需要关注性能计数器的值,添加各种需要的性能计数器以 及关注测试过成是否正常。 最后一步是分析结果。LR提供了丰富的报表功能,可以根据需要提供性能计数 器的数据分析结果,也可按需要在此图标基础上更加深入的分析
LoadRunner脚本开发(5):
录制脚本注意事项: 选择哪种方式录制,有以下参考原则 ① 基于浏览器的应用程序推荐使用HTML-based Script ② 不是基于浏览器的应用程序推荐使用URL-based Script ③ 如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生 了请求,比如DataGrid的分页按钮等,也要使用URL-based方式录制 ④ 基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based方式录制 在录制过程中不要使用浏览器的“后退”功能,LR对此功能的支持不太好
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.9事务3.9.1响应时间事务是指用户在客户端做一种或多种业务所需要的操作集,通过事务函数可以标记完成该业务所需要的操作内容;另一方面事务可以用来统计用户操作的响应时间,事务响应时间是通过记录用户请求的开始时间和服务器返回内容到客户时间的差值来计算用户操作响应时间的,如图3.159所示。
图3.159事务响应时间计算方式这里的响应时间不包含客户端GUI 时间(例如浏览器解释页面所消耗的时间)。
前面说响应时间是服务器返回和用户请求发出之间的时间差,那么得到这个时间就够了吗?例如:现在有一场跑步比赛。
当比赛完成后,可以得到每位运动员跑完整个比赛所需要消耗的时间,现在需要分析谁的起跑好、谁的冲刺好,能分析出来吗?答案是不能,虽然得到了最重要的完成比赛的响应时间,但是这对分析和优化几乎没有作用,因为只知道了结果而不知道过程。
跑步的时间是由起跑、中途、冲刺等时间组成的,如果想要进行分析优化,必须先了解各个阶段所花费的时间和速度以及各个运动员的优缺点。
对于软件来说,通过事务得到的系统响应时间也是由非常多的部分组成的,一般来说响应时间由网络时间、服务器处理时间、网络延迟三大部分组成。
先来看看当一个客户端发出请求到服务器返回需要经历哪些路径,如图3.160所示。
图3.160事务响应时间组成1.网络时间客户端发出请求首先通过网络来到Web Server 上(消耗时间为N1);然后Web Server 将处理后的请求发送给App Server (消耗时间为N2);App Server 将操作数据指令发送给Database (消耗时间为N3);Database 服务器将查询结果数据发送回App Server (消耗时间为N4);App Server 将处理后的页面发给Web Server (消耗时间为N5);最后Web Server 将HTML 转发到客户端(消耗时间为N6)。
这里的N x 都是网络传输上的时间开销,没有计算业务处理所需要花费的时间。
2.服务器处理时间另外一个方面还要考虑各个服务器处理所需要的时间WT 、AT 、DT 。
3.网络延迟除了上面两种时间开销以外,还要考虑网络延迟的问题。
所以最终的响应时间组成为:响应时间=网络延迟时间+WT+AT+DT +(N1+N2+N3)+(N4+N5+N6)+WT+AT+DT 也可以简单认为响应时间由网络开销(前端)和服务器端开销(后端)两大部分组成,如图3.161所示。
那么这些消耗的时间都花在什么事情上了呢?影响网络的因素一般包括以下内容:1.前端Network•DNS Lookup•Time to connect•Time to first buffer•Network Time•Download Time•SSL handshake•FTP authentication•ClientTime图3161事务响应时间组成详解•Error Time•网络延迟2.后端服务•Web ServerServlet TimeMethod Time静态动态压缩•App ServerEJB TimeMethod TimeJNDI Lookup•Database ServerJDBC TimeConnect TimeExecute Time这里会发现响应时间的组成是非常复杂的,当性能问题出现时,想要定位到具体的代码级别是相当困难的。
3.9.2添加事务通过事务监控响应时间,需要做的就是在请求的发出前添加一个事务开始的计数器,在请求结束的地方添加一个事务结束的计数器,VuGen会自动计算函数间的时间差。
通过工具栏上的事务按钮即可完成事务的添加操作,在请求之前单击插入事务开始按钮,如图3.162所示。
在弹出对话框中填写事务名称mainpage,如图3.163所示。
图3.162插入事务开始按钮图3.163设置事务名称单击OK按钮后,可以得到事务开始的函数:lr_start_transaction("mainpage");通过这条语句开始了一个叫做mainpage的事务,然后在请求后添加一个事务结束函数,单击插入事务结束按钮,如图3.164所示。
这里提供了几个选项,选择LR_AUTO由VuGen自动判断状态,如图3.165所示。
图3.164插入事务结束按钮图3.165设置事务状态判断为LR_AUTO 这样就生成了一个事务结束的函数:lr_end_transaction("mainpage",LR_AUTO);这里事务的开始和结束名称需要配对。
事务设置结束,通过这两个函数完成了对事务的设计,运行脚本来看看效果。
脚本如下所示:Action(){lr_start_transaction("mainpage");web_url("51testing","URL= ",LAST);lr_end_transaction("mainpage",LR_AUTO);return0;}在日志中可以看到以下信息:Action.c(3):Notify:Transaction"mainpage"started.//请求发送返回的相关日志Action.c(5):Notify:Transaction"mainpage"ended with"Pass"status (Duration: 5.9749).事务结束的说明中包含了请求所花费的时间为Duration=5.9749秒和事务结束的状态。
通过事务可以获得每个操作所消耗的准确时间,例如查询、登录、删除操作。
但是对于性能分析来说,这个时间还是太大了,无法有效地帮助我们定位性能瓶颈,LoadRunner能解决这个问题吗?抱歉,LoadRunner只能对自己发出的请求和服务器返回的内容进行网络级别的分析,也就是说LoadRunner能够分析的时间为客户到WWW服务器的时间N1和WWW服务器返回到客户的时间N6。
这些时间主要和网络速度有关,可以用一个LoadRunner的名称来解释,叫做Web Page Breakdown,相关的具体分析可以参考第5.3.5节。
也就是说VuGen可以分析的时间只有客户端到Web Server之间的部分,后面从Web Server到App Server再到Database Server的时间只能得到一个总和。
事务状态在默认情况下使用LR_AUTO来作为事务状态,对于一个事务有以下4个状态可以选择。
1.LR_AUTOLR_AUTO是指事务的状态由系统自动根据默认规则来判断,结果为PASS/FAIL/STOP。
2.LR_PASSLR_PASS指事务是以PASS状态通过的,说明该事务正确地完成了,并且记录下对应的时间,这个时间就是指做这件事情所需要消耗的响应时间。
3.LR_FAILLR_FAIL是指事务以FAIL状态结束,该事务是一个失败的事务,没有完成事务中脚本应该达到的效果,得到的时间不是正确操作的时间,这个时间在后期的统计中将被独立统计。
4.LR_STOPLR_STOP将事务以STOP状态停止。
事务的PASS和FAIL状态会在场景的对应计数器中记录,包括通过的次数和事务的响应时间,方便后期分析该事务的吞吐量以及响应时间的变化情况。
事务和子事务在VuGen中可以通过事务来完成一组操作的响应时间监控,如果想监控一个事务中某一步操作的响应时间,就需要使用子事务来完成(当然也可以直接使用事务嵌套)。
Lr_start_sub_transaction("子事务名","父事务名");Lr_end_sub_transaction("子事务名","子事务状态");子事务虽然和父事务很像,但是父事务支持的很多函数,在子事务中都无法实现,所以应酌情考虑。
例如:需要做一个登录的事务,想知道打开登录页面和登录操作的时间,就可以使用子事务。
lr_start_transaction("login");lr_start_sub_transaction("loginpage","login");//打开登录页面lr_end_sub_transaction("loginpage",LR_AUTO);lr_start_sub_transaction("submitlogin","login");//提交登录表单lr_end_sub_transaction("submitlogin",LR_AUTO);lr_end_transaction("login",LR_AUTO);这样可以得到3个事务的时间,并且清楚地得到打开页面和登录操作以及整个操作的时间。
事务相关的函数lr_get_transaction_duration("事务名")//获得对应事务达到该函数运行位置时持续的时间,返回double类型lr_get_transaction_wasted_time("事务名")//获得对应事务达到该函数运行位置时的wasted时间,返回double类型lr_wasted_time(毫秒)//为一个事务添加wasted时间,无返回lr_stop_transaction("事务名")//将一个事务暂停,该函数后的操作都不会被记入事务时间lr_resume_transaction("事务名")//将暂停的事务恢复一般情况下都可以十分简便地获得请求的相应时间,但是对于下载操作来说就并不是那么方便了,这个时候需要利用一个web_get_int_property()函数来解决。
例如想获得一个下载操作的响应时间,可以这样写:Action(){int i;lr_start_transaction("download");web_url("LoadRunner","URL=http://127.0.0.1/loadrunner.iso",LAST);//下载操作的请求i=web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);if(i>5000)//当下载的文件大小大于5000个字节时认为下载成功,否则失败lr_end_transaction("download",LR_PASS);elselr_end_transaction("download",LR_FAIL);}当进行下载操作时,服务器会返回该下载操作的文件大小,所以只需要获得该信息即可,如果还希望对下载时的速度进行测试,那么需要配合关联函数将返回的内容保存到本地才能实现。