Loadrunner11常见问题整理要点.docx
《Loadrunner11常见问题整理要点.docx》由会员分享,可在线阅读,更多相关《Loadrunner11常见问题整理要点.docx(62页珍藏版)》请在冰豆网上搜索。
Loadrunner11常见问题整理要点
一、LoadRunner常见问题整理
1.LoadRunner录制脚本时为什么不弹出IE浏览器?
(1)当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。
提示:
通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。
因此建议运行LoadRunner得主机上保持一个干净的测试环境。
LR录制脚本的浏览器必须设置成成默认浏览器,最好就用一个IE8浏览器。
(2)工具--Internet选项--高级--取消<启用第三方浏览器扩展(需重启)>和<启用内存联机保护>
(3)IE选项——安全,自定义级别设为低.
(4)在我的电脑>属性>高级>性能设置>数据执行保护,将lr的bin>vugen.exe加入,成功。
修改此处TD使用不正常。
(5)在启动LR的vuser开始录制的Programtorecord自己指定MicrosoftInternetExplorer安装目录下的exe。
(6)在lr的安装目录(例如D:
\ProgramFiles\Mercury\LoadRunner\bin)下,单击register_vugen.bat文件,然后重新启动一下。
(好多目录下没有该文件)
(7)成功录制脚本N次后,再次录制时IE浏览器就打不开了?
在任务管理器中杀掉iexplore.exe进程树,因为已经打开IE浏览器进程了,所以LR11录制脚本打不开。
关闭Vuser脚本生成器重新打开,重新录制,可解决问题。
(8)成功录制脚本N次后,再次录制时IE浏览器就打不开了?
此时关掉所有杀毒软件,防火墙.问题解决。
奇葩事,本来还以为是IP<172.10.11.221>和<172.10.10.221>来回互换导致的呢。
2.安装Loadrunner11的时候,系统提示“安装程序已启动,正等待重新启动…….”
解决办法:
进入注册表(开始-运行-regedit),通过修改注册表的方法来解决。
除了LoadRunner安装时遗留下的垃圾文件,还必须进行以下操作,依次查找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager,找到“PendingFileRenameOperations”值,并删除其中所有数据,之后就可以正常安装LoadRunner。
3.启动LoadRunner11自带的web程序报错:
(开始-HP-Loadrunner-Samples-web-StartwebServer)
出错:
Couldnotopenhttpport1080-portisalreadyusedbyanotherserver(WSAEADDRINUSE)
找到xitami.cfg,将protbase=1000改为2000。
C:
\ProgramFiles\MercuryInteractive\MercuryLoadRunner\WebTours\xitami.cfg
4.打开LoadRunner示例程序webtours的“FindFlight”界面,出现日历控件无法加载,提示JAVA安装程序已被阻止?
控制面板-Java-安全,调低,例外站点添加webtours的程序链接,备注JDK1.6安全选项只有证书,没有安全等级设置,JDK1.7版本及以上才有。
5.录制Web脚本时,生成的脚本中存在乱码该如何解决?
录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Supportcharset”,然后选择中支持UTF-8。
再次录制,就不会出现中文乱码问题。
6.HTML-basedscript与URL-basedscript的脚本有什么区别?
使用“HTML-basedscript”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-basedscript”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。
通常,基于浏览器的Web应用会使用“HTML-basedscript”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的JavaApplet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-basedscript”模式进行录制。
7.为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行?
由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。
要想开启检查功能,必须修改运行时的配置Run-timeSetting。
进入“Run-timeSetting”对话框,依次进入“InternetProtocol→Preferences”,勾选Checks下的“EnableImageandtextcheck”选项即可。
检查执行结果时推荐使用web_reg_find方法。
8.运行时的Pacing设置主要影响什么?
Pacing主要用来设置重复迭代脚本的间隔时间。
共有三种方法:
上次迭代结束后立刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执行新的迭代。
根据实际需要设置迭代即可。
通常,没有时间间隔会产生更大的压力。
9.运行时设置Log标签中,如果没有勾选“Enablelogging”,则手工消息可以发送吗?
Enablelogging选项仅影响自动日志记录和通过lr_log_message发送的消息。
即使没有勾选,虚拟用户脚本中如果使用lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。
10.LoadRunner8.0版本的VuGen在录制WebServices协议的脚本时一切正常,而回放时报出错误提示“Error:
serverreturnedanincorrectlyformattedSOAPresponse”。
这时说明原因引起的?
造成这种情况的主要原因是LoadRunner8.0的VuGen在录制WebService协议的脚本时存在一个缺陷:
如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为
xmlversion=”1.0”encoding=”zh_cn”?
>,因此会有上面的错误提示。
解决方法:
把“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”两个补丁打上即可解决。
11.VuGen支持Netscape的客户证书吗?
不支持。
目前的VuGen8.0版本中仅支持InternetExplorer的客户端证书。
录制脚本时可以先从Netscape中导出所需的证书,然后将其导入到InternetExplorer中,并确保以相同的顺序导出和导入这些证书。
而且,在每台将要录制或运行需要证书的WebVuser脚本的计算机上都要重复执行前面的过程。
12.VuGen会修改录制浏览器中的代理服务器设置吗?
会修改。
在开始录制基于浏览器的WebVuser脚本时,VuGen首先会启动指定的浏览器。
然后,VuGen会指示浏览器访问VuGen代理服务器。
为此,VuGen会修改录制浏览器上的代理服务器设置。
默认情况下,VuGen会立即将代理服务器设置更改为Localhost:
7777。
录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。
因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行。
13.在LoadRunner脚本如何输出当前系统时间?
LoadRunner提供了char*ctime(consttime_t*time)函数,调用参数为一个Long型的整数指针,用于存放返回时间的数值表示。
调用语句与返回值如下示例:
typedeflongtime_t;
Action()
{
time_tt;
lr_message(“Timeinsecondssince1/1/70:
%ld\n”,time(&t));
lr_message(“Systemtimeanddate:
%s”,ctime(&t));
}
输出结果为:
Timeinsecondssince1/1/70:
1185329968
Systemtimeanddate:
WedJul2510:
19:
282007
14.一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。
为什么从第二次迭代开始发生错误?
这种现象多是由于在“Run-timeSetting”的“BrowseEmulation”的设置中,勾选了“Simulateanewuseroneachiteration”及其下面的选项“Clearcacheoneachiteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。
由于脚本迭代时,init和end只能执行一次,如果每次迭代都模拟一个新的用户并清除缓存,则用户登录信息将一并清除,因此迭代时可能会发生错误。
15.虚拟客户脚本“Run-timeSetting”中的线程和进程运行方式的区别?
如果选择“RunVuserasaprocess”,则场景运行时会为每一个虚拟用户创建一个进程;选择“RunVuserasathread”则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,这种方式的运行效率更高,能造成更大的压力,时默认选项。
另外,如果启用了IP欺骗功能,则先在Controller中选中Tools菜单下的“ExpertMode”,然后将Tools菜单下的“Options>General”标签页中的IP地址分配方式也设置为与Vuser运行方式一致,同为线程或进程方式。
16.在Controller中运行Web相关测试场景时,经常会有很多超时错误提示,如何处理这类问题?
这主要有脚本的默认超时设置引起。
当回放Web脚本时,有时候由于服务器响应时间较长,会产生超时的错误。
这时需要修改脚本的运行时配置。
进入“Run-timeSetting”对话框后,依次进入“InternetProtocol→Preference”。
然后点击“Options…”按钮,进入高级设置对话框,可以修改各类超时设置的默认值。
17.为什么Windows系统中的CPU、内存等资源仍然充足,但是模拟的用户数量却上不去?
在Windows计算机的标准设置下,操作系统的默认限制只能使用几百个Vuser,这个限制与CPU或内存无关,主要是操作系统本身规定了默认的最大线程数所导致。
要想突破Windows这个限制,须修改Windows注册表。
以WindowsXPProfessional为例。
(1)打开注册表后,进入注册表项HKEY_LOCAL_MACHINE中的下列关键字:
System\CurrentControlSet\Control\SessionManager\SubSystems。
(2)找到Windows关键字,Windows关键字如下所示:
%SystemRoot%\system32\csrss.exebjectDirectory=\Windows
SharedSection=1024,3072,512Windows=OnSubSystemType=WindowsServerDll=basesrv,1
ServerDll=winsrv:
UserServerDllInitialization,3ServerDll=winsrv:
ConServerDllInitialization,2
ProfileControl=OffMaxRequestThreads=16
SharedSection=1024,3072,512关键字的格式为xxxx,yyyy,zzz。
其中,xxxx定义了系统范围堆的最大值(以KB为单位),yyyy定义每个桌面堆得大小。
(3)将yyyy的设置从3072更改为8192(即8MB),增加SharedSection参数值。
通过对注册表的更改,系统将允许运行更多的线程,因而可以在计算机上运行更多的Vuser。
这意味着能够模拟的最大并发用户数量将不受Windows操作系统的限制,而只受硬件和内部可伸缩性限制的约束
18.Controller中设置了用户并发数量,但是运行时为何初始化的用户数量少于实际数量?
主要时设置问题。
在Tools→options→Run-timesetting中可以设置每次最多初始化的虚拟用户。
如果需要100个并发用户,则将该值设置为大于100的数值。
另外,注意LoadRunner相关协议License的更新,确保使用的License能够允许所需要的并发用户数量。
19.如何让场景的用户执行发生错误继续运行,以保证不间断进行压力测试?
用VuGen打开虚拟用户脚本后,进入“Run-timeSettings”对话框后,依次进入“General→Miscellaneous”,可以看到Miscellaneous设置中关于“ErrorHandling”的配置。
勾选“Continueonerror”即可让虚拟用户发生错误继续运行。
20.为什么.NET虚拟用户有时不能在远程主机执行?
主要时LoadRunner的版本问题。
根据笔者的经验,如果是MicrosoftVisualStudio2005开发的虚拟用户,同时LoadRunner客户端的版本低于8.1,执行Controller的主机将会发生错误。
因此要想正确的运行MicrosoftVisualStudio2005开发的.NET虚拟用户,客户端最好装8.1以上的版本,Controller的主机则安装8.0和8.1两个版本均可。
此外,产生压力的LoadRunner客户端上预先应该安装.NET运行环境,如果MicrosoftVisualStudio2005开发的是.NET虚拟用户,则应该安装Microsoft.NETFrameworkSDKv2.0。
21.测试分析结果中会统计Action时间,而实际上可能并不须要这些数据,如何只显示自己定义的用户事务?
进入脚本的运行时设置,依次进入General→Miscellaneous。
默认情况下,自动事务配置“AutomaticTransactions”下有两个选项:
第一个是把脚本的Action部分定义为一个事务;第二个时把脚本的每一部分定义为一个事务。
去掉这两个勾选后,测试结果将会只显示自己定义的用户事务。
22.测试结果中,Summary和平均事务响应时间图里的各个事务的最大值、平均值、最小值为什么显示不一样?
主要是受采样时间的影响。
Summary里的事务平均响应时间是根据整个场景执行过程得到的数据计算所得,最大值与最小值也是从整个场景中得到的。
平均事务响应时间图主要时按照LoadRunner分析出来的采样频率来获取事务响应时间的最大值与最小值,然后计算平均值。
可以通过“SetGranularity”来修改平均事务响应时间图的采样频率。
如果把“Granularity”设为场景执行时间,则统计结果将会一致。
23.统计结果中的总点击量TotalHits时用户的鼠标点击次数吗?
TotalHits不时按照用户的鼠标点击次数来计算的,而是按照各个虚拟客户端向后台发起的总的请求数来进行统计的。
例如在向服务器请求的一个页面中,如果该页面包含5个图片,用户只要单击鼠标就可以访问该页面,而单个虚拟用户在LoadRunner访问的点击量为1+5=6次。
24.有些Web测试结果分析图(例如每秒返回页面数)在测试结果分析图中无法看到,如何进行配置?
用VuGen打开虚拟用户脚本后,进入“Run-timeSettings”对话框后,依次进入“InternetProtocol>Preference”,可以看到一些Web性能图配置。
勾选上面得选项后,Controller将会在测试执行过程中生成数据,然后可在Analysis中查看相应的性能结果分析图。
二、性能测试结果-Windows资源分析
1.平均事务响应时间AverageTransationResponseTime
优秀:
<2s
良好:
2-5s
及格:
6-10s
不及格:
>10s
2.每秒点击率HitsperSecond
当增大系统的压力(或增加并发用户数)时,吞吐率和TPS的变化曲线呈大体一致,
则系统基本稳定若压力增大时,吞吐率的曲线增加到一定程度后出现变化缓慢,
甚至平坦,很可能是网络出现带宽瓶颈.同理若点击率/TPS曲线出现变化缓慢或者平坦,说明服务器开始出现.
3.请求响应时TimetoLastByte
4.每秒系统处理事务数 Transactionpersecond
5.吞吐量Throughout
6.CPU利用率Processor/%ProcessorTime
好:
70%
坏:
85%
很差:
90%+
7.数据库操作消耗的CPU时间 Processor/%UserTime
如果该值较大,可以考虑是否能通过友好算法等方法降低这个值。
如果该服务器是数据库服务器,Processor\%UserTime值大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,
此时可以考虑对数据库系统进行优化。
8.核心态CPU平均利用率Processor/%PrivilegedTime
如果该参数值和"PhysicalDisk"参数值一直很高,表明I/O有问题。
可考虑更换更快的硬盘系统
9.处理列队中的线程数Processor/ProcessorQueueLength
如果该值保持不变(>=2)个并且%ProcessorTime超过90%,那么可能存在处理器瓶颈。
如果发现超过2,而处理器的利用率却一直很低,那么或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈。
10.文件系统缓存Memory/CacheBytes 50%的可用物理内存
11.剩余的可用内存Memory /AvaiableMbytes 至少要有10%的物理内存值
12.每秒下载页数Memory /pages/sec
好:
无页交换
坏:
CPU每秒10个页交换
很差:
更多的页交换。
13.页面读取操作速率Memory /pageread/sec。
如果页面读取操作速率很低,同时%DiskTime和Avg.DiskQueueLength的值很高,则可能有磁盘瓶径。
但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。
14.物理磁盘利用率PhysicalDisk/%DiskTime
好:
<30%
坏:
<40%
很差:
<50%+
15.物理磁盘平均磁盘I/O队列长度PhysicalDisk/Avg.DiskQueueLength
该值应不超过磁盘数的1.5~2倍。
要提高性能,可增加磁盘
16.网络吞吐量 NetworkInterface/BytesTotal/sec
判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽,结果应该小于50%
17.数据高速缓存区命中率 命中率应大于0.90最好
18.共享区库缓存区命中率 命中率应大于0.99
19.监控SGA中字典缓冲区的命中率 命中率应大于0.85
20.检测回滚段的争用 应该小于1%
21.监控内存和硬盘的排序比率 最好使它小于10%
三、LoadRunner监控Linux系统资源详解
Averageload:
AveragenumberofprocessessimultaneouslyinReadystateduringthelastminute
上一分钟同时处于“就绪”状态的平均进程数
Collisionrate
CollisionsperseconddetectedontheEthernet
每秒钟在以太网上检测到的冲突数。
Contextswitchesrate
Numberofswitchesbetweenprocessesorthreads,persecond
每秒钟在进程或线程之间的切换次数。
CPUutilization
PercentoftimethattheCPUisutilized
CPU的使用时间百分比。
Diskrate
Rateofdisktransfers
磁盘传输速率。
Incomingpacketserrorrate
ErrorspersecondwhilereceivingEthernetpackets
接收以太网数据包时每秒钟接收到的错误数。
Incomingpacketsrate
IncomingEthernetpacketspersecond
每秒钟传入的以太网数据包数。
Interruptrate
Numberofdeviceinterruptspersecond
每秒内的设备中断数。
Outgoingpacketserrorsrate
ErrorspersecondwhilesendingEthernetpackets
发送以太网数据包时每秒钟发送的错误数。
Outgoingpacketsrate
OutgoingEthernetpacketspersecond
每秒钟传出的以太网数据包数。
Page-inrate
Numberofpagesreadtophysicalmemory,persecond
指标表明的是每秒交换到物理内存中的页面数。
Page-outrate
Numberofpageswrittentopagefile(s)andremovedfromphysicalmemory,persecond
表示每秒从物理内存中移出或者写入到页面数。
Pagingrate
Numberofpagesreadtophysicalmemoryorwrittentopagefile(s),persecond
每秒钟读入物理内存或写入页面文件中的页数。
Swap-inrate
Numberofprocessesbeingswapped
每秒交换到内存的进程数。
Swap-outrate
Numberofprocessesbeingswapped
每秒从内存交换出来的进程数。
SystemmodeCPUutilization
PercentoftimethattheCPUisu