LoadRunner学习⽂档
LoadRunner
1.LoadRunner录制脚本时为什么不弹出IE浏览器?
当⼀台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以⽤下⾯的⽅法来解决。
启动浏览器,打开Internet选项对话框,切换到⾼级标签,去掉“启⽤第三⽅浏览器扩展(需要重启动)”的勾选,然后再次运⾏VuGen即可解决问题
提⽰:通常安装Firefox等浏览器后,都会勾选上⾯得选项,导致不能正常录制。因此建议运⾏LoadRunner得主机上保持⼀个⼲净的测试环境。
2.录制Web脚本时,⽣成的脚本中存在乱码该如何解决?
录制脚本前,打开录制选项配置对话框Record-Options,进⼊到Advanced标签,先勾选“Support charset”,然后选择中⽀持UTF-8。再次录制,就不会出现中⽂乱码问题了。
3.HTML-based script与URL-based script的脚本有什么区别?
使⽤“HTML-based script”的模式录制脚本,VuGen为⽤户的每个HTML操作⽣成单独的步骤,这种脚本看上去⽐较直观;使
⽤“URL-based script”模式录制脚本时,VuGen可以捕获所有作为⽤户操作结果⽽发送到服务器的HTTP请求,然后为⽤户的每个请求分别⽣成对应⽅法。
任务管理器提交更改通常,基于浏览器的Web应⽤会使⽤“HTML-based script”模式来录制脚本;⽽没有基于浏览器的Web应⽤、Web应⽤中包含了与服务器进⾏交互的Java Applet、基于浏览器的应⽤中包含了向服务器进⾏通信的JavaScript/VBScript代码、基于浏览器的应⽤中使⽤了HTTPS安全协议,这时使⽤“URL-based script”模式进⾏录制。
4.为什么脚本中添加了检查⽅法Web-find,但是脚本回放时却没有执⾏?
由于检查点功能会耗费⼀定的资源,因此LoadRunner默认关闭了对⽂本及图像的检查。要想开启检查功能,必须修改运⾏时的配置Run-time Setting。
进⼊“Run-time Setting”对话框,依次进⼊“Internet Protocol→Preferences”,勾选Checks下的“Enable Image and text check”选项即可。
检查执⾏结果时推荐使⽤web_reg_find⽅法。
5.运⾏时的Pacing设置主要影响什么?
Pacing主要⽤来设置重复迭代脚本的间隔时间。共有三种⽅法:上次迭代结束后⽴刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执⾏新的迭代。
根据实际需要设置迭代即可。通常,没有时间间隔会产⽣更⼤的压⼒。
6.运⾏时设置Log标签中,如果没有勾选“Enable logging”,则⼿⼯消息可以发送吗?
Enable logging选项仅影响⾃动⽇志记录和通过lr_log_message发送的消息。即使没有勾选,虚拟⽤户脚本中如果使⽤
lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。
7.LoadRunner 8.0版本的VuGen在录制Web Services协议的脚本时⼀切正常,⽽回放时报出错误提⽰“Error:server returned an incorrectly formatted SOAP response”。这时说明原因引起的?
造成这种情况的主要原因是LoadRunner 8.0的VuGen在录制Web Service协议的脚本时存在⼀个缺陷:如果服务器的操作系统是中⽂的,VuGen会⾃动将WSDL⽂件的头改为,因此会有上⾯的错误提⽰。
解决⽅法:把“”和“lrunner_web_sevices_”两个补丁打上即可解决。
8.VuGen⽀持Netscape的客户证书吗?
不⽀持。⽬前的VuGen 8.0版本中仅⽀持Internet Explorer的客户端证书。录制脚本时可以先从Netscape中导出所需的证书,然后将其导⼊到Internet Explorer中,并确保以相同的顺序导出和导⼊这些证书。⽽且,在每台将要录制或运⾏需要证书的Web Vuser脚本的计算机上都要重复执⾏前⾯的过程。
9.VuGen会修改录制浏览器中的代理服务器设置吗?
会修改。在开始录制基于浏览器的Web Vuser脚本时,VuGen⾸先会启动指定的浏览器。然后,VuGen会指⽰浏览器访问VuGen代理服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会⽴即将代理服务器设置更改为Localhost:7777。录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进⾏录制的过程中,不可以更改代理服务器设置,否则将⽆法正常进⾏。
10.在LoadRunner脚本如何输出当前系统时间?
LoadRunner提供了char *ctime(const time_t *time)函数,调⽤参数为⼀个Long型的整数指针,⽤于存放返回时间的数值表⽰。
调⽤语句与返回值如下⽰例:
typedef long time_t;
Action()
{
time_t t;
lr_message(“Time in seconds since 1/1/70: %ld ”,time(&t));
lr_message(“System time and date: %s”,ctime(&t));
}
输出结果为:
Time in seconds since 1/1/70: 1185329968
System time and date:Wed Jul 25 10:19:28 2007
11.⼀些Web虚拟⽤户脚本录制后⽴刻回放没有任何问题,但是当设置迭代次数⼤于1时,如果进⾏回放则只能成功迭代⼀次。为什么从第⼆次迭代开始发⽣错误?
这种现象多是由于在“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下⾯的选项“Clear cache on each iteration”这两个选项的含义是每次迭代时模拟⼀个新的⽤户及每次迭代时清除缓存。
由于脚本迭代时,init和end只能执⾏⼀次,如果每次迭代都模拟⼀个新的⽤户并清除缓存,
则⽤户登录信息将⼀并清除,因此迭代时可能会发⽣错误。
12.虚拟客户脚本“Run-time Setting”中的线程和进程运⾏⽅式的区别?
如果选择“Run Vuser as a process”,则场景运⾏时会为每⼀个虚拟⽤户创建⼀个进程;选择“Run Vuser as a thread”则将每个虚拟⽤户作为⼀个线程来运⾏,在任务管理器中只看到⼀个,这种⽅式的运⾏效率更⾼,能造成更⼤的压⼒,时默认选项。
另外,如果启⽤了IP欺骗功能,则先在Controller中选中Tools菜单下的“Expert Mode”,然后将Tools菜单下
的“Options>General”标签页中的IP地址分配⽅式也设置为与Vuser运⾏⽅式⼀致,同为线程或进程⽅式。
13.在Controller中运⾏Web相关测试场景时,经常会有很多超时错误提⽰,如何处理这类问题?
这主要有脚本的默认超时设置引起。当回放Web脚本时,有时候由于服务器响应时间较长,会产⽣超时的错误。这时需要修改脚本的运⾏时配置。
进⼊“Run-time Setting”对话框后,依次进⼊“Internet Protocol→P reference”。然后点击“Options…”按钮,进⼊⾼级设置对话框,可以修改各类超时设置的默认值。
14.为什么Windows系统中的CPU、内存等资源仍然充⾜,但是模拟的⽤户数量却上不去?
在Windows计算机的标准设置下,操作系统的默认限制只能使⽤⼏百个Vuser,这个限制与CPU或内存⽆关,主要是操作系统本⾝规定了默认的最⼤线程数所导致。要想突破Windows这个限制,须修改Windows注册表。以Windows XP Professional为例。
(1)打开注册表后,进⼊注册表项HKEY_LOCAL_MACHINE中的下列关键字:SystemCurrentControlSetControlSession ManagerSubSystems。
(2)到Windows关键字,Windows关键字如下所⽰:
% bjectDirectory=Windows
SharedSection=1024,3072,512 Windows=On SubSystemType=Windows
ServerDll=basesrv,1
ServerDll=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2
ProfileControl=Off MaxRequestThreads=16
SharedSection=1024,3072,512关键字的格式为xxxx,yyyy,zzz。其中,xxxx定义了系统范围堆的最⼤值(以KB为单位),yyyy定义每个桌⾯堆得⼤⼩。
(3)将yyyy的设置从3072更改为8192(即8MB),增加SharedSection参数值。
通过对注册表的更改,系统将允许运⾏更多的线程,
因⽽可以在计算机上运⾏更多的Vuser。这意味着能够模拟的最⼤并发⽤户数量将不受Windows操作系统的限制,⽽只受硬件和内部可伸缩性限制的约束。
核⼼提⽰:在LoadRunner 中有两个选项的设置是⾮常重要的:Recording options和Run-time settings.前者是⽤来设置录制脚本过程中的⼀些选项,⽽后者是⽤来设置回放脚本过程中的⼀些选项。
相关下载:HP Mercury LoadRunnerV8.0
在LoadRunner 中有两个选项的设置是⾮常重要的:Recording options和Run-time settings.前者是⽤来设置录制脚本过程中的⼀些选项,⽽后者是⽤来设置回放脚本过程中的⼀些选项。
1、Recording options
设置录制脚本过程中的选项,使⽤⽅法:选择tools/recording options菜单或者直接点击⼯具栏上的录制选项按钮(见下图),
弹出图所⽰对话框:
下⾯对⼀些主要的选项加以介绍。
(1)Recording选项。
HTML—based scrīpt :默认值。说明脚本中采⽤HTML页⾯的形式来表⽰,基于浏览器的应⽤程序,推荐使⽤。URL—based scrīpt :说明脚本中的表⽰是采⽤基于URL的⽅式,不是基于浏览器的应⽤程序,推荐使⽤。
(2)Browser选项。该选项⽤来设置默认的浏览器,如图所⽰
● Use default browser:默认选项,使⽤默认的浏览器。
● Manually launch an application:⼿动加载⼀个应⽤程序。
● Specify path to application:指定要运⾏的浏览器的路径。(3)Recording Proxy选项。该选项⽤来设置上⽹代理,如图所⽰:
● No proxy:不设置上⽹代理。
● Obtain the proxy settings from the reconding browser :默认选项,“· ”将浏览器⾥⾯的代理选项作为默认选项。
● Use custom proxy :⾃⼰设置上⽹代理的服务器和端⼝号。
(4)Advanced 选项。设置回放脚本过程中的⾼级选项,如图所⽰:
其中主要选项如下:
● Record think-time:默认选项。是否记录思考时间,
可以设置思考时间的最⼤值。
● Full trace recording log:是否完全记录录制过程的⽇志。
● Add comment to scrīpt for HTTP errors while recording:出现错误时是否⾃动添加注释。
2、Run-time settings
设置录制回放过程中的选项,使⽤⽅法:选择主要界⾯Vuser/Run-time settings 菜单,弹出如图所⽰的对话框。
主要选项解释如下:
(1)Run logic 选项。该选项⽤来设置脚本重复执⾏的次数,如图所⽰:Number of Iteration 是每⼀个事务的重复执⾏次数的设置框。
(2)Pacing 选项。该选项⽤来设置两次重复执⾏的时间间隔,如图所⽰:
● As soon as the previous iteration ends :在多次重复执⾏时,⼀次执⾏完马上执⾏下⼀次。
● After the previous iteration ends :在上⼀次执⾏完毕后,间隔固定的时间来执⾏下⼀次。
● At fixed in tervals:不管上⼀次执⾏是否完成,达到规定的时间后就执⾏下⼀次。
(2)Think time 选项。该选项⽤来设置⽤户操作时的思考时间,如图所⽰:
● Ignore think time :运⾏脚本的时候忽略思考停顿时间。
● Replay think time :设置思考时间的延迟。
● As recorded :根据录制时的思考时间来运⾏。
● Multiply recorded think time by :根据录制时的思考时间的整数倍来运⾏。
● Use ra ndom percentage of recorded think time :
设置⼀个最⼤值和最⼩值,从中选出⼀个随机值。
● Limit think time to :设置think time 的最⼤值,如果录制值超过最⼤值,就以最⼤值为准。
(4)Miscellaneous选项。该选项是⼀个混合选项,涉及的功能⽐较杂,如图所⽰:
● Error Handing:设置运⾏遇到错误时的处理,⼀般不需要改动。
● Multithreading:设置默认进程或线程运⾏。
Run Vuser as a process:把每⼀个虚拟⽤户当作⼀个进程。
Run Vuser as a thread:把每⼀个虚拟⽤户当作⼀个线程,默认值,效率更⾼。
● Automatic transactions:设置事务模式。
Define each action as a transaction:将⼀个action看作⼀个事务。
Define each step as a transaction:将每⼀个操作步骤看作⼀个事务。
(5)Network 选项。该选项⽤来设置⽹络连接的速度,如图所⽰:
● Use maximum bandwidth:使⽤⽹络最⼤的带宽。
● Use bandwidth:选项⽬前主流的接⼊⽅式。
● Use custom bandwidth(bps) :⾃定义带宽。
核⼼提⽰:明确压⼒点,根据压⼒点设计多少种场景组合
第⼀步:计划测试
1、明确压⼒点,根据压⼒点设计多少种场景组合
2、把⽂档(包括多少种场景组合、场景与场景组合条件的对应表)写好
3、如果监测UNIX机器,在被监测的机器需要安装监测Unix的进程
4、让开发⼈员帮助我们准备测试数据或他们写相关的⽂档我们来准备数据
5、让开发⼈员做⼀个恢复数据的脚本,以便于我们每次测试的时候都能够有⼀个相同的环境
6、针对每⼀个模块包括四个⼦⽂件夹:如模块A下包括“脚本”“场景”“结果”“图表” 四个⼦⽂件夹,每个⼦⽂件夹储存对应的⽂件,如下表所⽰
其中:结果名“1场景”是在场景中的“Results Setting”中设置的,具体的设置见“建⽴场景”部分,这⾥也可以有另外⼀种⽅法:在打开模板设置,如下:
选中“Automatically save the session as:”并且在“%ResultDir%”后⾯填写你想保存的⽂件名,当你打开
某个lrr⽂件时,系统⾃动在当前⽬录中⽣成⼀个⽂件保存分析图表,如下图所⽰:
第⼆步:⽣成测试脚本
1、把登陆部分放到“vuser_init”部分,把需要测试的内容部分放到“Action”部分执⾏;但是如果是模拟多个⽤户登陆系统,则要把登陆部分放到Action部分来实现
2、录制脚本后,想查询某个函数的原型,按“F1”键
3、确认脚本中哪些参数是需要进⾏参数化的(最好能可以和开发⼈员⼀起确认)
4、在脚本参数化时把函数web_submit_data()中的ITEMDATA后⾯的数据参数化,因为这些数据是传递给服务器的,当然也可以把⼀个函数中的所有相同变量都替换掉
5、脚本中⽆⽤的部分⽤“/*”“*/”“//”注释掉,但最好不要删除
6、调试脚本遵循以下原则:
确认在VU⾥SUSI(单⽤户单循环次数single user & single iteration)
确认在VU⾥SUMI(单⽤户多循环次数single user & multi iteration)
确认在controller中MUSI(多⽤户单循环次数multi user & single iteration)
确认在controller中MUMI(多⽤户多循环次数multi user & multi iteration)
7、事务的名称取的有意义便于事务之间的区分,把所有的事务名都记录在⼀起,便于在测试结果概要中区分它们,这要写成⼀个表:某次测试有哪些模块,每个模块中有哪些事务(见对应的“关系表”)
8、在“Parameter List”中可以选择参数类型“Random Number”,使某⼀个参数取设定的范围内的随机值
第三步:建⽴场景
1、把场景名称编号,并制定出⼀份场景名称和场景条件组合的对应表。⽐如,场景m对应于“某⼀模块_xx个vu _分z台machine”(见“关系表”中的例⼦)
2、根据上⾯的对应表把场景设置好,需要设置的要素如下:总体多少个⽤户、分多少个组、每个组有多少个⽤户、分⼏台机器运⾏、每个脚本迭代多少次、是否回放think time时间、检查Parameter List 中每个参数设置是否正确、参数从表中取值间隔

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。