Loadrunner 脚本错误问题汇总(非原创,部分转自互联网)

在运行脚本回放过程中,有时会出现错误,这在实际测试中是不可避免的,毕竟自动录制生成的脚本难免会有问题,需要运行脚本进行验证,把问题都解决后才加入到场景中进行负载测试。下面结合常用的协议(如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”安装上即可。

时间: 2024-11-06 16:24:48

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

有关中小非原创小说网站SEO的思考

晃眼两年过去了,12年后自己开了家小公司,线下实体,网站这块都荒废了,前段时间闲着没事又捡起了闲置的域名,两年多没做了,只剩下不到20个域名,随便选了几个准备做小说网挂着,心不大,服务器和域名的费用收回就够了. 刚开始建了三个,本地调试好,放服务器应该不到3个小时,首页就被百度收录,这一点来说现在百度还是相对做的很不错的,是最快的(未发新外链),其次就是360搜索,大概第二天到第三天陆续收录了首页,最慢的当属搜狗了差不多接近一周才收录(如果不是小说站我是不会考虑搜狗的).其中一个相对比较幸运,开

新辰:SEOer如何降低非原创文章带来的影响?

1.相关资料 官方文档:http://htmlparser.sourceforge.net/samples.html API:http://htmlparser.sourceforge.net/javadoc/index.html 其它HTML 解释器:jsoup等.由于HtmlParser自2006年以后就再没更新,目前很多人推荐使用jsoup代替它. 2.使用HtmlPaser的关键步骤 (1)通过Parser类创建一个解释器 (2)创建Filter或者Visitor (3)使用parser

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

非原创,搬运至此以作笔记, 原地址:http://www.cnitblog.com/houcy/archive/2012/11/28/86801.html 1.用top命令查看哪个进程占用CPU高gateway网关进程14094占用CPU高达891%,这个数值是进程内各个线程占用CPU的累加值. PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND     14094 root      15   0  315m 

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

非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体:main 页尾:footer 导航:nav 侧栏:sidebar 栏目:column 中间内容:center 导航 导航:nav 导航:mainbav/globalnav 子导航:subnav 顶导航:topnav 边导航:sidebar 左导航:leftsidebar 右导航:rightside

发现一段精简的模板算法(非原创)

引用自: http://ejohn.org/blog/javascript-micro-templating/ // Simple JavaScript Templating // John Resig - http://ejohn.org/ - MIT Licensed (function(){ var cache = {}; this.tmpl = function tmpl(str, data){ // Figure out if we're getting a template, or

字符串相似度计算的方法,使用SQL以及C#实现,本文非原创摘自网络(.NET SQL技术交流群入群206656202需注明博客园)

1 CREATE function get_semblance_By_2words 2 ( 3 @word1 varchar(50), 4 @word2 varchar(50) 5 ) 6 returns nvarchar(4000) 7 as 8 begin 9 declare @re int 10 declare @maxLenth int 11 declare @i int,@l int 12 declare @tb1 table(child varchar(50)) 13 declare

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

Java Interface 是常量存放的最佳地点吗?(转帖学习,非原创) 由于java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量.因而interface通常是存放常量的最佳地点.然而在java的实际应用时却会产生一些问题. 问题的起因有两个,第一,是我们所使用的常量并不是一成不变的,而是相对于变量不能赋值改变.例如我们在一个工程初期定义常量∏=3.14,而由于计算精度的提高我们可能会重新定义∏=3.14159,此时整个项目对此常量的引用都应

base64编码及JNI实现,代码非原创,只做整理和实现JNI端交互

直接上代码: #include <stdlib.h> #include <stdio.h> #include <getopt.h> #include <string.h> #include "base64.h" extern "C" { //Base64 编码 int Base64Encode(unsigned char *OrgString, unsigned char *Base64String, int OrgS

Java 表达式解析(非原创)

因项目需要,在网上找来一套表达式解析方法,由于原来的方法太过于零散,不利于移植,现在整理在同一文件内: 文件中包含5个内部类,源码如下: 1 import java.util.ArrayList; 2 import java.util.Date; 3 import java.util.List; 4 import java.util.Stack; 5 6 /** 7 * @项目名称: sunson_pams 8 * @类名称: FormulaUtils 9 * @类描述: 非原创(慎用) 10