Loadrunner工具.docx
- 文档编号:30016939
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:71
- 大小:3.29MB
Loadrunner工具.docx
《Loadrunner工具.docx》由会员分享,可在线阅读,更多相关《Loadrunner工具.docx(71页珍藏版)》请在冰豆网上搜索。
Loadrunner工具
LOADRUNNER
使用手册
目录
1.LoadRunner简介3
1.1.LoadRunner组件3
1.2.LoadRunner工具结构和原理3
1.3.LoadRunner的功能6
1.3.1.创建虚拟用户6
1.3.2.创建真实的负载6
1.3.3.实时监控器6
1.3.4.分析结果7
2.LoadRunner安装7
2.1.系统要求7
2.2.安装过程7
3.LoadRunner开发测试脚本10
3.1.虚拟用户生成器(VuGen)简介10
3.2.录制测试脚本10
3.2.1.启动LoadRunner10
3.2.2.选择录制协议11
3.2.3.开始录制脚本11
3.3.完善测试脚本14
3.3.1.插入事务15
3.3.2.参数化输入16
3.3.3.插入集合点21
3.3.4.模拟用户思考时间22
3.3.5.关联语句22
3.3.6.插入Text/Imag检查点26
3.3.7.插入函数29
3.3.8.插入注释31
3.4.运行脚本32
3.4.1.如何设置运行时行为32
3.4.2.如何实时查看脚本运行35
3.4.3.如何查看运行结果36
4.LoadRunner测试场景37
4.1.LoadRunnerController简介37
4.2.场景类型为ManualScenario39
4.2.1.创建负载测试场景39
4.2.2.运行负载测试场景45
4.3.场景类型ManualScenariowithPercentageMode48
4.3.1.应该使用哪种目标类型48
4.3.2.如何定义目标49
4.3.3.理解各种类型52
5.利用Analysis分析结果53
5.1.分析事务的响应时间54
5.2.分解页面55
5.3.其他补充56
6.LoadRunner之协议选择57
6.1.LoadRunner协议简介57
6.2.LoadRunner常用协议解析59
1.LoadRunner简介
LoadRunner(MercuryInteractive)是一种预测系统行为和性能的工业标准级负载测试工具。
通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。
通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优
化系统性能。
LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为
和实行实时性能监测,来帮助您更快的查找和发现问题。
此外,LoadRunner能支持广范的
协议和技术,为您的特殊环境提供特殊的解决方案。
1.1.LoadRunner组件
LoadRunner包含以下组件:
◆虚拟用户生成器(VirtualUserGenerator):
用于捕获最终用户业务流程和创建自动性能测试脚本(也称为虚拟用户脚本)。
◆Controlle:
用于组织、驱动、管理、监控负载测试。
◆Analysis:
有助于您查看、分析和比较性能结果。
◆Launcher:
为访问所有LoadRunner组件的统一界面。
1.2.LoadRunner工具结构和原理
◆代理(Proxy)是客户端和服务器端之间的中介人,LoadRunner就是通过代理方式截获客户端和服务器之间交互的数据流。
1)虚拟用户脚本生成器通过代理方式接收客户端发送的数据包,记录并将其转发给服务器端;接收到从服务器端返回的数据流,记录并返回给客户端。
这样服务器端和客户端都以为在一个真实运行环境中,虚拟脚本生成器能通过这种方式截获数据流;虚拟用户脚本生成器在截获数据流后对其进行了协议层上的处理,最终用脚本函数将数据流交互过程体现为我们容易看懂的脚本语句。
2)压力生成器则是根据脚本内容,产生实际的负载,扮演产生负载的角色。
3)用户代理是运行在负载机上的进程,该进程与产生负载压力的进程或是线程协作,接受调度系统的命令,调度产生负载压力的进程或线程。
4)压力调度是根据用户的场景要求,设置各种不同脚本的虚拟用户数量,设置同步点等。
5)监控系统则可以对数据库、应用服务器、服务器的主要性能计数器进行监控。
6)压力结果分析工具是辅助测试结果分析。
◆下面一个是LoadRunner的工作原理图,这张是LoadRunner的总体架构图,包括各个组件VUGen、Controller和Analysis之间的关系.
◆这是LoadRunner的工作原理,从图中可以看出如何利用LoadRunner进行一次典型的系统性能测试
◆这是一个内部流程图,LoadRunner内部各个组件之间如何进行交互,数据流和文件流之间如何进行.
1.3.LoadRunner的功能
1.3.1.创建虚拟用户
使用LoadRunner的VirtualUserGenerator引擎,您能很简便地创立起系统负载。
该引擎能够生成代理或虚拟的用户模拟业务流程和真正用户的操作行为。
它先记录下业务流程,如下订单或机票预定,然后将其转化为测试脚本。
利用虚拟用户,您可以在Windows,UNIX或Linux机器上同时运行成千上万个测试。
所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。
用VirtualUserGenerator建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。
以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。
在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。
1.3.2.创建真实的负载
Virtualusers建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。
用LoadRunner的Controller,您能很快组织起多用户的测试方案。
Controller的Rendezvous功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。
而且,您可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。
这样,您就能将测试过程自动化。
同样您还可以用Controller来限定您的负载方案,在这个方案中所有的用户同时执行一个动作,如登陆到一个库存应用程序来模拟峰值负载的情况。
另外,您还能监测系统架构中各个组件的性能包括服务器,数据库,网络设备等,来帮助客户决定系统的配置。
1.3.3.实时监控器
LoadRunner内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应
用系统的运行性能。
这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统
组件包括applicationserver,webserver,网路设备和数据库等的实时性能。
这样,您就可以
在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问
题。
1.3.4.分析结果
测试完毕后,LoadRunner收集汇总所有的测试数据,并为您提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。
使用LoadRunner的Web交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。
例如,这个交易细节分析机制能够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。
另外,Web交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。
例如,您可以将网络延时进行分解,以判断DNS解析时间,连接服务器或SSL认证所花费的时间。
通过使用LoadRunner的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整。
2.LoadRunner安装
LoadRunner分为Windows版本和Unix版本。
本章讲解的安装过程就是LoadRunner8.1的Windows版本的安装。
2.1.系统要求
目前部门的测试机和工作机器足可以满足LoadRunner8.1的最低要求。
不过要比较好
的运行LoadRunner,一般会准备一台配置相对较高的机器作为压力发生器(内存最好在2G以上,安装LoadRunner的磁盘空间在10G以上)。
操作系统最好为Windows2000以上的服务器版本。
2.2.安装过程
LoadRunner的安装过程比较简单和其他应用软件安装相似,这里我仅作简单的说明。
要开始安装LoadRunner,以Administrator的身份登录系统(本次安装以WinXP为例)后,运行LoadRunner安装目录下Setup.exe即可进入安装程序。
1、在“RegistrationInformation”界面中,输入序列号(不用改动,就是n个8)
2、单击【Next】按钮显示如下:
下面简单的对各个安装方式进行介绍
◆Typical安装比较通用的组件,包括Controller、Vuser、在线帮助和脚
本例程。
该选项适合于控制Vusers的机器。
◆Custom自定义安装,我们将使用该选项,安装全部的组件
3、在“UserLoginSettings”对话框中,选择用户登录设置
◆Allowvirtualuserstorunonthismachinewithoutuserlogin需要在下面输入域、用
户名和密码,这样运行LoadGenerator的机器会自动登陆到网络,
◆ManuallogintotheLoadGeneratormachine运行Vusers时,自动登陆到网络,无需登陆用户名和密码,这样Vusers就会不用任何干预自动的启动运行。
(推荐)
4、安装完毕后,提示重新启动。
3.LoadRunner开发测试脚本
要创建负载,需要首先生成模拟实际用户行为的自动脚本。
在本次讲解中将介绍以下内容:
Ø虚拟用户生成器(VuGen)简介;
Ø如何开始录制用户活动;
Ø使用VuGen向导模式;
Ø如何录制业务流程以创建脚本?
Ø如何查看脚本?
3.1.虚拟用户生成器(VuGen)简介
在测试环境中,LoadRunner会在物理计算机上用虚拟用户(即Vuser)代替实际用户。
Vuser通过以可重复、可预测的方式模拟典型用户的操作,在系统上创建负载。
LoadRunner虚拟用户生成器(VuGen)采用录制并播放机制。
当您在应用程序中按照业务流程操作时,VuGen将这些操作录制到自动脚本中,以便作为负载测试的基础。
3.2.录制测试脚本
要开始录制用户操作,请打开VuGen并创建一个空白脚本。
通过录制事件和添加手动增强内容来填充空白脚本。
3.2.1.启动LoadRunner
选择“开始”>“所有程序”>“MercuryLoadRunner”>“Applications”>“VirtualUserGenerator”。
将启动VisualUserGenerator通过点击页面中“NewVuserScript”链接新建一个用户脚本。
3.2.2.选择录制协议
在打开的“新建虚拟用户”对话框中,选择系统通讯的协议。
这里我们需要测试的是Web应用,所以我们需要选择Web(HTTP/HTML)协议。
协议是客户端用来与系统后端进行通信的语言。
本实例是基于Web的应用程序,因此您将创建一个Web虚拟用户脚本。
注意:
在多协议脚本中,高级用户在一个录制会话期间可以录制多个协议。
在本教程中,您将创建一个Web类型的单协议脚本。
录制其他类型的单协议脚本或多协议脚本的过程与录制Web脚本所用的方法相似。
3.2.3.开始录制脚本
点击确定按钮后,进入主窗体并弹出“StartRecording”开始录制对话框。
◆在URL中添入要测试的Web站点地址,这里我们以应用为例子来进行录制。
◆选择要把录制的脚本放到哪一个部分,默认情况下是“init”
这里简单说明一下:
VuGen中的脚本分为三部分:
vuser_init、vuser_end和Action。
其中vuser_init和vuser_end都只能存在一个,不能再分割,而Action还可以分成无数多个部分(通过点击New按钮,新建ActionXXX)。
在录制需要登陆的系统时,我们把登陆部分放到vuser_init中,把登陆后的操作部分放到Action中,把注销关闭登陆部分放到vuser_end中。
(如果需要在登陆操作设集合点,那么登陆操作也要放到Action中,因为vuser_init中不能添加集合点)在其他情况下,我们只要把操作部分放到Action中即可。
注意:
在重复执行测试脚本时,vuser_init和vuser_end中的内容只会执行一次,重复执行的只是Action中的部分。
◆“Recordtheapplicationstartup”默认情况下是选中的,说明应用程序一旦启动,VuGen就会开始录制脚本;如果没有选中,应用程序启动后,VuGen出现以下对话框,并且暂时不会开始录制脚本,用户操作应用程序到需要录制的地方,按下“Record”按钮,VuGen才开始录制。
◆点“Options”按钮,进入录制的设置窗体,这里一般情况下不需要改动。
ØRecording标签页:
默认情况下选择“HTML-basedScript”,说明脚本中采用HTML页面的形式来表示,这种方式的Script脚本容易维护,容易理解,推荐这种方式录制。
LoadRunner中HTTP协议的录制及两种录制模式的比较
ØHTML–basescrīpt和URL-basescrīpt的区别
1)“HTML–basescrīpt”默认模式,为每个用户请求生成单独的函数
2)“URL-basescrīpt”可以捕获所有作为用户操作的结果发送到服务器的HTTP请求,然后一一记录下来。
可以捕获非HTML应用程序,例如小程序和非浏览器应用程序
Ø如何选择?
什么时候选择url的录制方式:
1)不是基于浏览器的
2)基于浏览器但是包含javascrīpt,并且发送了请求到服务器
3)使用了https安全协议
Ø两种脚本的内容比较:
1)http脚本直观,易于理解和维护
2)url内容多,可伸缩性强,记录了更详细的用户操作信息
ØHTML高级选项:
1)默认是选择描述用户行为的脚本
2)仅包含明确的URL脚本
由于内容比较多,就不再一一介绍各项的含义了。
根据自己的需求,选择适当的设置,然后点“OK”后,VuGen开始录制脚本。
在录制过程中,不要使用浏览器的“后退”功能,LoadRunner支持不太好!
◆录制过程中,在屏幕上会有一个工具条出现。
下面我们简单介绍一下各个按钮的功能。
录制完成后,按下“结束录制”按钮,VuGen自动生成用户脚本,退出录制过程。
脚
本参考下图:
3.3.完善测试脚本
当录制完一个基本的用户脚本后,在正式使用前我们还需要完善测试脚本,增强脚本的
灵活性。
一般情况下,我们通过以下方法来完善测试脚本。
3.3.1.插入事务
事务(Transaction):
为了衡量服务器的性能,我们需要定义事务。
比如:
我们在脚本
中有一个数据查询操作,为了衡量服务器执行查询操作的性能,我们把这个操作定义为一个
事务,这样在运行测试脚本时,LoadRunner运行到该事务的开始点时,LoadRunner就会开
始计时,直到运行到该事务的结束点,计时结束。
这个事务的运行时间在结果中会有反映。
插入事务操作可以在录制过程中进行,也可以在录制结束后进行。
LoadRunner运行在
脚本中插入不限数量的事务。
具体的操作方法如下:
在需要定义事务的操作前面,通过菜单或者工具栏插入。
出现下面对话框
输入该事务的名称。
注意:
事务的名称最好要有意义,能够清楚的说明该事务完成的动
作。
插入事务的开始点后,下面需要在需要定义事务的操作后面插入事务的“结束点”,结束点和事物“开始点”操作方法是一样的,脚本中事务的代码如下:
lr_start_transaction("开始事务");
/*
*中间为具体的事务操作
*/
lr_end_transaction("开始事务",LR_AUTO);
◆事务编辑器使用规则:
Ø事务必须开始和结束于单个操作中,不能跨越多个操作。
Ø事务名在脚本中(即使在操作之间)必须是唯一的。
Ø要更改某个事务的起始点,请将该事务的起始方括号拖至新位置处。
要更改某个事务的结束点,请将该事务的结束方括号拖至新位置处。
Ø使用右键单击菜单添加、重命名或删除事务。
Ø可以在现有事务中创建事务。
称为嵌套事务。
注意:
如果要嵌套事务,请在关闭第一个事务的同时或之前关闭第二个事务,否则将不能对其进行正确的分析。
3.3.2.参数化输入
如果用户在录制脚本过程中,填写提交了一些数据,比如要增加数据库记录。
这些操作
都被记录到了脚本中。
当多个虚拟用户运行脚本时,都会提交相同的记录,这样不符合实际
的运行情况,而且有可能引起冲突。
为了更加真实的模拟实际环境,需要各种各样的输入。
参数化输入是一种不错的方法。
◆用参数表示用户的脚本有两个优点:
①可以使脚本的长度变短。
②可以使用不同的数值来测试你的脚本,已达到真实的模拟效果。
例如,如果你企图搜索不同名称的图书,你仅仅需要写提交函数一次。
在回放的过程中,你可以使用不同的参数值,而不只搜索一个特定名称的值。
◆参数化包含以下两项任务:
①在脚本中用参数取代常量值。
②设置参数的属性以及数据源。
参数化仅可以用于一个函数中的参量。
你不能用参数表示非函数参数的字符串。
另外,不是所有的函数都可以参数化的。
◆创建参数化步骤:
①选中需要参数化的内容,点击右键,选择Replacewithaparameter
②在“参数名”框中键入参数的名称,或从列表中选择一个现有的参数名
③在从“参数类型”列表中选择参数类型
④点击属性,设置参数属性
⑤也可以点击菜单:
VuserParameterList,进行添加参数,设置相应的属性
◆参数化输入的讲解,我们采用一个例子的方式来进行。
lr_start_transaction("会员信息查询_01登陆");
web_reg_find("Text=主页面",LAST);
web_submit_form("userLogin.do","Snapshot=t2.inf",ITEMDATA,
"Name=logname","Value=test001",ENDITEM,
"Name=logpswd","Value=password",ENDITEM,
"Name=rands","Value=1111",ENDITEM,
"Name=submit.x","Value=61",ENDITEM,
"Name=submit.y","Value=17",ENDITEM,LAST);
lr_end_transaction("会员信息查询_01登陆",LR_AUTO);
假如有以上的一个提交数据的窗体,我们想参数化高亮显示的部分(test001)。
操作方法很
简单,我们只要选中“test001”,然后点鼠标右键
选择“Replacewithaparameter.”,出现以下窗口:
下面我们重点介绍一下参数的类型。
◆DateTime:
很简单,在需要输入日期/时间的地方,可以用DateTime类型来替代。
其属性设置也很简单,选择一种格式即可。
当然也可以定制格式。
◆GroupName:
暂时不知道何处能用到,但设置比较简单。
在实际运行中,LoadRunner
使用该虚拟用户所在的VuserGroup来代替。
但是在VuGen中运行时,GroupName将会是None
◆LoadGeneratorName:
在实际运行中,LoadRunner使用该虚拟用户所在Load
Generator的机器名来代替。
◆IterationNumber:
在实际运行中,LoadRunner使用该测试脚本当前循环的次数来
代替。
◆RandomNumber:
随机数。
很简单。
在属性设置中可以设置产生随机数的范围
◆UniqueNumber:
唯一的数。
在属性设置中可以设置第一个数以及递增的数的大小。
注意:
使用该参数类型必须注意可以接受的最大数。
例如:
某个文本框能接受的
最大数为99。
当使用该参数类型时,设置第一个数为1,递增的数为1,但100个
虚拟用户同时运行时,第100个虚拟用户输入的将是100,这样脚本运行将会出错。
注意:
这里说的递增意思是各个用户取第一个值的递增数,每个用户相邻的两次循
环之间的差值为1。
举例说明:
假如起始数为1,递增为5,那么第一个用户第一
次循环取值1,第二次循环取值2;第二个用户第一次循环取值为6,第二次为7;
依次类推。
◆VuserID:
设置比较简单。
在实际运行中,LoadRunner使用该虚拟用户的ID来代
替,该ID是由Controller来控制的。
但是在VuGen中运行时,VuserID将会是-1。
◆File:
需要在属性设置中编辑文件,添加内容,也可以从现成的数据库中取数据(下
面我们将会介绍)
◆UserDefinedFunction:
从用户开发的dll文件提取数据。
就目前我认为,这种方式
没有必要。
VuGen支持C语言的语法,在VuGen中重新编写类似的函数应该不难。
上面的例子中,我们取“文件”类型即可。
点“Properties...”按钮,进行属性设置窗口
接下来,我们点“CreateTable”按钮,弹出如下
接下来点击“EditwithNotepad”弹出文本框,即可进行编辑
备注:
在参数数据显示区,最多只能看到100行,如果数据超过、100行,只能点“EditwithNotepad”按钮,进入记事本看。
◆“Selectnextrow”有以下几种选择:
ØSequential:
按照顺序一行行的读取,每一个虚拟用户都会按照相同的顺序读取。
ØRandom:
在每次循环里随机的读取一个,但是在循环中一直保持不变
ØUnique:
唯一的数。
注意:
使用该类型必须注意数据表有足够多的数。
比如
Controller中设定20个虚拟用户进行5次循环,那么编号为1的虚拟用户取前5个数,编号为2的虚拟用户取6-10的数,依次类推,这样数据表中至少要有100个数据,否则Controller运行过程中会返回一个错误。
ØSameLineAs某个参数(比如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Loadrunner 工具