在运行脚本回放过程中,有时会出现错误,这在实际测试中是不可避免的,毕竟自动录制生成的脚本难免会有问题,需要运行脚本进行验证,把问题都解决后才加入到场景中进行负载测试。下面结合常用的协议(如Web、Web Services协议)录制的脚本进行回放时出现的问题介绍一下解决的方法。

  需要注意的是,回放脚本时出现的错误有时是程序自身的原因导致的,因此在解决脚本回放问题前必须保证程序录制出的脚本是正确的。

  1.LoadRunner请求无法找到:在做参数化的情况下,可能会出现这样的问题。

  错误现象:Action.c(40): Error -27979: Requested form not found
[MsgId: MERR-27979]
Action.c(40): web_submit_form("reservations.pl") highest severity
level was "ERROR", 0 body bytes, 0 header bytes [MsgId:
MMSG-26388]

  错误分析:请求提交的信息是服务器产生的,且这个信息与选择的参数是相关的,在参数取值变化的情况下,就无法再次请求到。

  解决办法:对请求语句中的数据进行关联。

  2.LoadRunner超时错误:在录制Web协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同。

  错误现象1:Action.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”选项,再回放是否成功。

  错误现象2:Action.c(81):Continuing after Error -27498: Timed out while
processing URL=http://172.18.20.70:7001/workflow/bjtel/leasedline/
querystat/ subOrderQuery.do

  错误分析:这种错误常常是因为并发压力过大,服务器端太繁忙,无法及时响应客户端的请求而造成的,所以这个错误是正常现象,是压力过大造成的。

  如果压力很小就出现这个问题,可能是脚本某个地方有错误,要仔细查看脚本,提示的错误信息会定位某个具体问题发生的位置。

  解决办法:例如上面的错误现象问题定位在某个URL上,需要再次运行一下场景,同时在其他机器上访问此URL。如果不能访问或时间过长,可能是服务器或者此应用不能支撑如此之大的负载。分析一下服务器,最好对其性能进行优化。

  如果再次运行场景后还有超时现象,就要在各种图形中分析一下原因,例如可以查看是否服务器、DNS、网络等方面存在问题。

  最后,增加一下运行时的超时设置,在“Run-Time Settings”>“Internet
Protocol:Preferences”中,单击“options”,增加“HTTP-request connect timeout”
或者“HTTP-request receive”的值。

  3.LoadRunner脚本中出现乱码:在录制Web协议脚本时出现中文乱码,在回放脚本时会使回放停止在乱码位置,脚本无法运行。

  错误现象:某个链接或者图片名称为中文乱码,脚本运行无法通过。

  错误分析:脚本录制可能采用的是URL-based
script方式,如果程序定义的字符集合采用的是国际标准,脚本就会出现乱码现象。

  解决办法:重新录制脚本,在录制脚本前,打开录制选项配置对话框进行设置,在“Recording
Options”的“Advanced”选项里先将“Surport Charset”选中,然后选中支持“UTF-8”的选项。

  4.LoadRunner
HTTP服务器状态代码:在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。

  错误现象1:-404 Not Found服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。

  错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。

  解决办法:在出现错误的位置进行脚本关联,在必要时插入相应的函数。

  错误现象2:-500 Internal Server Error服务器内部错误,脚本运行停止。

  错误分析:服务器碰到了意外情况,使其无法继续回应请求。

  解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。

  5.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应用中包含了与服务器进行交互的Java
Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用HTTPS安全协议,这时则使用“URL-based
script”模式进行录制。

  解决办法:打开录制选项配置对话框进行设置,在“Recording Options”的“Internet
Protocol”选项里的“Recording”中选择“Recording Level”为“HTML-based
script”,单击“HTML Advanced”,选择“Script Type”为“A script containing
explicit”。然后再选择使用“URL-based script”模式来录制脚本。

  6.LoadRunner不执行检查方法:在录制Web协议脚本中添加了检查方法Web_find,但是在脚本回放的过程中并没有执行。

  错误现象:在脚本中插入函数Web_find,在脚本中设置文本以及图像的检查点,但是在回放过程中并没有对设置的检查点进行检查,即Web_find失效。

  错误分析:由于检查功能会消耗一定的资源,因此LoadRunner默认关闭了对文本以及图像的检查,所以在设置检查点后,需要开启检查功能。

  解决办法:打开运行环境设置对话框进行设置,在“Run-time Settings”的“Internet
Protocol”选项里的“Perference”中勾选“Check”下的“Enable Image and text
check”选项。

  7.LoadRunner回放Web Services协议脚本错误:LoadRunner 8.0版本在录制Web
Services协议的脚本时正常,但在回放时会出现错误,提示停止脚本运行。

  错误现象:利用LoadRunner 8.0版本来录制Web
Services协议的脚本没有任何错误提示,回放脚本时会出现如下错误提示“Error:server returned an
incorrectly formatted SOAP response”。

  错误分析:出现此错误的原因是LoadRunner8.0在录制Web
Services协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为<?xml
version="1.0"encoding="zh_cn" ?>,所以才会有此错误提示。

  解决办法:下载两个补丁,分别为“LR80WebServicesFPI_setup.exe”和“lrunner_web_
services_patch_1.exe”安装上即可。

Loadrunner 脚本错误问题汇总(非原创,部分转自互联网)的更多相关文章

  1. Linux下high CPU分析心得【非原创】

    非原创,搬运至此以作笔记, 原地址:http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html 1.用top命令查看哪个进程占用CPU高ga ...

  2. CSS样式命名整理(非原创)

    非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体 ...

  3. 非原创。使用ajax加载控件

    非原创.来自博客园老赵. public class ViewManager<T> where T : System.Web.UI.UserControl { private System. ...

  4. Java 表达式解析(非原创)

    因项目需要,在网上找来一套表达式解析方法,由于原来的方法太过于零散,不利于移植,现在整理在同一文件内: 文件中包含5个内部类,源码如下: import java.util.ArrayList; imp ...

  5. Java Interface 是常量存放的最佳地点吗?(转帖学习,非原创)

    Java Interface 是常量存放的最佳地点吗?(转帖学习,非原创) 由于java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量.因而inter ...

  6. 用RD,GR,BL三个方法内代码生成一张图片(非原创,我只是完整了代码)

    我公开以下图片的源代码,,是ppm格式的,,自己找到能打开的工具.. (非原创,我加工的代码,可直接执行运行输出,缩略图能看到效果)  这是原博客 http://news.cnblogs.com/n/ ...

  7. tp5.1 phpspreadsheet- 工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西,)

    phpspreadsheet-工具类 导入导出(整合优化,非原创,抄一抄,加了一些自己的东西)1. composer require phpoffice/phpspreadsheet2. 看最下面的两 ...

  8. Vue 仿QQ左滑删除功能(非原创)

    非原创,摘选来源:http://www.jb51.net/article/136221.htm. 废话不多说,相当实用,先记录. Html代码: <div class="contain ...

  9. 老男孩Django笔记(非原创)

    .WEB框架 MVC Model View Controller 数据库 模板文件 业务处理 MTV Model Template View 数据库 模板文件 业务处理 ############## ...

随机推荐

  1. Datafactory必须注意事项

  2. android xfermode绘图

    1.fermode:是来自 transfer-modes,在画笔中设置xfermode后,画笔在使用的时候就会应用设置的像素转换模式.就类似于ps中的选取功能,留下的选取是从原选区中去除还是合并,取交 ...

  3. css常用样式

    border: border-width border-style border-color (边框属性) 全部属性 div {width:100px; height:100px; border-st ...

  4. HDU 4937 Lucky Number(2014 Multi-University Training Contest 7)

    思路:先枚举  a*bas +b = n  求出 bas 在sqrt(n)到n的  (bas>a&&bas>b) 再枚举  a*bas*bas+b*bas+c =n  求出 ...

  5. Ubuntu导入证书

    (*.cer) 首先我们得进入JAVA_HOME目录(查看/etc/profile文件),然后进去以下路径/opt/jdk1.5.0_11/jre/lib/security/ 将证书放进去,假如说是1 ...

  6. 给vs2010换皮肤

    http://www.cnblogs.com/aolinwxfx/articles/2379252.html O(∩_∩)O哈哈~,很不错哦

  7. jsp学习之基于mvc学生管理系统的编写

    mvc开发模式:分别是 model层 view层 Control层 在学生管理系统中,model层有学生实体类,数据访问的dao层,view层主要是用于显示信息的界面,Control层主要是servl ...

  8. C++软件添加dump调试打印日志

    #include <DbgHelp.h> #pragma comment(lib, "dbghelp.lib") LONG WINAPI TopLevelExcepti ...

  9. 鼠标滚动div固定浮动-加锚点

    页面:    <div class="pa">        <div class="w-95-sl bdl-2"><a>标 ...

  10. [网络技术][转]路由表查找过程(ip_route_input_slow)

     若干解释: 判断in_dev是否存在,是通过mac地址吗? 源IP地址如果是multicast,broadcast,loopback地址,意味着数据报不知道从哪来的,只能把数据报废掉了. 目标IP地 ...