LR常见报错及解决的办法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LR常见报错及解决的办法
1、LoadRunner26377、26388错误码的成因
脚本如下:
脚本的是请求下载,如果是三个cot请求,就不会有错,我现在是有10个cot请求,从"objectURI4"就提示以下错误信息,请大有帮忙解决一下。
谢谢
错误码如下:
Error-26377:No match found for the requested parameter"objectURI10".Check whether the requested boundaries exist in the response data.Also,if the data you want to save exceeds1516000 bytes,use web_set_max_html_param_len to increase the parameter size[MsgId:MERR-26377]
web_url("entry")highest severity level was"ERROR",1631body bytes,199header bytes[MsgId: MMSG-26388]
1.首先看下脚本中有没有使用了自动关联(web_reg_save_param)
2.在Virtual的脚本里查询下web_reg_save_param的参数使用位置,然后把这个参数化给还原回来,比如
web_reg_save_param("Siebel_Analytic_ViewState2",............然后就在全文查询
Siebel_Analytic_ViewState2
3,至于修改成什么东西要看几个地方,如果是启动了自动关联,一般在脚本上面会有一段被自动注释掉的:关联变量名="值"比如上面的Siebel_Analytic_ViewState2大概就是
//{Siebel_Analytic_ViewState2}
="/wEPDwUKMTI5Nzk1OTc3NmRkikSkNLllgC5BL8dbmU5bHIwtt4I="
那么这里的/wEPDwUKMTI5Nzk1OTc3NmRkikSkNLllgC5BL8dbmU5bHIwtt4I=就是要找的值了,这个也可以在"View Tree"里找到
4.把"View script"里的被关联的那部分参数改成
/wEPDwUKMTI5Nzk1OTc3NmRkikSkNLllgC5BL8dbmU5bHIwtt4I=就好了(不是修改web_reg_save_param里的参数,要把它注释掉,从下面正文里查询另一个带Siebel_Analytic_ViewState2的东东,把它改掉)
把web_set_max_html_param_len(50000)值加大
这个函数要放在所有参数化前面。
2、录制时无法弹出IE,google一下,解决办法如下
l主要是LR的注册信息被修改,无法找到IE路径。
如何重新注册LR呢?在lr的安装目录(例如D:/Program Files/Mercury/LoadRunner/bin)下,单击register_vugen.bat文件,注册信息被重新改写了。
不过别忘了最后一步。
重新启动一下,好了;
l有多个浏览器时,将IE置为默认浏览器;由于IE的第三方插件的影响,IE工具-》Internet选项…-》高级,把“启用第三方浏览器扩展”的选中去掉即可;
l对于Windows2003上无法录制IE6/7,导致IE Crash,iedw.exe(IE Crash Detection)报告错误事件,可能原因是Windows Server默认对IE加载DEP(数据执行保护)特性,而Vugen.exe刚好又跟DEP冲突。
方法:我的电脑>右键属性->高级->“性能”部分的“设置”->“数据执行保护”->点击“添加”按钮->将LR安装目录bin 下的vugen.exe添加进去->点击确定,重启一下LR,就可以录制了。
3、录制不到脚本
l选择的协议不对,有时需要选择多个协议,这个需与开发、系统架构师沟通;
l没有选择jar包;
l检查防火墙个杀毒软件,关闭所有的网络监测;
l早期的版本(Ld8.0以前的版本)不能很好的支持IE6以上的版本,换成IE6即可;
l Flex需要客户端下安装flash,并且IE选项的安全设置中设置可以访问所有active控件;
4、录制的脚本回放错误
l选择的协议不对(应选择多个协议或其他协议);
l没有选择jar包,无法解析数据;
l自动关联错误;
l动态数据没有做关联;
Flex协议录制的脚本没有办法产生自动关联时,需要下面的Ld中自带的函数进行自定义:
l选择另一台机器上录制的ld9.50版本的脚本,原来选择的http/flex两个协议的脚本,回放报错Replay log如下:
Error:Encoding of AMF message failed.Error is:Exception Occurred while invoking WriteObject method
ng.ClassNotFoundException:flex.messaging.io.amf.Amf3Output
(Enter to WriteObject WriteObject throws exception:
ng.ClassNotFoundException:flex.messaging.io.amf.Amf3Output――后台debug log)
at .URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at .URLClassLoader.findClass(URLClassLoader.java:188)
at ng.ClassLoader.loadClass(ClassLoader.java:306)
at uncher$AppClassLoader.loadClass(Launcher.java:268)
at ng.ClassLoader.loadClass(ClassLoader.java:251)
at ng.ClassLoader.loadClassInternal(ClassLoader.java:319)
at ng.Class.forName0(Native Method)
at ng.Class.forName(Class.java:164)
at
hp.flex.HPExternalizableWrapper.GetLCDSObjectOutputStream(HPExternalizableWrapper.java:155)
at hp.flex.HPExternalizableWrapper.GetObjectOutputStream(HPExternalizableWrapper.java:215)
at hp.flex.HPExternalizableWrapper.WriteObject(HPExternalizableWrapper.java:23)
无法解析,原来机器上的jar包的位置在本机器上不同引起的
因缺少录制时候选择的jar包,选择的jar包的位置变化了或者引用的jar包已经删除了。
解决方法:重新在Run-time settings->Flex->Externalizable Objects中增加jar包(因为原来引用的jar包的位置已经发生变化了),增加Recording Options中的jar是没用的。
l重复记录导致:Error:Server returned error for message#1:"AMF call returned an error, described in XML seen in extended log"可以用打开所有log(Run-time Setting->General->Log->Extended log,全部选择上),然后回放脚本,进行具体问题的跟踪,一般是由于程序中限定不允许数据重复(或数据记录的某个字段不能重复导致的,一般发生在新建和修改里面。
(有些可能不是程序中作限定,而是数据库中有唯一性限制,索引或主健等),删除相关的所有记录后再次回放即可。
(本系统中的此次测试出现这个错误是由于删除了客户台帐的新建客户数据,但在客户会中生成的主数据没有删除导致的)
l版本不兼容,在一个ld版本下录制的脚本在一个版本下使用。
l请求超时或修改了程序(但你不知道)。
l根据Replay log的具体错误内容查看原因(结合Replay log(F10单步执行)、web服务的后台日志和程序综合分析)注:web服务后台日志的显示级别在/WEB-INF/classes/log4j.properties或者中
application-context.xml中的props设置(最好只显示错误,不然日志文件太大,不容易分析)。
5、录制的可以回放的脚本却不能操作成功
l对动态数据没有做关联;
l有验证码:如果请求进去后,服务器虽然判别请求非法,但是它仍能成功处理,告诉你请求数据有问题,那么它返回的http代码仍是200!只是页面上会有它的提示信息错误!LR只判断请求的状态是否正确,不判断业务数据是否正确!如果要做判断得自己写检查点判别!
l web服务器后台日志显示Unknown AMF question的错误,请求无效导致
l选择的协议不完整,录制的脚本不完整导致的;
l打开Extended Log单步执行查看Replay log和web服务后台日志,然后分析
6、为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行?
由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。
要想开启检查功能,必须修改运行时的配置Run-time Setting。
进入“Run-time Setting”对话框,依次进入“Internet Protocol→Preferences”,勾选Checks下的“Enable Image and text check”选项即可。
检查执行结果时推荐使用web_reg_find方法。
7、运行时的Pacing设置主要影响什么?
Pacing主要用来设置重复迭代脚本的间隔时间。
共有三种方法:上次迭代结束后立刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执行新的迭代。
根据实际需要设置迭代即可。
通常,没有时间间隔会产生更大的压力。
8、运行时设置Log标签中,如果没有勾选“Enable logging”,则手工消息可
以发送吗
Enable logging选项仅影响自动日志记录和通过lr_log_message发送的消息。
即使没有勾选,虚拟用户脚本中如果使用lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。
9、LoadRunner8.0版本的VuGen在录制Web Services协议的脚本时一切正常,
而回放时报出错误提示“Error:serve
造成这种情况的主要原因是LoadRunner8.0的VuGen在录制Web Service协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为,因此会有上面的错误提示。
解决方法:把“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”两个补丁打上即可解决。
10、VuGen支持Netscape的客户证书吗?
不支持。
目前的VuGen8.0版本中仅支持Internet Explorer的客户端证书。
录制脚本时可以先从Netscape 中导出所需的证书,然后将其导入到Internet Explorer中,并确保以相同的顺序导出和导入这些证书。
而且,在每台将要录制或运行需要证书的Web Vuser脚本的计算机上都要重复执行前面的过程。
11、VuGen会修改录制浏览器中的代理服务器设置吗?
会修改。
在开始录制基于浏览器的Web Vuser脚本时,VuGen首先会启动指定的浏览器。
然后,VuGen会指
示浏览器访问VuGen代理服务器。
为此,VuGen会修改录制浏览器上的代理服务器设置。
默认情况下,VuGen会立即将代理服务器设置更改为Localhost:7777。
录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。
因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行。
12、在LoadRunner脚本如何输出当前系统时间?
LoadRunner提供了char*ctime(const time_t*time)函数,调用参数为一个Long型的整数指针,用于存放返回时间的数值表示。
调用语句与返回值如下示例:
typedef long time_t;
Action()
{
time_t t;
lr_message(“Time in seconds since1/1/70:%ld\n”,time(&t));
lr_message(“System time and date:%s”,ctime(&t));
}
输出结果为:
Time in seconds since1/1/70:1185329968
System time and date:Wed Jul2510:19:282007
13、一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数
大于1时,如果进行回放则只能成功迭代
这种现象多是由于在“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下面的选项“Clear cache on each iteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。
由于脚本迭代时,init和end只能执行一次,如果每次迭代都模拟一个新的用户并清除缓存,则用户登录信息将一并清除,因此迭代时可能会发生错误。
14、虚拟客户脚本“Run-time Setting”中的线程和进程运行方式的区别?
如果选择“Run Vuser as a process”,则场景运行时会为每一个虚拟用户创建一个进程;选择“Run Vuser as a thread”则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,这种方式的运行效率更高,能造成更大的压力,时默认选项。
另外,如果启用了IP欺骗功能,则先在Controller中选中Tools菜单下的“Expert Mode”,然后将Tools 菜单下的“Options>General”标签页中的IP地址分配方式也设置为与Vuser运行方式一致,同为线程或进程方式。
15、在Controller中运行Web相关测试场景时,经常会有很多超时错误提示,如
何处理这类问题?
这主要有脚本的默认超时设置引起。
当回放Web脚本时,有时候由于服务器响应时间较长,会产生超时的错误。
这时需要修改脚本的运行时配置。
进入“Run-time Setting”对话框后,依次进入“Internet Protocol→Preference”。
然后点击“Options…”按钮,进入高级设置对话框,可以修改各类超时设置的默认值。
16、为什么Windows系统中的CPU、内存等资源仍然充足,但是模拟的用户数量
却上不去?
在Windows计算机的标准设置下,操作系统的默认限制只能使用几百个Vuser,这个限制与CPU或内存无关,
主要是操作系统本身规定了默认的最大线程数所导致。
要想突破Windows这个限制,须修改Windows注册表。
以Windows XP Professional为例。
(1)打开注册表后,进入注册表项HKEY_LOCAL_MACHINE中的下列关键字:
System\CurrentControlSet\Control\Session Manager\SubSystems。
(2)找到Windows关键字,Windows关键字如下所示:
%SystemRoot%\system32\csrss.exe bjectDirectory=\Windows
SharedSection=1024,3072,512Windows=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操作系统的限制,而只受硬件和内部可伸缩性限制的约束。
17、Controller中设置了用户并发数量,但是运行时为何初始化的用户数量少
于实际数量?
主要时设置问题。
在Tools→options→Run-time setting中可以设置每次最多初始化的虚拟用户。
如果需要100个并发用户,则将该值设置为大于100的数值。
另外,注意LoadRunner相关协议License的更新,确保使用的License能够允许所需要的并发用户数量。
18、如何让场景的用户执行发生错误继续运行,以保证不间断进行压力测试?
用VuGen打开虚拟用户脚本后,进入“Run-time Settings”对话框后,依次进入“General→Miscellaneous”,可以看到Miscellaneous设置中关于“Error Handling”的配置。
勾选“Continue on error”即可让虚拟用户发生错误继续运行
19、为什么.NET虚拟用户有时不能在远程主机执行?
主要时LoadRunner的版本问题。
根据笔者的经验,如果是Microsoft Visual Studio2005开发的虚拟用户,同时LoadRunner客户端的版本低于8.1,执行Controller的主机将会发生错误。
因此要想正确的运行Microsoft Visual Studio2005开发的.NET虚拟用户,客户端最好装8.1以上的版本,Controller的主机则安装8.0和8.1两个版本均可。
此外,产生压力的LoadRunner客户端上预先应该安装.NET运行环境,如果Microsoft Visual Studio2005开发的是.NET虚拟用户,则应该安装 Framework SDK v2.0。
20、测试分析结果中会统计Action时间,而实际上可能并不须要这些数据,如
何只显示自己定义的用户事务?
进入脚本的运行时设置,依次进入General→Miscellaneous。
默认情况下,自动事务配置“Automatic Transactions”下有两个选项:第一个是把脚本的Action部分定义为一个事务;第二个时把脚本的每一部分定义为一个事务。
去掉这两个勾选后,测试结果将会只显示自己定义的用户事务。
21、测试结果中,Summary和平均事务响应时间图里的各个事务的最大值、平均
值、最小值为什么显示不一样?
主要是受采样时间的影响。
Summary里的事务平均响应时间是根据整个场景执行过程得到的数据计算所得,最大值与最小值也是从整个场景中得到的。
平均事务响应时间图主要时按照LoadRunner分析出来的采样频率来获取事务响应时间的最大值与最小值,然后计算平均值。
可以通过“Set Granularity”来修改平均事务响应时间图的采样频率。
如果把“Granularity”设为场景执行时间,则统计结果将会一致。
22、统计结果中的总点击量Total Hits时用户的鼠标点击次数吗?
Total Hits不时按照用户的鼠标点击次数来计算的,而是按照各个虚拟客户端向后台发起的总的请求数来进行统计的。
例如在向服务器请求的一个页面中,如果该页面包含5个图片,用户只要单击鼠标就可以访问该页面,而单个虚拟用户在LoadRunner访问的点击量为1+5=6次。
23、有些Web测试结果分析图(例如每秒返回页面数)在测试结果分析图中无法
看到,如何进行配置?
用VuGen打开虚拟用户脚本后,进入“Run-time Settings”对话框后,依次进入“Internet
Protocol>Preference”,可以看到一些Web性能图配置。
勾选上面得选项后,Controller将会在测试执行过程中生成数据,然后可在Analysis中查看相应的性能结果分析图。
24、重装系统后安装LR,提示setup has determined that a previous
installation has not completed,重启无效
解决办法:1)进入注册表:运行/regedit;
2)进入路径:KEY_LOCAL_MACHINE/SYSTEM/Contrl/SessionManager;
3)在Session Manager右侧的主试图中,双击PendingRenameOperations,在弹出的窗口中,将临时文件删除。
4)重新运行LR安装文件即可
25、安装LR,提示Command Line Option Syntax error.Type Command/?时:
解决办法:将安装文件放在英文目录下即可;(或直接放在盘的根目录下即可)
26、录制Web脚本时,生成的脚本中存在乱码该如何解决?
解决办法:1)新建脚本--->选择协议(Http)-->选项-->高级-->选择“支持字符集”并点选“UTF-8”;
2)在回放脚本之前:Vuser-->运行时设置-->浏览器-->浏览器仿真-->更改-->使用浏览器-->语言下来选择“中文(中国)”;
进行如上设置以后即可。
27、录制脚本时出现IE运行错误
原因:一般是操作系统的环境不适合或者浏览器的版本有出入。
1.LoadRunner能支持Standalone的IE7脚本录制,在XPSP2+IE7上验证通过;
2.LoadRunner不兼容windows vista,vugen.exe(Mercury Virtual User Generator)启动失败,错误提示"Action",跟UAC安全特性无关,初步分析跟当前用户的Temp路径改变有关;
3.Windows2003SP2上无法录制IE6/7,导致IE Crash,iedw.exe(IE Crash Detection)报告错误事件,错误代码0xc0000005,ie在地址00CD4548push1Ah段中断。
初步分析原因是Windows Server默认对IE加载DEP(数据执行保护)特性,而Vugen.exe刚好又跟DEP冲突。
解决方案(WIN2003环境):不想换系统那就按下面操作:Control Panel->System->"Advanced"
tab->Performance section"Settings"button->"Data Execution Prevention"tab->add the client program(vugen.exe)in"Turn on DEP for all programs and services except those I select"or choose "Turn on DEP for essential windows programs and services only."and a reboot is required.(控制面板--系统--高级--性能--数据执行保护--添加例外程序vugen.exe,或许选择第一个选项)
28、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”模式进行录制。
29、录制脚本后,切换到树视图中,打开相应的脚本页面。
在右侧的PageView
中录制的脚本呈现中文版式,但是当切换
解决办法:问题不在LR本身!被测系统的Web.config文件,在<system.web>。
</system.web>节加入<globalization requestEncoding="gb2312"responseEncoding="gb2312"fileEncoding="gb2312"/>后再次录制脚本,乱码变中文。
即可解决。
30、HP LOADRUNNER27796,Failed to connect to server..10060connection timed out是什麼意思?
loadrunner的一个报错信息!
解决方法
在loadrunner的Edit Runtime Setting—>Internet Protocol—>Proxy中选中User custom
proxy然后在选中Use porxy server中填上你所用的代理服务器的IP和端口号。