2023年11月27日发(作者:)
LoadRunner11-遇到问题及解决办法(汇总)
LoadRunner11-遇到问题及解决办法
1、LoadRunner超时错误:在录制Web服务器端,如果超过120秒服务器协议脚本回放时超时情况经常出现,产⽣错误的原因也有很多,解
决的⽅法也不同。
错误现象1:Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)。
错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送⼀个请求到端还没有返回结果,则出现超
时错误。
解决办法:⾸先在运⾏环境中对超时进⾏设置,默认的超时时间可以设置长⼀些,再设置多次迭代运⾏,如果还有超时现象,需要
在“Runtime Setting”>“Internet Protocol:Preferences”>“Advanced”区域中设置⼀个“winlnet replay instead of sockets”选项,再回放是否成
功。
2.LoadRunner脚本中出现乱码:在录制Web协议脚本时出现中⽂乱码,在回放脚本时会使回放停⽌在乱码位置,脚本⽆法运⾏。
错误现象:某个链接或者图⽚名称为中⽂乱码,脚本运⾏⽆法通过。
错误分析:脚本录制可能采⽤的是URL-based script⽅式,如果程序定义的字符集合采⽤的是国际标准,脚本就会出现乱码现象。
解决办法:重新录制脚本,在录制脚本前,打开录制选项配置对话框进⾏设置,在“Recording Options”的“Advanced”选项⾥先将“Surport
Charset”选中,然后选中⽀持“UTF-8”的选项。
3.LoadRunner HTTP服务器状态代码:在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页⾯-404错误
提⽰、-500错误提⽰。
错误现象1:-404 Not Found服务器没有找到与请求URI相符的资源,但还可以继续运⾏直到结束。
错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过⼀次,回放时不可再重复提交同样的资源,⽽需要更改提交资源的内容,
每次回放⼀次脚本都要改变提交的数据,保证模拟实际环境,造成⼀定的负载压⼒。
解决办法:在出现错误的位置进⾏脚本关联,在必要时插⼊相应的函数。
错误现象2:-500 Internal Server Error服务器内部错误,脚本运⾏停⽌。
错误分析:服务器碰到了意外情况,使其⽆法继续回应请求。
解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进⾏检查,此时需要此程序的开发⼈员配合来解决,⽽且产⽣的
原因根据实际情况来定,测试⼈员⽆法单独解决问题,⽽且应该尽快解决,以便于后⾯的测试。
4.LoadRunner请求⽆法找到:在录制Web协议脚本回放脚本的过程中,会出现请求⽆法找到的现象,⽽导致脚本运⾏停⽌。
错误现象:Action.c(41): Error -27979: Requested form. not found [MsgId: MERR-27979]
Action.c(41): web_submit_form. highest severity level was "ERROR",0 body bytes, 0 header bytes [MsgId: MMSG-27178]"
这时在tree view中看不到此组件的相关URL。
错误分析:所选择的录制脚本模式不正确,通常情况下,基于浏览器的Web应⽤会使⽤“HTML-based script”模式来录制脚本;⽽没有基于浏
览器的Web应⽤、Web应⽤中包含了与服务器进⾏交互的代码、基于浏览器的应⽤中使⽤HTTPSJava Applet、基于浏览器的应⽤中包含了
向服务器进⾏通信的JavaScript/VBScript安全协议,这时则使⽤“URL-based script”模式进⾏录制。
解决办法:打开录制选项配置对话框进⾏设置,在“Recording Options”的“Internet Protocol”选项⾥的“Recording”中选择“Recording
Level”为“HTML-based script”,单击“HTML Advanced”,选择“Script. Type”为“A script. containing explicit”。然后再选择使⽤“URL-based
script”模式来录制脚本。
5. Abnormal termination, caused by mdrv process termination
解决:修改LR中的D:Program FilesMercuryLoadRunnerdatprotocols 中的信息,在[Vugen]下⾯新加⼀条MaxThreadPerProcess=
要设置的vuser数量 。
6.LoadRunner录制脚本时为什么不弹出IE浏览器?
答:启动浏览器,打开Internet选项对话框,切换到⾼级标签,去掉“启⽤第三⽅浏览器扩展(需要重启动)”的勾选,然后再次运⾏VuGen即
可解决问题;
nner录制脚本时提⽰默认浏览器不⽀持解决⽅法?
答:在Recording Options->Browser->修改浏览器设置->改为IE浏览器访问,重新启动LoadRunner录制脚本就ok;
录制Web脚本时,⽣成的脚本中存在乱码该如何解决?
答:录制脚本前,打开录制选项配置对话框Record-Options,进⼊到Advanced标签,先勾选“Support charset”,选择⽀持UTF-8。重新录
制,就不会出现中⽂乱码问题了。
-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”模式进⾏录制。
10.为什么脚本中添加了检查⽅法Web-find,但是脚本回放时却没有执⾏?
答:LoadRunner默认关闭了对⽂本及图像的检查。进⼊“Run-time Setting”对话框,依次进⼊“Internet Protocol→Preferences”,勾选Checks
下的“Enable Image and text check”选项即可。
备注:推荐web_reg_find函数针对⽂本及图像的检查。
11.运⾏时的Pacing设置主要影响什么?
答:Pacing主要⽤来设置重复迭代脚本的间隔时间。共有三种⽅法:上次迭代结束后⽴刻开始、上次迭代结束后等待固定时间、按固定或随
机的时间间隔开始执⾏新的迭代。根据实际需要设置迭代即可。通常,没有时间间隔会产⽣更⼤的压⼒。
12.运⾏时设置Log标签中,如果没有勾选“Enable logging”,则⼿⼯消息可以发送吗?
答:Enable logging选项仅影响⾃动⽇志记录和通过lr_log_message发送的消息。即使没有勾选,虚拟⽤户脚本中如果使⽤lr_message、
lr_output_message、lr_error_message,仍然会记录其发出的消息。
nner如何在IE7+Win2003环境下录制脚本?
答: ⽅法⼀: 巧借IE6内核录制脚本
在系统安装⽬录下C:,然后在Recording Options->Browser,指定Ie6内核;设置完成确认后,即可以⽤LoadRunner
录制脚本;
⽅法⼆ 查看了下官⽅提供LoadRunner解决⽅法: 安装LoadRunner 8.1 Feature Pack 4->然后安装:Internet Explorer 7 (IE 7) support for
LoadRunner 8.1 Feature Pack 4;
nner 8.0版本的VuGen在录制Web Services协议的脚本时⼀切正常,但回放时报错误“Error:server returned an incorrectly
formatted SOAP response”?
答:原因是LoadRunner 8.0的VuGen在录制Web Service协议的脚本时存在⼀个缺陷:如果服务器的操作系统是中⽂的,VuGen会⾃动将
WSDL⽂件的头改为,因此会有上⾯的错误提⽰。 所以需要打上补
丁:“LR80WebservicesFPI_”和“lrunner_web_sevices_path_”。
⽀持Netscape的客户证书吗?
答:不⽀持。⽬前的VuGen 8.0版本中仅⽀持Internet Explorer的客户端证书。录制脚本时可以先从Netscape中导出所需的证书,然后将其
导⼊到Internet Explorer中,并确保以相同的顺序导出和导⼊这些证书。⽽且,在每台将要录制或运⾏需要证书的Web Vuser脚本的计算机上
都要重复执⾏前⾯的过程。
16. LoadRunner场景执⾏时第1次报错 error:missing newline in d:,第2次场景执⾏时不报错?
答:Loadruner参数设置⽂本时,需要在最后⼀个参数后回车确认⼀下。
nner场景执⾏时出现错误:“load generator is currently running the maximum number of vuser of this type”
答:Loadruuner默认场景并发最⼤⽤户数=1000,所以需要设置load generator->Details->Vuser limits->Other Vusers更换参数值即可,如
10000;当然需要你的序列号是⽀持,⽬前最⼤⽀持6.2w的序列号。
会修改录制浏览器中的代理服务器设置吗?
答:会修改。在开始录制基于浏览器的Web Vuser脚本时,VuGen⾸先会启动指定的浏览器。然后,VuGen会指⽰浏览器访问VuGen代理
服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会⽴即将代理服务器设置更改为Localhost:7777。录制
之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进⾏录制的过程中,不可以更改代理服务器设置,否则将⽆
法正常进⾏。
19.在LoadRunner脚本如何输出当前系统时间?
答:LoadRunner提供了char *ctime(const time_t *time)函数,调⽤参数为⼀个Long型的整数指针,⽤于存放返回时间的数值表⽰。
ner在⼀些Web虚拟⽤户脚本录制后⽴刻回放没有任何问题,但是当设置迭代次数⼤于1时,如果进⾏回放则只能成功迭代⼀次。
从第⼆次迭代开始发⽣错误?
答:“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下⾯的选项“Clear cache on
each iteration”这两个选项的含义是每次迭代时模拟⼀个新的⽤户及每次迭代时清除缓存。
nner中“Run-time Setting”中的线程和进程运⾏⽅式的区别?
答:如果选择“Run Vuser as a process”,则场景运⾏时会为每⼀个虚拟⽤户创建⼀个进程;选择“Run Vuser as a thread”则将每个虚拟⽤户
作为⼀个线程来运⾏,在任务管理器中只看到⼀个,这种⽅式的运⾏效率更⾼,能造成更⼤的压⼒,时默认选项。另外,如果启
⽤了IP欺骗功能,则先在Controller中选中Tools菜单下的“Expert Mode”,然后将Tools菜单下的“Options>General”标签页中的IP地址分配⽅
式也设置为与Vuser运⾏⽅式⼀致,同为线程或进程⽅式。
22.在Controller中运⾏Web相关测试场景时,经常会有很多超时错误提⽰,如何处理这类问题?
答:这主要有脚本的默认超时设置引起。当回放Web脚本时,有时候由于服务器响应时间较长,会产⽣超时的错误。这时需要修改脚本的运
⾏时配置。进⼊“Run-time Setting”对话框后,依次进⼊“Internet Protocol→Preference”。然后点击“Options…”按钮,进⼊⾼级设置对话框,
可以修改各类超时设置的默认值。
23.为什么Windows系统中的CPU、内存等资源仍然充⾜,但是模拟的⽤户数量却上不去?
答:在Windows计算机的标准设置下,操作系统的默认限制只能使⽤⼏百个Vuser,这个限制与CPU或内存⽆关,主要是操作系统本⾝规定
了默认的最⼤线程数所导致。要想突破Windows这个限制,须修改Windows注册表。以Windows XP Professional为例。
(1)打开注册表后,进⼊注册表项HKEY_LOCAL_MACHINE中的下列关键字:SystemCurrentControlSetControlSession
ManagerSubSystems。 (2)找到Windows关键字,Windows关键字如下所⽰: %SystemRoot%
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操作系统的限制,⽽只受硬件和内部可伸缩
性限制的约束。
ller中设置了⽤户并发数量,但是运⾏时为何初始化的⽤户数量少于实际数量?
答:主要时设置问题。在Tools→options→Run-time setting中可以设置每次最多初始化的虚拟⽤户。如果需要100个并发⽤户,则将该值设
置为⼤于100的数值。另外,注意LoadRunner相关协议License的更新,确保使⽤的License能够允许所需要的并发⽤户数量。
25.如何让场景的⽤户执⾏发⽣错误继续运⾏,以保证不间断进⾏压⼒测试?
答:⽤VuGen打开虚拟⽤户脚本后,进⼊“Run-time Settings”对话框后,依次进⼊“General→Miscellaneous”,可以看到Miscellaneous设置
中关于“Error Handling”的配置。勾选“Continue on error”即可让虚拟⽤户发⽣错误继续运⾏。
26.为什么.NET虚拟⽤户有时不能在远程主机执⾏?
答:主要时LoadRunner的版本问题。根据笔者的经验,如果是Microsoft Visual Studio 2005开发的虚拟⽤户,同时LoadRunner客户端的版
本低于8.1,执⾏Controller的主机将会发⽣错误。
因此要想正确的运⾏Microsoft Visual Studio 2005开发的.NET虚拟⽤户,客户端最好装8.1以上的版本,Controller的主机则安装8.0和8.1两
个版本均可。此外,产⽣压⼒的LoadRunner客户端上预先应该安装.NET运⾏环境,如果Microsoft Visual Studio 2005开发的是.NET虚拟⽤
户,则应该安装Microsoft .NET Framework SDK v2.0。
27.测试分析结果中会统计Action时间,⽽实际上可能并不须要这些数据,如何只显⽰⾃⼰定义的⽤户事务?
答:进⼊脚本的运⾏时设置,依次进⼊General→Miscellaneous。默认情况下,⾃动事务配置“Automatic Transactions”下有两个选项:第⼀
个是把脚本的Action部分定义为⼀个事务;第⼆个时把脚本的每⼀部分定义为⼀个事务。去掉这两个勾选后,测试结果将会只显⽰⾃⼰定义
的⽤户事务。
28.测试结果中,Summary和平均事务响应时间图⾥的各个事务的最⼤值、平均值、最⼩值为什么显⽰不⼀样?
答:主要是受采样时间的影响。Summary⾥的事务平均响应时间是根据整个场景执⾏过程得到的数据计算所得,最⼤值与最⼩值也是从整个
场景中得到的。平均事务响应时间图主要时按照LoadRunner分析出来的采样频率来获取事务响应时间的最⼤值与最⼩值,然后计算平均
值。可以通过“Set Granularity”来修改平均事务响应时间图的采样频率。如果把“Granularity”设为场景执⾏时间,则统计结果将会⼀致。
29.统计结果中的总点击量Total Hits时⽤户的⿏标点击次数吗?
答:Total Hits不时按照⽤户的⿏标点击次数来计算的,⽽是按照各个虚拟客户端向后台发起的总的请求数来进⾏统计的。例如在向服务器请
求的⼀个页⾯中,如果该页⾯包含5个图⽚,⽤户只要单击⿏标就可以访问该页⾯,⽽单个虚拟⽤户在LoadRunner访问的点击量为1+5=6
次。
30.有些Web测试结果分析图(例如每秒返回页⾯数)在测试结果分析图中⽆法看到,如何进⾏配置?
答:⽤VuGen打开虚拟⽤户脚本后,进⼊“Run-time Settings”对话框后,依次进⼊“Internet Protocol>Preference”,可以看到⼀些Web性能图
配置。勾选上⾯得选项后,Controller将会在测试执⾏过程中⽣成数据,然后可在Analysis中查看相应的性能结果分析图。 、Step download
timeout (120 seconds)
解决办法:
1、修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以⼀次都修改了,HTTP-request connect timeout,HTTP-
request receieve timeout,Step download timeout,分别建议修改为600、600、5000;run time setting设置完了后记住还需要在control组
件的option的run time setting中设置相应的参数;
2、办法⼀不能解决的情况下,解决办法如下: 设置runt time setting中的internet protocol-preferences中的advaced区域有⼀个winlnet
replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作⽤,此法来⾃zee的资料。
31.问题描述Connection reset by peer
这个问题不多遇见,⼀般是由于下载的速度慢,导致超时,所以,需要调整⼀下超时时间
解决办法:Run-time setting窗⼝中的‘Internet Protocol’-‘Preferences’设置set advanced options(设置⾼级选项),重新设置⼀下“HTTP-
request connect timeout(sec),可以稍微设⼤⼀些”;
32.问题描述connection refused
这个的错误的原因⽐较复杂,也可能很简单也可能需要查看好⼏个地⽅,解决起来不同的操作系统⽅式也不同;
1、⾸先检查是不是连接weblogic服务过⼤部分被拒绝,需要监控weblogic的连接等待情况,此时需要增加acceptBacklog,每次增加25%来
提⾼看是否解决,同时还需要增加连接池和调整执⾏线程数,(连接池数*Statement Cache Size)的值应该⼩于等于oracle数据库连接数最
⼤值;
2、如果⽅法⼀操作后没有变化,此时需要去查看服务器操作系统中是否对连接数做了限制,AIX下可以直接vi⽂件limits修改其中的连接限制
数,还有tcp连接等待时间间隔⼤⼩,wiodows类似,只不过wendows修改注册表,具体修改⽅法查⼿册,注册表中有TcpDelayTime项;
33.问题描述open many files
答:问题⼀般都在压⼒较⼤的时候出现,由于服务器或者应⽤中间件本⾝对于打开的⽂件数有最⼤值限制造成,解决办法:
1、修改操作系统的⽂件数限制,aix下⾯修改limits下的nofiles限制条件,增⼤或者设置为没有限制,尽量对涉及到的服务器都作修改;
2、⽅法⼀解决不了情况下再去查看应⽤服务器weblogic的⽂件,修改其中的nofiles⽂件max-nofiles数增⼤,应该就可以通
过了,具体就是查找到nofiles⽅法,修改其中else条件的执⾏体,把⽂件打开数调⼤;修改前记住备份此⽂件,防⽌修改出错;
34.问题描述has shut down the connection prematurely
⼀般是在访问应⽤服务器时出现,⼤⽤户量和⼩⽤户量均会出现; 来⾃⽹上的解释:
1> 应⽤访问死掉。⼩⽤户时:程序上的问题。程序上存在数据库的问题
2> 应⽤服务没有死 应⽤服务参数设置问题 例如: 在许多客户端连接Weblogic应⽤服务器被拒绝,⽽在服务器端没有错误显
⽰,则有可能是Weblogic中的server元素的AcceptBacklog属性值设得过低。如果连接时收到connection refused消息,说明应提⾼该值,每
次增加25% Java连接池的⼤⼩设置,或JVM的设置等
3> 数据库的连接 在应⽤服务的性能参数可能太⼩了 数据库启动的最⼤连接数(跟硬件的内存有关) 以上信息有⼀定的参考价
值,实际情况可以参考此类调试。 如果是以上所说的⼩⽤户时:程序上的问题。程序上存在数据库的问题,那就必须采⽤更加专业的⼯
具来抓取出现问题的程序,主要是程序中执⾏效率很低的sql语句,weblogic可以采⽤introscope定位,期间可以注意观察⼀下jvm的垃圾回
收情况看是否正常,我在实践中并发500⽤户和600⽤户时曾出现过jvm锯齿型的变化,上升下降都很快,这应该是不太正常的。
35.问题描述Failed to connect to server
这个问题⼀般是客户端链接到服务失败,原因有两个客户端连接限制(也就是压⼒负载机器),⼀个⽹络延迟严重,解决办法: 1、修
改负载机器的tcpdelaytime注册表键值,改⼩; 2、检查⽹络延迟情况,看问题出在什么环节; 建议为了减少这种情况,办法⼀最
好测试前就完成了,保证⼲净的⽹络环境,每个负载机器的压⼒测试⽤户数不易过⼤,尽量平均每台负载器的⽤户数,这样以上问题出现的
概率就很⼩了。
36.问题描述:Overlapped transmission of request to ... WSA_IO_PENDING
解决⽅法: 1、⽅法⼀,在脚本前加⼊web_set_sockets_option("OVERLAPPED_SEND", "0"),禁⽤TTFB细分,问题即可解决,但是
TTFB细分图将不能再使⽤,附图。 2、⽅法⼆,可以通过增加连接池和应⽤系统的内存,每次增加25%。
37.问题描述:Deleted the current transaction ... since response time is not accurate
这个问题不多遇见,⼀般出现在压⼒机器上发⽣ping值为负数(AMD双核CPU),可以重新启动pc机或者打补丁,附图。
38.问题描述:HTTP Status-Code=500 (Internal Server Error) for
1、应⽤服务当掉,重新启动应⽤服务。 2、当应⽤系统处于的可⽤内存处于阀值以下时,出现HTTP Status-Code=500的概率⾮常⾼,此时
只要增加应⽤系统的内存,问题即可解决。
39.问题描述:Failed to transmit data to network: [10057] Socket is not connected
这个错误是由⽹络原因造成的,PC1 和PC2上⾯都装了相同的loadrunner 9.0,且以相同数量的虚拟⽤户数运⾏相同的业务(机器上的其他
条件都相同),PC1上⾯有少部分⽤户报错,PC2上的⽤户全部执⾏通过。
40.问题描述:Error -27257: Pending web_reg_save_param/reg_find/create_html_param[_ex] request(s) detected and reset at the end of
iteration number 1
解决⽅法:web_reg_save_param位置放错了,应该放到请求页⾯前⾯。
41.问题描述:通过Controler调⽤远程代理时报错,Error: CCI security error:You are running under secure mode and the function system is
not allowed in this mode.
解决⽅法:在代理开启的时候,去掉勾选防⽕墙选项。
-27796: Failed to connect to server "10.102.8.201:80": [10048] Address already in use
Try changing the registry value
HKEY_LOCAL_MACHINESystemCurrentControlSetServicestcpipParametersTcpTimedWaitDelay to 30and
HKEY_LOCAL_MACHINESystemCurrentControlSetServicestcpipParametersMaxUserPort to 65534 and rebooting the machine
See the file for more information
解决办法:因为负载⽣成器的性能太好,发数据包特别快,服务器也响应特别快,从⽽导致负载⽣成器的机器的端⼝在没有timeout之前就全
部占满了。在全部占满后,就会出现上⾯的错误。执⾏netstat –na命令,可以看到打开了很多端⼝。所以就调整TCP的time out。即在最后
⼀个端⼝还没有⽤到时,前⾯已经有端⼝在释放了。
1. 打开LoadRunner负载机所在机器的注册表,将HKEY_LOCAL_MACHINESystemCurrentControlSetServicestcpipParameters项中的
TcpTimedWaitDelay值设置为5s或者其它(按需要调整)也可以把MaxUserPort值调⼤(如果这个值不是最⼤值的话),同时增加脚本的
think time,再重启机器。
2.取消勾选controller的run-setting-times-browser-browser emulation “simulate a new user on each iteration”项。
.c(6): Error -27792: Failed to transmit data to network: [10054] Connection reset by peer
解决办法:脚本和场景迭代延迟时间设置要相同
transfer error: C:Documents and ocal SettingsTempbrr_YAR.313netdire测试组⽣产环境UUC
接⼝uuc_shell综合场景2resultsres10.101.11.82_
Write failure on machine 10.101.11.82. Check the available disk space.
All Vusers on this machine will stop running
Error: Failed to write data to the .eve file. Check that the remote host has enough disk space: system error - 磁盘空间不⾜
Error: Failed returning to the last proper record in the .eve file: "C:Documents and ocal
SettingsTempbrr_YAR.313netdire测试组⽣产环境UUC接⼝uuc_shell综合场景2resultsres10.101.11.82_".
解决办法:压⼒机磁盘空间不⾜造成的。
.c(38): Error -27492: "HttpSendRequest" failed, Windows error code=12002 and retry limit (0) exceeded for URL
解决办法:在runtime setting中的preferences- ->options-->http-request connect timeout(sec)的值设为999。
.c(6): Error -26612: HTTP Status-Code=500 (Internal Server Error) for 192.168.0.8:10001/;jsessionid=
{JSESSIONID2}
解决办法:造成HTTP-500错误如下⼏个可能:
1、运⾏的⽤户数过多,对服务器造成的压⼒过⼤,服务器⽆法响应,则报HTTP500错误。减⼩⽤户数或者场景持续时间,问题得到解决。
2、该做关联的地⽅没有去做关联,则报HTTP500错误。进⾏⼿⼯或者⾃动关联,问题得到解决。
3、录制时请求的页⾯、图⽚等,在回放的时候服务器找不到,则报HTTP500错误,若该页⾯⽆关紧要,则可以在脚本中注释掉,问题将会
得到解决。例如:有验证码的情况下,尽管测试时已经屏蔽了,但是录制的时候提交了请求,但回放的时候不存在响应。
4、参数化时的取值有问题,则报HTTP500错误。可将参数化列表中的数值,拿到实际应⽤系统中进⾏测试,可排除问题。
5、更换了应⽤服务器(中间件的更换,如tomcat、websphere、jboss等),还是利⽤原先录制的脚本去运⾏,则很可能报HTTP500错误。
因为各种应⽤服务器处理的机制不⼀样,所录制的脚本也不⼀样,解决办法只有重新录制脚本。
6、Windows xp2 与ISS组件不兼容,则有可能导致HTTP500错误。对ISS组件进⾏调整后问题解决。
7、系统开发程序写的有问题,则报HTTP500错误。例如有些指针问题没有处理好的,有空指针情况的存在。修改程序后问题解决。
⽇志发现报了很多0ra-01000错误,这是oracle达到最⼤游标参数值,google了下,最⼤原因可能是JDBC连接没关闭。最后查找weblogic连接池
出了问题,很多连接没关闭。查找后台
.c(15): 错误-27496: 内部错误(呼叫客户服务): _eStat (7) != LRW_ITEM_STAT_ENUM_UNHANDLED for HandledTask at
048E180C
Action.c(56): Error -27995: Requested link ("Text=计划管理") not found [MsgId: MERR-27995]
解决⽅法:在IE中的⼯具—>Internet选项—>⾼级—>HTML设置中选择第⼆个脚本类型。
48.错误 -27279:内部错误(呼叫客户服务):Report initialization failed , error code = -2147467259 [MsgId : MERR-27279 ]
解决办法:建议重装⼀下LR。这种问题有可能和你安装有关.dll⽂件出错不是说写的程序就能修改的。
49. Error -10489 : Exception was raised when calling per-thread-terminate function
在⽤Loadrunner实施性能测试时,采⽤Goal模式加压,存在如果持续长时加压时LoadRunner的Controller会报 Error -10489 : Exception
was raised when calling per-thread-terminate function错误;
产⽣原因: Unlike the earlier Windows versions, Windows 2000 and Windows XP have the default environment set to C:Document and
Settings
LoadRunner. To resolve the issue, change to a directory without empty spaces。
解决⽅法:在C盘(或是其它盘均可以)新建TEMP⽂件夹(为了后续设置临时⽂件准备),右键"我的电脑"->⾼级->环境变量->编辑修改
TEMP变量⽬录,指⾝上⾯新建的⽬录,如我的指向C:TEMP->保存即可。
-27727: Step download timeout (120 seconds)has expired when downloading resource(s). Set the “Resource Page Timeout is a
Warning” Run-Time Setting to Yes/No to have this message as a warning/error, respectively
解决⽅法:Run-Time Setting → Internet Protocol →Preferences→Option →Step download timeout(sec)改为32000
A、应⽤服务参数设置太⼤导致服务器的瓶颈 B、页⾯中图⽚太多 C、在程序处理表的时候检查字段太⼤或多
.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)。
错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送⼀个请求到服务器端,如果超过120秒服
务器端还没有返回结果,则出现超时错误。
解决办法:⾸先在运⾏环境中对超时进⾏设置,默认的超时时间可以设置长⼀些,再设置多次迭代运⾏,如果还有超时现象,需要
在"Runtime Setting">"Internet Protocol:Preferences">"Advanced"区域中设置⼀个"winlnet replay instead of sockets"选项,再回放是否成
功。
52、Action.c(38): Error -27492: "HttpSendRequest" failed, Windows error code=12002 and retry limit (0) exceeded for URL
解决办法:在runtime setting中的preferences- ->options-->http-request connect timeout(sec)的值设为999。
53、Action.c(81):Continuing after Error -27498: Timed out while processing URL=172.18.20.70:7001/workflow/bjtel/leasedline/
querystat/
错误分析:这种错误常常是因为并发压⼒过⼤,服务器端太繁忙,⽆法及时响应客户端的请求⽽造成的,所以这个错误是正常现象,是压⼒
过⼤造成的。如果压⼒很⼩就出现这个问题,可能是脚本某个地⽅有错误,要仔细查看脚本,提⽰的错误信息会定位某个具体问题发⽣的位
置。
解决办法:例如上⾯的错误现象问题定位在某个URL上,需要再次运⾏⼀下场景,同时在其他机器上访问此URL。如果不能访问或时间过
长,可能是服务器或者此应⽤不能⽀撑如此之⼤的负载。分析⼀下服务器,最好对其性能进⾏优化。如果再次运⾏场景后还有超时现象,就
要在各种图形中分析⼀下原因,例如可以查看是否服务器、DNS、⽹络等⽅⾯存在问题。最后,增加⼀下运⾏时的超时设置,在"Run-Time
Settings">"Internet Protocol:Preferences"中,单击"options",增加"HTTP-request connect timeout" 或者"HTTP-request receive"的值。
54、⽤strtok函数分割字符串
需要在loadrunner⾥⾯获得“15”(下⾯红⾊⾼亮的部分),并做成关联参数。
//Body response 内容: <; PRE>//OK[8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1
⽤web_reg_save_param取出“8,7,5,15,6,5,0,4,0,3,0,3,2,0,0,0,1”这⼀段,然后⽤strtok函数切割出⼀个个数字,第四个数字就是要找的值
例如:
extern char * strtok(char * string, const char * delimiters ); // Explicit declaration
char separators[] = ",";
char * token;
lr_save_string("1,2,3,4,5,6","str");
token = (char *)strtok(lr_eval_string("{str}"), separators); // Get the first token
if (!token) {
lr_output_message ("No tokens found in string!");
return( -1 );
}
while (token != NULL ) { // While valid tokens are returned
lr_output_message ("%s", token );
token = (char *)strtok(NULL, separators); // Get the next token
}
55、测试RTMP协议应该在LoadRunner选择什么协议来录制?
解决办法:⽤flex协议,有这⼏个函数可⽤:
flex_rtmp_connect Connects a client to an RTMP server and sets connection options.
flex_rtmp_disconnect Disconnects a client from an RTMP server.
flex_rtmp_send Sends messages to an RTMP server.
flex_rtmp_receive Receives responses from an RTMP server
Flex can record and replay scripts involving RTMP (Real Time Messaging Protocol). In order to enable RTMP simulation, you must
configure the recording options for the Flex protocol.
To enable RTMP:
1 Open the Recording Options dialog box by selecting Tools > Recording Options or clicking the Options button in the Start Recording
dialog box.
2 In the Network > Port Mapping node click Options.
3 Set the Send-Receive buffer size threshold to 1500.
56、如何在LoadRunner中运⾏QTP脚本?
1、运⾏准备:
1)勾选QTP的Tools--Options--Run的"Alow other Mercury products to run tests and components"
2)录制需要在lr中运⾏的QTP脚本,并且在QTP脚本中设置事务,ransaction "start"与nsaction "start"
2、运⾏QTP脚本
在LR中运⾏时选择QTP脚本,为QTP脚本存放⽬录下⽂件扩展名为.usr的⽂件。
注:LR中运⾏QTP脚本时,只能有⼀个Vuser,否则将报错:
The load generator is currently running the maximum number of Vusers of this type
57、在LR中如何忽略Socket接收数据的验证
在LR中对Socket进⾏性能测试时,LR会⾃⼰判断lrs_receive回来的数据的长度,⽽如果长度不符的话会有时间延迟的情况(这是性能测试完
全不能接受的事情),如果做到这⼀点呢,经过反复尝试,发现⼀种简单的⽅法(⽤*代替具体的长度):
类似于将:
recv buf1 12
"Hello, Denny"
改为:
recv buf1 *
"Hello, Denny"
⼀切OK。
58、LoadRunner9.5的Controller中不能添加Apache的监控
在C:Program FilesHPLoadRunnerdatonline_graphs中找到online_resource_⽂件,修改[Apache]部分中的EnableInUI为1
参考:
/service/forums/?admit=109447626+14+28353475&threadId=1229523
59、VB Vuser开发ADO脚本,提⽰“user-defined type not defined”
想在VB Vuser写⼊模拟数据操作的过程,然后在VB Vuser⾥定义了这个全局变量
Private m_Conn As tion '连接对象
Private m_Reco As set '结果集
但是在VB Vuser中不识别这个对象,报出user-defined type not defined
需要在Run-Time 设置中的VBA部分把ADO的库选上
如果⽤VB Script虚拟⽤户来开发就不要,直接⽤CreateObject来创建ADO对象即可
60、loadrunner9.5录制脚本时出现c:PROGRA~1MICROS~时出错内存位置访问⽆效
解决办法:Office2007的问题,IE加载项禁⽤Groove GFSBrowser Helper 组件
61、LR⾃带的例⼦端⼝号怎么修改?
LR⾃带的例⼦端⼝号是1080,我怎么样把这个端⼝设置我⾃⼰想⽤的端⼝号8088,在什么地⽅设置
在LR安装⽬录下,找到⽂件,找到portbase,可以修改它(默认是1000);默认的端⼝号是portbase+80;要把端⼝号改成
8088,就把portionbase改为8008,保存之后就是了(8088=8008+80)。
62、⽤Web_reg_find查找中⽂字符串时查找不到?
解决办法:脚本⽂件⾥有个 ,⾥⾯有个参数是 UTF8InputOutput ,将其值改为0
63、替代IP Wizard的脚本
/higkoo/blog/item/
LoadRunner⾃带的“IP Wizard”⽤起来⾮常⿇烦,要不停的点,重要的是最后还必须重启系统⽣效。
于是乎写个脚本替代之:
1. 假设客户端IP为 192.168.10.31
2. 假设服务端IP为 192.168.10.10
3. 需要模拟的IP为 110.119.120.122
那么,客户端提供添加虚拟IP的BAT脚本:
netsh interface ip add address 本地连接 110.119.120.122 255.255.0.0
对应的删除设置为:
netsh interface ip del address 本地连接 110.119.120.122
对应服务器添加虚拟路由的Shell脚本:
route add -host 110.119.120.122 gw 192.168.10.31
删除路由的脚本:
route del -host 110.119.120.122 gw 192.168.10.31
这样就⾮常⽅便了,不⽤重启任何机器,执⾏脚本就⽣效,再执⾏脚本就取消。
64、如何从命令⾏调⽤LoadRunner脚本?
Here is the command line that you need to execute to run a VuGen script from the command prompt:
Note:
In order to get all the other options that go with the command, run from the command prompt without any options.
65、请问"int64这个类型,在LR中怎么表⽰"。我将⼀段C的代码放在LR中,LR不认int64这个类型,怎么解决?
解决办法:把那段C代码做成DLL,然后在LR中调⽤。


发布评论