LoadRunner11压力测试时遇到问题及解决办法时间:2014-08-1400:08来源:知行网编辑:麦田守望者1、LoadRunner超时错误:在录制Web服务器端,如果超过120秒服务器协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同。错误现象1:Action.c(16):Error-27728:Stepdownloadtimeout(120seconds)hasexpiredwhendownloadingnon-resource(s)。错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送一个请求到端还没有返回结果,则出现超时错误。解决办法:首先在运行环境中对超时进行设置,默认的超时时间可以设置长一些,再设置多次迭代运行,如果还有超时现象,需要在“RuntimeSetting”“InternetProtocol:Preferences”“Advanced”区域中设置一个“winlnetreplayinsteadofsockets”选项,再回放是否成功。2.LoadRunner脚本中出现乱码:在录制Web协议脚本时出现中文乱码,在回放脚本时会使回放停止在乱码位置,脚本无法运行。错误现象:某个链接或者图片名称为中文乱码,脚本运行无法通过。错误分析:脚本录制可能采用的是URL-basedscript方式,如果程序定义的字符集合采用的是国际标准,脚本就会出现乱码现象。解决办法:重新录制脚本,在录制脚本前,打开录制选项配置对话框进行设置,在“RecordingOptions”的“Advanced”选项里先将“SurportCharset”选中,然后选中支持“UTF-8”的选项。3.LoadRunnerHTTP服务器状态代码:在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。错误现象1:-404NotFound服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。解决办法:在出现错误的位置进行脚本关联,在必要时插入相应的函数。错误现象2:-500InternalServerError服务器内部错误,脚本运行停止。错误分析:服务器碰到了意外情况,使其无法继续回应请求。解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。4.LoadRunner请求无法找到:在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。错误现象:Action.c(41):Error-27979:Requestedform.notfound[MsgId:MERR-27979]Action.c(41):web_submit_form.highestseveritylevelwasERROR,0bodybytes,0headerbytes[MsgId:MMSG-27178]这时在treeview中看不到此组件的相关URL。错误分析:所选择的录制脚本模式不正确,通常情况下,基于浏览器的Web应用会使用“HTML-basedscript”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的代码、基于浏览器的应用中使用HTTPSJavaApplet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript安全协议,这时则使用“URL-basedscript”模式进行录制。解决办法:打开录制选项配置对话框进行设置,在“RecordingOptions”的“InternetProtocol”选项里的“Recording”中选择“RecordingLevel”为“HTML-basedscript”,单击“HTMLAdvanced”,选择“Script.Type”为“Ascript.containingexplicit”。然后再选择使用“URL-basedscript”模式来录制脚本。5.Abnormaltermination,causedbymdrvprocesstermination解决:修改LR中的D:\ProgramFiles\Mercury\LoadRunner\dat\protocols中的http.lrp信息,在[Vugen]下面新加一条MaxThreadPerProcess=要设置的vuser数量。6.LoadRunner录制脚本时为什么不弹出IE浏览器?答:启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题;7.LoadRunner录制脚本时提示默认浏览器不支持解决方法?答:在RecordingOptions-Browser-修改浏览器设置-改为IE浏览器访问,重新启动LoadRunner录制脚本就ok;8.LR录制Web脚本时,生成的脚本中存在乱码该如何解决?答:录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Supportcharset”,选择支持UTF-8。重新录制,就不会出现中文乱码问题了。9.HTML-basedscript与URL-basedscript的脚本有什么区别?答:使用“HTML-basedscript”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-basedscript”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。通常,基于浏览器的Web应用会使用“HTML-basedscript”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的JavaApplet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-basedscript”模式进行录制。10.为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行?答:LoadRunner默认关闭了对文本及图像的检查。进入“Run-timeSetting”对话框,依次进入“InternetProtocol→Preferences”,勾选Checks下的“EnableImageandtextcheck”选项即可。备注:推荐web_reg_find函数针对文本及图像的检查。11.运行时的Pacing设置主要影响什么?答:Pacing主要用来设置重复迭代脚本的间隔时间。共有三种方法:上次迭代结束后立刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执行新的迭代。根据实际需要设置迭代即可。通常,没有时间间隔会产生更大的压力。12.运行时设置Log标签中,如果没有勾选“Enablelogging”,则手工消息可以发送吗?答:Enablelogging选项仅影响自动日志记录和通过lr_log_message发送的消息。即使没有勾选,虚拟用户脚本中如果使用lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。13.LoadRunner如何在IE7+Win2003环境下录制脚本?答:方法一:巧借IE6内核录制脚本在系统安装目录下C:\WINDOWS\ie7\iexplore.exe,然后在RecordingOptions-Browser,指定Ie6内核;设置完成确认后,即可以用LoadRunner录制脚本;方法二查看了下官方提供LoadRunner解决方法:安装LoadRunner8.1FeaturePack4-然后安装:InternetExplorer7(IE7)supportforLoadRunner8.1FeaturePack4;14.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”。15.VuGen支持Netscape的客户证书吗?答:不支持。目前的VuGen8.0版本中仅支持InternetExplorer的客户端证书。录制脚本时可以先从Netscape中导出所需的证书,然后将其导入到InternetExplorer中,并确保以相同的顺序导出和导入这些证书。而且,在每台将要录制或运行需要证书的WebVuser脚本的计算机上都要重复执行前面的过程。16.LoadRunner场景执行时第1次报错error:missingnewlineind:\test\test1.dat,第2次场景执行时不报错?答:Loadruner参数设置test1.dat文本时,需要在最后一个参数后回车确认一下。17.LoadRunner场景执行时出现错误:“loadgeneratoriscurrentlyrunningthemaximumnumberofvuserofthistype”答:Loadruuner默认场景并发最大用户数=1000,所以需要设置loadgenerator-Details-Vuserlimits-OtherVusers更换参数值即可,如10000;当然需要你的序列号是支持,目前最大支持6.2w的序列号。18.VuGen会修改录制浏览器中的代理服务器设置吗?答:会修改。在开始录制基于浏览器的WebVuser脚本时,VuGen首先会启动指定的浏览器。然后,VuGen会指示浏览器访问VuGen代理服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会立即将代理服务器设置更改为Localhost:7777。录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行。19.在LoadRunner脚本如何输出当前系统时间?答:LoadRunner提供了char*ctime(consttime_t*time)函数,调用参数为一个Long型的整数指针,用于存放返回时间的数值表示。20.Loadruner在一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。从第二次迭代开始发生错误?答:“Run-timeSetting”的“BrowseEmulation”的设置中,勾选了“Simulateanewuseroneachiteration”及其下面的选项“Clearcacheoneachiteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。21.LoadRunner中“Run-timeSetting”中的线程和进程运行方式的区别?答:如果选择“RunVuserasaprocess”,则场景运行时会为每一个虚拟用户创建一个进程;选