web test LoadRunner error list / error log

Web Test Performance 专栏收录该内容
24 篇文章 0 订阅

 

http://bbs.51testing.com/thread-8644-1-1.html

  sckOutOfMemory 7 内存不足
  sckInvalidPropertyValue 380 属性值不效
  sckGetNotSupported 394 属性不可读
  sckGetNotSupported 383 属性是只读的
  sckBadState 40006 所请求的事务或请求本身的错误协议或者错误连接状态
  sckInvalidArg 40014 传递给函数的参数格式不确定,或者不在指定范围内
  sckSuccess 40017 成功
  sckUnsupported 40018 不支持的变量类型
  sckInvalidOp 40020 在当前状态下的无效操作
  sckOutOfRange 40021 参数越界
  sckWrongProtocol 40026 所请求的事务或请求本身的错误协议
  sckOpCanceled 10004 取消操作
  sckInvalidArgument 10014 所请求的地址是广播地址,但未设置标记
  sckWouldBlock 10035 套接字不成块,而指定操作将使之成块
  sckInProgress 10036 制造块的Winsock操作在进行之中
  sckAlreadyComplete 10037 完成操作。未进行制作块的操作
  sckNotSocket 10038 描述符不是套接字
  sckMsgTooBig 10040 数据太大,不适于缓冲区的要求,因而被截断
  sckPortNotSupported 10043 不支持指定的端口
  sckAddressInUse 10048 地址在使用中
  sckAddressNotAvailable 10049 来自本地机器的不可用地址
  sckNetworkSubsystemFailed 10050 网络子系统失败
  sckNetworkUnreachable 10051 当前不能从主机到达网络
  sckNetReset 10052 在设置SO_KEEPALIVE时连接超时
  sckConnectAborted 10053 由于超时或者其它失败而中止接连
  sckConnectionReset 10054 通过远端重新设置连接
  sckNoBufferSpace 10055 没有可用的缓存空间
  sckAlreadyConnected 10056 已连接的套接字
  sckNotConnected 10057 未接连套接字
  sckSockedShutdown 10058 已关闭套接字
  sckTimedout 10060 套接字超时
  sckConnectionRefused 10061 强行拒绝连接
  sckNotInitialized 10093 套接字没有初始化
  sckHostNotFound 11001 授权应答:未找到主机
  sckHostNotFoundTryAgain 11002 非授权应答:未找到主机,重试
  sckNonRecoverableError 11003 不可恢复的错误
  sckNoData 11004 无效名,对所请求的类型无数据记录

 

 

问题描述   :lr11 BUG?Failed to send data by channels - post message failed.

解决方法 :http://bbs.51testing.com/thread-527804-1-1.html

http://stackoverflow.com/questions/26457896/error-failed-to-send-data-by-channels-post-message-failed-in-loadrunner

HTTP协议的,windows server 2008+lr11+IE7 应该没啥特殊操作,也不是每次跑都出现这个错误,之前也跑过8小时疲劳也正常出结果。
网上搜了一圈,看到个建议把controller中的Diagnotics-configure-Web Page Diagnotics默认的Enable关掉,重新试了几次倒是正常了,现在也不确定是不是真的没问题了。
估计是兼容性的问题吧

解决LR在进行压力测试过程中报Error: Failed to send data by channels - post message failed.

http://blog.163.com/pengjintaogz@126/blog/static/162299068201462423636779/

解决办法1: 在LR的controller负载生成器的菜单栏,单击【Diagnostics】》configuration》Web Page Diagnostics【Max Vuser Sampling 10%】设置为【Eenable】。

解决办法2:直接去掉勾选Enable the following diagnostics即可。

如下图所示:

 

问题描述 :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

http://www.mianwww.com/html/2011/11/11898.html
解决方法:
web_reg_save_param位置放错了,应该放到请求页面前面。

 

问题描述 :

项目1异常:Action.c(19): Error -27796: Failed to connect to server "preprice1.s*****.cn:80": [10048] Address already in use

项目2异常:Action.c(12): Error -27796: Failed to connect to server "wjhxxsit.cns*****.com:80": [10048] Address already in use Try changing the registry value HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30 and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534 and rebooting the machine See the readme.doc file for more information

解决方法一: Try changing the registry vlue
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30
and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534
and rebooting the machine

http://blog.csdn.net/alix_zhou/article/details/4488809

2、HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/tcpip/Parameters/TcpTimedWaitDelay to 30
and HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/tcpip/Parameters/MaxUserPort to 65534
将TcpTimedWaitDelay to 30设置为5s或者其它,同时增加了think time,需要重启机器。

解决方法二:多用几台loadrunner agent 测试机,不要用localhost 作为agent机器,异常复现如下

 

LoadRunner错误及解决方法总结

http://wenku.baidu.com/view/2879ff4e2b160b4e767fcf2f.html?from=rec&pos=0&weight=3&lastweight=1&count=5

 

 

LoadRunner SHUNRA\CloudServices

http://dax9527.blog.163.com/blog/static/3764789520100136832542/

在某次重启以后突然发现公司的机器不能上网了,主要症状是无法获取IP,手动指定IP也不起作用,域用户下也没法联网.域防火墙无法连接.系统设备中有一个网卡带叹号,不能正常工作也没法卸载掉.
      经过半天折腾,结果无意中发现本地连接属性中有一个叫SHUNRA\Cloud WAN Emulator的服务是勾选状态.
嘿,这东西跟那个带叹号的网卡是一个名字啊,后来明白这是因为我安装了LoadRunner8.0工业级压力测试软件的原因,LR自动安装并启用了这个服务,不过却是个阉割的东西,导致不能接入到局域网.去掉勾选,完美解决.

 

LoadRunner小技巧集锦

http://www.cnblogs.com/preftest/archive/2010/08/02/1790569.html

1、录制脚本中包含中文,出现乱码怎么办?

把录制选项中的Support charset选中UTF-8

录制脚本后,切换到树视图中,打开相应的脚本页面。在右侧的PageView中录制的脚本呈现中文版式,但是当切换到Server Response中,所有的中文全部换成的乱码,如“勌缞仫訆”。

原因是服务器端没有把响应的编码设置为gb2312

在IIS中找到Web.Config文件,在<system.web>….</system.web>节加 入<globalization requestEncoding="gb2312" responseEncoding="gb2312" fileEncoding="gb2312"/>后再次录制脚本,乱码变中文。

2、录制到的脚本是空白的

有可能是由于录制的URL地址采用的是localhost的问题,改成分配的IP地址或127.0.0.1试试。

3、插入文本检查点步骤时,使用web_reg_find,通常TextPfx和TextSfx中会包含双引号,需要进行转义(用斜杠),例如:      web_reg_find("Search=Body",

              "SaveCount=Welcome",

              "TextPfx=欢迎<a class=\"drop\" id=\"viewpro\" onMouseOver=\"showMenu(this.id)\">",

              "TextSfx=</a>",

              LAST);

4、使用web_image_check插入图片检查点时需要主要设置Run-Time Setting中的Enable Image and text check选项:

使用web_find函数插入文本检查点也一样要做此设置

5、性能测试往往需要准备大批量的数据,大批量数据的生成方法有很多种,常见的有:

       (1)编写SQL语句来插入数据

(2)使用DataFactory等专业的数据生成工具

       (3)通过LoadRunner录制回放的方式重复执行生成大批量数据

Tips:

使用DataFactory插入nchar数据类型的数据时会出现空值的情况,可以先修改数据库的数据类型设置,插完数据后再改回来

6、在录制脚本的过程中插入注释,录制后查看和理解脚本会更加方便。

7、LoadRunner回放脚本时,在浏览器显示的中文是乱码

解决办法(1):

首先设置Run-Time Settings – Browser – Browser Emulation – User-Agent

然后设置IE:

查看-编码-钩上“自动选择”和Unicode(UTF-8)。

解决办法(2):

使用lr_convert_string_encoding函数来转换编码

下面是一个使用的例子:

lr_convert_string_encoding(lr_eval_string("{ReplyContents}"),LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8,"ReplyMessage");      web_submit_data("postreply.aspx_2",

              "Action=http://127.0.0.1/postreply.aspx?infloat=1&topicid=2&&inajax=1",

              "Method=POST",

              "EncType=multipart/form-data",

              "RecContentType=text/xml",

              "Referer=http://127.0.0.1/showtopic-2.aspx",

              "Snapshot=t9.inf",

              "Mode=HTML",

              ITEMDATA,

              "Name=iconid", "Value=0", ENDITEM,

              "Name=title", "Value=", ENDITEM,

              "Name=wysiwyg", "Value=0", ENDITEM,

              "Name=checkbox", "Value=0", ENDITEM,

              "Name=message", "Value=[localimg=180,112]1[/localimg]\r\n\r\n{ReplyMessage}", ENDITEM,

              "Name=e_mediatyperadio", "Value=on", ENDITEM,

              "Name=sl_attachdesc", "Value=", ENDITEM,

              "Name=attachid", "Value=", ENDITEM,

              "Name=attachdesc", "Value=", ENDITEM,

              "Name=localid", "Value=", ENDITEM,

              "Name=attachdesc", "Value=", ENDITEM,

              "Name=localid", "Value=1", ENDITEM,

              "Name=attachdesc", "Value=", ENDITEM,

              "Name=localid", "Value=2", ENDITEM,

              "Name=emailnotify", "Value=on", ENDITEM,

              "Name=postreplynotice", "Value=on", ENDITEM,

              "Name=postfile", "Value=", "File=Yes", ENDITEM,

              "Name=postfile", "Value=D:\\\\图片收集\\\\It's about time.JPG", "File=Yes", ENDITEM,

              "Name=postfile", "Value=", "File=Yes", ENDITEM,

              "Name=uploadallowmax", "Value=10", ENDITEM,

              "Name=uploadallowtype", "Value=jpg,gif", ENDITEM,

              "Name=thumbwidth", "Value=300", ENDITEM,

              "Name=thumbheight", "Value=250", ENDITEM,

              "Name=noinsert", "Value=0", ENDITEM,

              LAST);

8、可以在LR测试脚本的目录中找到参数文件,直接修改参数文件

The parameter file is stored in the script directory as .dat file extension.  It can be opened with a simple text editor like Notepad as it is stored in pure text format.  Therefore, you can manipulate the files via the Notepad.  You can also use office applications such as Microsoft Excel or OpenOffice.org Calc to work on the file.  This greatly the amount of work required for maintaining a long list of data.

9、LR9.x启动VUGen时提示"Failed to connect to server"

After upgrading to LoadRunner 9.x I started getting a window popup which said "Failed to connect to server" every time I opened virtual user generator (vugen.exe).

The solution to this was to close virtual user generator and delete the [vugen.ini] file.

vugen.ini is found in the %systemroot% folder on your Windows PC (usually C:\WINDOWS or C:\WINNT).

Once you've deleted the file, virtual user generator will open without any issues and create a new vugen.ini file automatically.

10、怎样抓取有相同左右边界的动态value?

怎样抓取有相同左右边界的动态value?例如:

stateID="d7lg0ehmjkkm6uin3s4boei7oq">

stateID="cvopakp46ftsf8mh6l37ti3ubm">

stateID="bv9mja8gtgr39ddibm5t9163re">

web_reg_save_param里的ORD应该怎样设置?

ORD: Indicates the ordinal position or instance of the match. The default instance is 1. If you specify "All," it saves the parameter values in an array.

例子:

char outFlightParam[50]; // The name of the parameter for correlation

char outFlightParamVal[50]; // The formatted value of outFlightParam

web_reg_save_param("outFlightVal",

        "LB=outboundFlight value=", "RB=>",

        "ORD=ALL",

        "SaveLen=18",

        LAST);   web_submit_form("reservations.pl",

        "Snapshot=t4.inf",

        ITEMDATA,

        "Name=depart", "Value=London", ENDITEM,

        "Name=departDate", "Value=11/20/2003", ENDITEM,

        "Name=arrive", "Value=New York", ENDITEM,

        "Name=returnDate", "Value=11/21/2003", ENDITEM,

        "Name=numPassengers", "Value=1", ENDITEM,

        "Name=roundtrip", "Value=<OFF>", ENDITEM,

        "Name=seatPref", "Value=None", ENDITEM,

        "Name=seatType", "Value=Coach", ENDITEM,

        "Name=findFlights.x", "Value=83", ENDITEM,

        "Name=findFlights.y", "Value=16", ENDITEM,

        LAST);   sprintf(outFlightParam, "{outFlightVal_%s}",

        lr_eval_string("{outFlightVal_count}"));

    sprintf(outFlightParamVal, "Value=%s",

        lr_eval_string(outFlightParam));

    lr_message("The value argument is : %s", outFlightParamVal);   web_submit_form("reservations.pl_2",

        "Snapshot=t5.inf",

        ITEMDATA,

        "Name=outboundFlight",outFlightParamVal, ENDITEM,

        "Name=reserveFlights.x", "Value=92", ENDITEM,

        "Name=reserveFlights.y", "Value=10", ENDITEM,

        LAST);

11、运行场景时提示“Step download timeout (120 seconds) has expired when downloading resource(s)”

vuser_init.c(12): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)(出现个别,可以忽略)

vuser_init.c(12): Error -27727: Step download timeout (120 seconds) has expired when downloading resource(s). Set the "Step Timeout caused by resources is a warning" Run-Time Setting to Yes/No to have this message as a warning/error, respectively

如果觉得下载一个页面超过2分钟不是错误的话,可以在Run-Time设置中选择Preferences->Options,修改Step download timeout(sec)的时间

或者把“Step timeout caused by resources is a warning”设置为Yes,这样下载资源超时也只是作为警告,不作为错误提示,但是对于非资源的下载超时,则总是会提示错误的

12、用strtok函数分割字符串

需要在loadrunner里面获得“15”(下面红色高亮的部分),并做成关联参数。

//Body response 内容: <BODY><; 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

    }

13、LoadRunner没有购买webservice协议的license,只有http的,可不可以完全用http协议模拟webservice?

可以,参考:

http://blog.testsautomation.com/2009/01/web-services-performance-using-loadrunner/

http://blog.testsautomation.com/2009/05/validating-web-service-response-with-xpath/

14、在场景设置中不忽略思考时间,但是在查看响应时间的时候怎样让LR自动在响应时间里减去思考时间?

在analysis中找到了设置是否在报告中包含思考时间的地方做相应的设置即可:

15、LoadRunner在运行过程中停掉1半虚拟用户

Another issue that I’m facing from time to time is that LoadRunner stops 50% of running users without any notification, issue, error message etc. I’ve find out that it happens only when running with log level set to ‘always send a message’. Because of that, I suggest to run with log level set to ‘Send message only when error occur’.

16、LoadRunner录制不了任何东西

Sometimes LoadRunner is not recording anything while browsing using IE. I have no idea why but the fastest solution is to restart whole LR. Maybe some of you have good explanation for that?

17、测试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.

18、如何在LoadRunner中运行QTP脚本?

  1、运行准备:

  1)勾选QTP的Tools--Options--Run的"Alow other Mercury products to run tests and components"

  2)录制需要在lr中运行的QTP脚本,并且在QTP脚本中设置事务,Services.StartTransaction "start"与Services.EndTransaction "start"

  2、运行QTP脚本

  在LR中运行时选择QTP脚本,为QTP脚本存放目录下文件扩展名为.usr的文件。

  注:LR中运行QTP脚本时,只能有一个Vuser,否则将报错:

  The load generator is currently running the maximum number of Vusers of this type

19、在LR中如何忽略Socket接收数据的验证

在LR中对Socket进行性能测试时,LR会自己判断lrs_receive回来的数据的长度,而如果长度不符的话会有时间延迟的情况(这是性能测试完全不能接受的事情),如果做到这一点呢,经过反复尝试,发现一种简单的方法(用*代替具体的长度):

类似于将:

recv buf1 12

"Hello, Denny"

改为:

recv buf1 *

"Hello, Denny"

一切OK。

20、LoadRunner9.5的Controller中不能添加Apache的监控

在C:\Program Files\HP\LoadRunner\dat\online_graphs中找到online_resource_graphs.rmd文件,修改[Apache]部分中的EnableInUI为1

参考:

http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1274450165814+28353475&threadId=1229523

21、VB Vuser开发ADO脚本,提示“user-defined type not defined”

想在VB Vuser写入模拟数据操作的过程,然后在VB Vuser里定义了这个全局变量

Private m_Conn As ADODB.Connection '连接对象

Private m_Reco As ADODB.Recordset  '结果集

但是在VB Vuser中不识别这个对象,报出user-defined type not defined

需要在Run-Time 设置中的VBA部分把ADO的库选上

如果用VB Script虚拟用户来开发就不要,直接用CreateObject来创建ADO对象即可

22、loadrunner9.5录制脚本时出现c:\PROGRA~1\MICROS~1\office12\Grooveutil.DLL时出错内存位置访问无效

Office2007的问题,IE加载项禁用Groove  GFSBrowser Helper 组件

23、LR自带的例子端口号怎么修改?

LR自带的例子端口号是1080,我怎么样把这个端口设置我自己想用的端口号8088,在什么地方设置

在LR安装目录下,找到Xitami.config文件,找到portbase,可以修改它(默认是1000);

默认的端口号是portbase+80;

要把端口号改成8088,就把portionbase改为8008,保存之后就是了(8088=8008+80)。

24、用Web_reg_find查找中文字符串时查找不到

脚本文件里有个default.cfg ,里面有个参数是 UTF8InputOutput ,将其值改为0

25、替代IP Wizard的脚本

http://hi.baidu.com/higkoo/blog/item/39bbb21bc33d76dcac6e751c.html

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

这样就非常方便了,不用重启任何机器,执行脚本就生效,再执行脚本就取消。

26、如何从命令行调用LoadRunner脚本?

Here is the command line that you need to execute to run a VuGen script from the command prompt:

   <LoadRunner>\bin\mmdrv.exe -usr <path to usr file> 

Note:

In order to get all the other options that go with the command, run mmdrv.exe from the command prompt without any options.

27、请问"int64这个类型,在LR中怎么表示"。我将一段C的代码放在LR中,LR不认int64这个类型,怎么解决?

把那段C代码做成DLL,然后在LR中调用

28、LoadRunner监控远程机器Windows资源,提示“net use failed”

解决办法 :

在被监控机器上更改本地帐户的共享和安全模式为经典模式。控制面板->管理工具->本地安全策略->网络访问:本地帐户的共享和安全模式->经典模式。

监视连接前的准备工作 :

首先保证被监视的windows系统开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Service

被监视的WINDOWS机器:右击我的电脑,选择管理->共享文件夹->共享 在这里面要有C$这个共享文件夹,(要是没有自己手动加)

然后保证在安装LR的机器上使用运行.输入\\被监视机器IP\C$ 然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了

Analysislog.log

Analysis Error log: <2012-11-1 9:26:41>

无法更新;当前被锁定。

SQL: Insert into Breakdown_meter select * FROM [Text; database=C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\1\].101179031Breakdown_meter.txt;

loadrunner收集结果失败

loadrunner 11.0 32位 + JDK 1.7 32位 环境异常问题解决

Notify: Found jdk version: 1.7.0.    [MsgId: MMSG-22986]

Warning: Warning: Failed to find Classes.zip entry in Classpath.

    [MsgId: MWAR-22986]

Notify: classpath=D:\TestCase\20121025_wuliu\WuLiu_TC_01_GPSCollecter\;c:\program files\hp\loadrunner\classes\srv;c:\program files\hp\loadrunner\classes;;.;C:\Program Files\Java\jdk1.7.0_10\jre\lib\rt.jar;C:\Program Files\HP\LoadRunner\classes\snf-data-cache-aio-1.1.0.jar;;;c:\program files\hp\loadrunner\lib\xstream-1.3.jar;c:\program files\hp\loadrunner\lib\xpp3-1.1.4c.jar    [MsgId: MMSG-22986]

Notify: Path=C:\PROGRA~1\HP\LOADRU~1\bin;C:\PROGRA~1\HP\LOADRU~1\bin\gecko;C:\PROGRA~1\HP\LOADRU~1\bin\tulip\bin;.;C:\Program Files\Java\jdk1.7.0_10\bin;C:\Program Files\Common Files\NetSarang;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\strawberry\c\bin;C:\strawberry\perl\bin;C:\Documents and Settings\Administrator\WINDOWS;    [MsgId: MMSG-22986]

Notify: VM Params: .    [MsgId: MMSG-22986]

Error: Java VM internal error:Error Loading javai.dll.

.    [MsgId: MERR-22995]

Warning: Extension java_int.dll reports error -1 on call to function ExtPerProcessInitialize    [MsgId: MWAR-10485]

Error: Thread Context: Call to service of the driver failed, reason - thread context wasn't initialized on this thread.    [MsgId: MERR-10176]

http://bbs.51testing.com/thread-882681-1-1.html

解决方案:LoadRunner11不支持JDK1.7.0,换成1.6的就行了

LoadRunner与JDK的安装问题

http://www.cnblogs.com/xiaochuncha/archive/2008/07/22/1248599.html

Louis-KB-20080722-T001

我在安装LoadRunner9.1版本的时候,取得的license是Java协议,需要在服务器上安装JDK。首先服务器是Microsoft Windows Server 2003 R2 Enterprise Edition Service Pack2(x64),安装的LoadRunner9.1默认是在C盘的Program Files中,按照这样来说,就需要安装64为的JDK,我即安装jdk-1_5_0_16-windows-amd64.exe,但是在安装成功后,运行写好的Java协议脚本,会出现如下的错误:

Error: Failed to find javac.exe Java Compiler in Path and JDK installation folder in registry.[MsgId: MERR-22981]

Error: Failed to find java.exe.

Please add the <JDK>\bin to the path and try again.[MsgId: MERR-22968]

Warning: Extension java_int.dll reports error -1 on call to function ExtPerProcessInitialize[MsgId: MWAR-10485]

Error: Thread Context: Call to service of the driver failed, reason - thread context wasn't initialized on this thread.[MsgId: MERR-10176]

在检测JDK安装是否成功时,JDK能够正常运行,LoadRunner的安装也没有任何问题,这样的问题就定位到二者的结合的问题上,首先在Vuser->Run-Time Setting中的Java Environment Settings->ClassPath中能够识别环境变量中的ClassPath,但是还是会报以上的错误。

在找问题所在的时候,我发现LoadRunner9.1没有任何说明此版本是64位软件,如何没有任何说明,则默认应该是32位软件,而对应的JDK应该也是32位的JDK,64位操作系统是兼容32位软件,我马上安装了32位的JDK,重启server,删除Vuser->Run-Time Setting中的Java Environment Settings->ClassPath中所有变量,重新运行脚本,发现错误消失。

写此文章就是想告诉大家,32位的软件和64位软件还是有很多不兼容,出现的报错信息也是五花八门,希望能对大家有帮助。

---------------------------------------------------------------------------

Louis Yan

Beijing, China

Mail:xiaochuncha@gmail.com

MSN:xiaochuncha@gmail.com

loadrunner 8.0 / 8.1 + JDK 1.5 环境异常

问题:Failed to find Classes.zip entry in Classpath.

http://blog.sina.com.cn/s/blog_69735aa50100vgtn.html

 今天写了一个JavaUser的LR的测试脚本,

编译时报错:Failed to find Classes.zip entry in Classpath.

解决:

http://download.csdn.net/download/foreignli/2560453

LR8.0或者8.1+JDK1.5版需要打一个补丁名字叫做:java_protocol_fixes_Feb_05,打上之后重启机器就ok了。

LoadRunner11-遇到问题及解决办法

http://4951507.blog.51cto.com/4941507/1108733 

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”模式来录制脚本。

http://kaixin322.blog.sohu.com/115621323.html

花了一天半的时间,终于搞定了这个问题。

总结下:主要还是关联没有做好,而且因为某些组件没有下载,导致lr自动关联不到

解决办法参考Zee的:

对LR回放中highest severity level was"ERROR"的解决方法

在LR中录制脚本时有如下问题:

在录制时一切正常,而回放时提示类似如下错误:

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。

处理方法如下:

1, 打开recording options,在internet protocol下的recording中选择recording level为HTML-based script,点击HTML Advanced,选择script type为A script containing explicit.即可。

2, 选择使用URL_based script录制。

对LR回放中highest severity level was"ERROR"的第二个解决方法

3.取消选中run time settings-browser emulation-download non-html resources.解决 。

本次解决是用第二个办法解决的。

然后执行脚本,就可以看到需要关联的其他字段了。关联后,运行成功。

5. Abnormal termination, caused by mdrv process termination

解决:修改LR中的D:\Program Files\Mercury\LoadRunner\dat\protocols 中的http.lrp信息,在[Vugen]下面新加一条MaxThreadPerProcess=要设置的vuser数量 。

6.LoadRunner录制脚本时为什么不弹出IE浏览器?

答:启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题;

7.LoadRunner录制脚本时提示默认浏览器不支持解决方法?

答:在Recording Options->Browser->修改浏览器设置->改为IE浏览器访问,重新启动LoadRunner录制脚本就ok;

8.LR录制Web脚本时,生成的脚本中存在乱码该如何解决?

答:录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,选择支持UTF-8。重新录制,就不会出现中文乱码问题了。

9.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”模式进行录制。

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,仍然会记录其发出的消息。

13.LoadRunner如何在IE7+Win2003环境下录制脚本?

答: 方法一: 巧借IE6内核录制脚本

在系统安装目录下C:\WINDOWS\ie7\iexplore.exe,然后在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;

14.LoadRunner 8.0版本的VuGen在录制Web Services协议的脚本时一切正常,但回放时报错误“Error:server returned an incorrectly formatted SOAP response”?

答:原因是LoadRunner 8.0的VuGen在录制Web Service协议的脚本时存在一个缺陷:如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为<?xml version=”1.0” encoding=”zh_cn”?>,因此会有上面的错误提示。

所以需要打上补丁:“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”。

15.VuGen支持Netscape的客户证书吗?

答:不支持。目前的VuGen 8.0版本中仅支持Internet Explorer的客户端证书。录制脚本时可以先从Netscape中导出所需的证书,然后将其导入到Internet Explorer中,并确保以相同的顺序导出和导入这些证书。而且,在每台将要录制或运行需要证书的Web Vuser脚本的计算机上都要重复执行前面的过程。

16. LoadRunner场景执行时第1次报错 error:missing newline in d:\test\test1.dat,第2次场景执行时不报错?

答:Loadruner参数设置test1.dat文本时,需要在最后一个参数后回车确认一下。

17.LoadRunner场景执行时出现错误:“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的序列号。

18.VuGen会修改录制浏览器中的代理服务器设置吗?

答:会修改。在开始录制基于浏览器的Web Vuser脚本时,VuGen首先会启动指定的浏览器。然后,VuGen会指示浏览器访问VuGen代理服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会立即将代理服务器设置更改为Localhost:7777。录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行。

19.在LoadRunner脚本如何输出当前系统时间?

答:LoadRunner提供了char *ctime(const time_t *time)函数,调用参数为一个Long型的整数指针,用于存放返回时间的数值表示。

20.Loadruner在一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。从第二次迭代开始发生错误?

答:“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下面的选项“Clear cache on each iteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。

21.LoadRunner中“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运行方式一致,同为线程或进程方式。

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中的下列关键字:System\CurrentControlSet\Control\Session Manager\SubSystems。

(2)找到Windows关键字,Windows关键字如下所示:

  %SystemRoot%\system32\csrss.exe 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操作系统的限制,而只受硬件和内部可伸缩性限制的约束。

24.Controller中设置了用户并发数量,但是运行时为何初始化的用户数量少于实际数量?

答:主要时设置问题。在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的commonEnv.sh文件,修改其中的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.

解决方法:在代理开启的时候,去掉勾选防火墙选项。

42.Error -27796: Failed to connect to server "10.102.8.201:80": [10048] Address already in use

Try changing the registry value

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534 and rebooting the machine

See the readme.doc 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”项。

43.Action.c(6): Error -27792: Failed to transmit data to network: [10054] Connection reset by peer

解决办法:脚本和场景迭代延迟时间设置要相同

44.Files transfer error: C:\Documents and Settings\Administrator.SCMCC\Local Settings\Temp\brr_YAR.313\netdir\e\测试组\生产环境\UUC接口\uuc_shell\综合场景2\results\res\10.101.11.82_2073.eve

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 Settings\Administrator.SCMCC\Local Settings\Temp\brr_YAR.313\netdir\e\测试组\生产环境\UUC接口\uuc_shell\综合场景2\results\res\10.101.11.82_2073.eve".

解决办法:压力机磁盘空间不足造成的。

45.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。

46.Action.c(6): Error -26612: HTTP Status-Code=500 (Internal Server Error) for http://192.168.0.8:10001/logonConsole.do;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连接池出了问题,很多连接没关闭。查找后台

47.Action.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\<user-name>\Local Settings\Temp instead of C:\Windows\temp. This long path with a space can cause several problems for LoadRunner. To resolve the issue, change to a directory without empty spaces。

解决方法:在C盘(或是其它盘均可以)新建TEMP文件夹(为了后续设置临时文件准备),右键"我的电脑"->高级->环境变量->编辑修改TEMP变量目录,指身上面新建的目录,如我的指向C:\TEMP->保存即可。

50.Error -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、在程序处理表的时候检查字段太大或多

51.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"选项,再回放是否成功。

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=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"的值。

54、用strtok函数分割字符串

需要在loadrunner里面获得“15”(下面红色高亮的部分),并做成关联参数。

//Body response 内容: <BODY><; 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脚本中设置事务,Services.StartTransaction "start"与Services.EndTransaction "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 Files\HP\LoadRunner\dat\online_graphs中找到online_resource_graphs.rmd文件,修改[Apache]部分中的EnableInUI为1

参考:

http://forums11.itrc.hp.com/service/forums/questionanswer.do?admit=109447626+1274450165814+28353475&threadId=1229523

59、VB Vuser开发ADO脚本,提示“user-defined type not defined”

想在VB Vuser写入模拟数据操作的过程,然后在VB Vuser里定义了这个全局变量

Private m_Conn As ADODB.Connection '连接对象

Private m_Reco As ADODB.Recordset '结果集

但是在VB Vuser中不识别这个对象,报出user-defined type not defined

需要在Run-Time 设置中的VBA部分把ADO的库选上

如果用VB Script虚拟用户来开发就不要,直接用CreateObject来创建ADO对象即可

60、loadrunner9.5录制脚本时出现c:\PROGRA~1\MICROS~1\office12\Grooveutil.DLL时出错内存位置访问无效

解决办法:Office2007的问题,IE加载项禁用Groove GFSBrowser Helper 组件

61、LR自带的例子端口号怎么修改?

LR自带的例子端口号是1080,我怎么样把这个端口设置我自己想用的端口号8088,在什么地方设置

在LR安装目录下,找到Xitami.config文件,找到portbase,可以修改它(默认是1000);默认的端口号是portbase+80;要把端口号改成8088,就把portionbase改为8008,保存之后就是了(8088=8008+80)。

62、用Web_reg_find查找中文字符串时查找不到?

解决办法:脚本文件里有个default.cfg ,里面有个参数是 UTF8InputOutput ,将其值改为0

63、替代IP Wizard的脚本

http://hi.baidu.com/higkoo/blog/item/39bbb21bc33d76dcac6e751c.html

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:

<LoadRunner>\bin\mmdrv.exe -usr <path to usr file>

Note:

In order to get all the other options that go with the command, run mmdrv.exe from the command prompt without any options.

65、请问"int64这个类型,在LR中怎么表示"。我将一段C的代码放在LR中,LR不认int64这个类型,怎么解决?

解决办法:把那段C代码做成DLL,然后在LR中调用。

66. Action.c(4): 错误:未找到套接字描述符。提示: 可以采用以下方法解决该问题: (1) 将运行时设置更新为“将 Vuser 作为进程运行”。(2) 向 mdrv.dat 的 [lr_socks] 部分添加以下行: 'ExtCmdLineConc=-UsingWinInet Yes'。解决办法:关闭 “场景”-> “IP 欺骗器”即可 

66.  Error (-81024): LR_VUG: The 'QTWeb' type is not supported on 'WIN32' platforms

http://blog.csdn.net/txqd1989/article/details/51543954 loadrunner11 运行场景报错 兼容性问题

请问Loadrunner 11.00兼容Windows server 2012 64位系统吗?我的Loadrunner可以录制脚本,但是运行场景的时候会报错,场景根本跑不起来,报错信息:

1、初始化失败; 通信错误。

Error (-81024): LR_VUG: The 'QTWeb' type is not supported on 'WIN32' platforms .

2、Error (-81024): LR_VUG: The 'QTWeb' type is not supported on 'WIN32' platforms .

搜索LR安装目录bin文件夹下有个“wlrun.exe”的文件,邮件点击“属性”->"兼容性"->兼容模式中选择“windows xp(service pack 3)”,确认后重新打开即可,win8下是这个选项,其他操作系统挨个试一下,总有一个可以的!

 

[转] 不知道如何查看loadrunner运行日志请往这里看

http://bbs.51testing.com/thread-112085-1-1.html

日志分两种

1。在VUGEN中运行后的日志

2。在controller中运行后的日志

 

日志设置分两步:

1。首先,在VUGEN或controller中run-time setting, 选中always send message,再选择        extended log-data returned by server.这样可以看到从server返回的信息。

2。选择日志文件路径。

   对于VUGEN运行后产生的日志,日志文件放在usr文件一个目录下,以.log 和.txt结尾,例如mdrv.log ,output.txt

   对于controller的日志文件,results>>results settings 中可以设置文件位置

Loadrunner日志设置与查看

http://www.blogjava.net/qileilove/archive/2013/10/24/405588.html

 

1.打开EXtended Log
  Log告诉了我们一切,默认的Log是standard Log,这时远远不够的.我们要extended log,打开路径为runtime settings-->log-->extended log.把parameter substitution和data returned byserver和advanced trace大家根据需要勾选吧.
   2.log文件位置,特别是controll执行后,怎么看log。这里一一说明一下:
  (1)vgen的runtime settings设置:在vgen中,我们必须写输出函数输出信息,将我们所想要了解的信息用函数输出,主要有这么几个函数输出信息:lr_output_message,lr_error_message,lr_log_message。这些函数请参阅 help-->function reference.
  其次,我们要在runtime settings中设置,勾选always send messages,具体的做法是:runtime settings--->log-->always send messages,这样我们才能写出Log,在我们的脚本所在的文件夹中,有两个文件很重要,mdrv.log.txt和output.txt文件,lr_log_message只会把信息输到mdrv.log文件中,而lr_output_message则会写进以上两个文件。
  (2)controller的runtime settings设置:在controller我们也要设置runtime settings,这样才能在场景运行后查看相应 日志,而且每个用户组的runtime settings都有设置。设置的方法是:在controller的design标签页中,右下角的部分有runtime settings按钮,我们点击它,设置的方法与在vgen中一样的。很多朋友都会想知道多次迭代,参数是否正确的导入了呢,我们依旧查看log,我们在执行结束后,查看结果目录的Log文件夹,如果是负载生成器运行的话,则在tmp目录。
   Windows环境下,日志文件output.txt保存在脚本目录中;在UNIX环境下,保存在标准输出中。
【Vuser】——【Run Time Settings】——【General】——【Log】
1、【Enable logging】启动日志功能;(建议运行场景进行负载 测试时关闭此项)
2、【Send messages only when an error occurs】仅发送出错时的日志,可设置缓存大小(默认1KB);
3、【Always send message】发送所有日志;
4、【Standard log】标准日志,脚本运行时发送函数信息;
【Extended log】扩展日志:
5、【Parameter substitution】脚本运行时,在【Replay log】显示参数信息、参数值;
6、【Data returned by  server】记录服务器返回的所有数据;
7、【Advanced trace】多用于脚本调试,记录VU在运行期间发送的所有函数信息。
  ========================================
  【Replay log】显示的日志颜色:
  1、红色:错误信息;
  2、橙色:迭代信息;
  3、蓝色:事件信息;
  4、黑色:输出信息;
  5、绿色:字符信息。
  ========================================
   输出函数:

 

1、lr_log_message()    // 输出信息,并记录到 output.txt 中
2、lr_output_message()    // 输出信息,不记录到日志文件中
3、lr_message()    // 输出信息,不记录到日志文件中
4、lr_error_message()    // 输出信息,不记录到日志文件中

 

怎样限制“LoadRunner Agent”的连接 / 

http://bbs.51testing.com/thread-145024-1-1.html

方法一:

利用自定义vbs脚本通过telnet远程登录机器停止"LoadRunner Agent Service"服务即可

C:\Users\Lindows\Desktop\mstsc\StartAndStopVMS\

操作步骤说明:

1、解压StartAndStopVMS于D盘下

2、批量启动10.19.95.1~18上的LR agent服务,在dos下执行start0_18.vbs

3、批量停止10.19.95.1~18上的LR agent服务,在dos下执行stop0_18.vbs

如需要增加或者减少需要启停的Agent,需要做如下操作(假设远程机器上的LR及Agent已经安装好):

增加:

1、agent所在机器设置LR agent为Service启动。启动后服务名称为"LoadRunner Agent Service"

2、agent所在机器启动telnet服务

3、在控制机器的StartAndStopVMS目录下,创建启停该agent的vbs脚本(拷贝原来的start10.19.95.1.vbs等来改)

4、在start0_18.vbs脚本中添加该台机器的启停命令

减少:

直接在stop0_18.vbs中删掉相应的命令即可。如有需要可以将agent所在机器的telnet服务也关掉

注意:在运行vbs脚本的过程中dos窗口不要切换,运行执行完成才可以动。平均启停一台服务的时间大概为20秒左右

 

多台Loadrunner机器批量启动Loadrunner agent服务总控制脚本

文件:loadrunner_agent_start_all.vbs

 

set sh=WScript.CreateObject("WScript.Shell")     
WScript.Sleep 1000
sh.SendKeys "D:{ENTER}"    
WScript.Sleep 1000
sh.SendKeys "cd D:\StartAndstartVMS{ENTER}"    
WScript.Sleep 1000
sh.SendKeys "dir{ENTER}"      
WScript.Sleep 1000
'调用Loadrunner机器95.1
sh.SendKeys "start10.19.95.1.vbs{ENTER}"
WScript.Sleep 20000
sh.SendKeys "{ENTER}"
WScript.Sleep 1000
sh.SendKeys "echo 10.19.95.1start success {ENTER}"
WScript.Sleep 1000
'调用Loadrunner机器95.2
sh.SendKeys "start10.19.95.2.vbs{ENTER}"
WScript.Sleep 20000
sh.SendKeys "{ENTER}"
WScript.Sleep 1000
sh.SendKeys "echo 10.19.95.2start success {ENTER}"
启动单台windows机器的Loadrunner Agent Service脚本

 

文件1:start10.19.95.1.vbs

 

set sh=WScript.CreateObject("WScript.Shell")     
WScript.Sleep 1000
sh.SendKeys "telnet 10.19.95.1{ENTER}"      
WScript.Sleep 1000
sh.SendKeys "y{ENTER}"          
WScript.Sleep 1000
'输入用户名                   
sh.SendKeys "administrator{ENTER}"                             
WScript.Sleep 1000
'输入密码
sh.SendKeys "123456{ENTER}"                           
WScript.Sleep 1000
'启动Loadrunner服务
sh.SendKeys  "net start ""LoadRunner Agent Service""{ENTER}"
WScript.Sleep 10000
sh.SendKeys  "exit{ENTER}"
文件2:start10.19.95.2.vbs 

 

set sh=WScript.CreateObject("WScript.Shell")     
WScript.Sleep 1000
sh.SendKeys "telnet 10.19.95.2{ENTER}"      
WScript.Sleep 1000
sh.SendKeys "y{ENTER}"          
WScript.Sleep 1000
'输入用户名                   
sh.SendKeys "administrator{ENTER}"                             
WScript.Sleep 1000
'输入密码
sh.SendKeys "123456{ENTER}"                           
WScript.Sleep 1000
'启动Loadrunner服务
sh.SendKeys  "net start ""LoadRunner Agent Service""{ENTER}"
WScript.Sleep 10000
sh.SendKeys  "exit{ENTER}"

多台Loadrunner机器批量停止Loadrunner agent服务总控制脚本

文件:loadrunner_agent_sotp_all.vbs

 

set sh=WScript.CreateObject("WScript.Shell")     
WScript.Sleep 1000
sh.SendKeys "D:{ENTER}"    
WScript.Sleep 1000
sh.SendKeys "cd D:\StartAndstartVMS{ENTER}"    
WScript.Sleep 1000
sh.SendKeys "dir{ENTER}"      
WScript.Sleep 1000
'调用Loadrunner机器95.1
sh.SendKeys "stop10.19.95.1.vbs{ENTER}"
WScript.Sleep 20000
sh.SendKeys "{ENTER}"
WScript.Sleep 1000
sh.SendKeys "echo 10.19.95.1stop success {ENTER}"
WScript.Sleep 1000
'调用Loadrunner机器95.2
sh.SendKeys "stop10.19.95.2.vbs{ENTER}"
WScript.Sleep 20000
sh.SendKeys "{ENTER}"
WScript.Sleep 1000
sh.SendKeys "echo 10.19.95.2start success {ENTER}"
停止单台windows机器的Loadrunner Agent Service脚本

 

文件1:stop10.19.95.1.vbs

 

set sh=WScript.CreateObject("WScript.Shell")     
WScript.Sleep 1000
sh.SendKeys "telnet 10.19.95.1{ENTER}"      
WScript.Sleep 1000
sh.SendKeys "y{ENTER}"          
WScript.Sleep 1000
'输入用户名                   
sh.SendKeys "administrator{ENTER}"                             
WScript.Sleep 1000
'输入密码
sh.SendKeys "123456{ENTER}"                           
WScript.Sleep 1000
'停止Loadrunner服务
sh.SendKeys  "net stop ""LoadRunner Agent Service""{ENTER}"
WScript.Sleep 10000
sh.SendKeys  "exit{ENTER}"
文件2:stop10.19.95.2.vbs 

 

set sh=WScript.CreateObject("WScript.Shell")     
WScript.Sleep 1000
sh.SendKeys "telnet 10.19.95.2{ENTER}"      
WScript.Sleep 1000
sh.SendKeys "y{ENTER}"          
WScript.Sleep 1000
'输入用户名                   
sh.SendKeys "administrator{ENTER}"                             
WScript.Sleep 1000
'输入密码
sh.SendKeys "123456{ENTER}"                           
WScript.Sleep 1000
'启动Loadrunner服务
sh.SendKeys  "net stop ""LoadRunner Agent Service""{ENTER}"
WScript.Sleep 10000
sh.SendKeys  "exit{ENTER}"

 

LR接口性能测试提示Code - 60990 Error: Two Way Communication Error: Function two_way_comm_post_message / two_

LR:接口性能测试时提示:Code-29723 Error: Failed to deliver a p2p message from parent to child process, reason

http://bbs.51testing.com/thread-128773-1-1.html

http://blog.csdn.net/he_jian1/article/details/41513909

http://blog.csdn.net/he_jian1/article/details/41513767

我今天也遇到了,搜寻了网上的解决方案

Error: Two Way Communication Error: 

Function two_way_comm_post_message/two_way_comm_post_message_ex failed.

原因:

共享内存缓存溢出,造成Controller和Load Generator之间通讯出现问题。

解决方案:

修改两个配置文件。

1. $installation folder$\dat\channel_configure.dat

2. $installation folder$\launch_service\dat\channel_configure.dat

在这两个文件中的[general]部分下添加如下配置。

shared_memory_max_size=100 (修改共享内存为100MB,默认是50MB)

重新启动Controller,问题解决。

但对于我的,好像不适用呀!还没有解决!

我是win7系统,lr11版本的,运行100vuser,持续10分钟,无思考时间。

共执行事务成功2128,没有失败的事务,但报错30。

解决问题2:

 

 

测试项目:MYSQL与DB2数据库CRUD性能对比 

项目时间: 2013 11至 2013 12

测试环境:Linux+tomcat+DB2+MYSQL

测试工具:Loadrunner

项目描述:系统是为处相关的请求。

责任描述:确定测试计划的目的和策略(相同场景对比DB2和MYSQL的相关性能指标)后,再针对系统进行性能测试。

优化点:查询MSQL的时候出现了性能瓶颈,对于问题分析后发现由于未使用连接池而不停的创建数据库连接,所以导致DB2的CPU资源大部分用于连接。更改代码后使用C3P0连接池问题解决。

 

loadrunner https / loadrunner ssl / loadrunner tls

问题如下:

Virtual User Script started at : 2017-04-07 10:55:54
Starting action vuser_init.
Web Turbo Replay of LoadRunner 11.0.0 for WIN2003; build 8859 (Aug 18 2010 20:14:31)  	[MsgId: MMSG-27143]
Run Mode: HTML  	[MsgId: MMSG-26000]
Run-Time Settings file: "D:\TestCase\20170407_dbms_prd\tc_dbms_login\\default.cfg"  	[MsgId: MMSG-27141]
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(3): Notify: Transaction "1_transaction denglu" started.
Action.c(5): Error -27759: Unknown SSL version TLS1.1: use one of '2', '3', '2&3', 'TLS'  	[MsgId: MERR-27759]
Action.c(5): web_set_sockets_option highest severity level was "ERROR"  	[MsgId: MMSG-26391]
Action.c(5): Notify: Transaction "1_transaction denglu" ended with "Fail" status (Duration: 0.0214).
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.

解决方案:

web_set_sockets_option("SSL_VERSION","TLS1.1");   

改为

web_set_sockets_option("SSL_VERSION","TLS");    

 

loadrunner 处理 HTTPS / ssl / 证书 / cer / pem

loadrunner 那个https的问题解决了  / web_set_sockets_option("SSL_VERSION","TLS");

主站的证书从ssl3.0更换成TLS1.0 , Loadrunner 默认是ssl3.0的;在脚本开始加个函数就解决了

web_set_sockets_option("SSL_VERSION","TLS");      // 有HTTPS请求的需加上这段,还有就是勾选加载静态资源即可。

http://www.51testing.com/html/92/450992-248065.html

Advanced高级的

Winlnet replay instead of sockets(windows only)

 

申煜 2016-08-12 11:08:23

勾选这个,调试脚本的时候没有问题,但是场景执行的时候,会报超时的错误

申煜 2016-08-12 11:08:37

不勾选这个,他们连不上HTTPS的服务器

 

 

http://blog.163.com/faye422@126/blog/static/35518992201251910195554/

HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议

它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版。

在使用https协议不管是服务器端还是客户端都需要使用到ca证书来进行访问。

一般来说,性能测试为所常见的为客户端使用https打开页面的方式。

在这个情况下,首先是处理https访问过程中的证书

1. 证书的准备

常见的证书为:*.pfx格式,该种格式的证书可以通过双击运行安装到IE浏览器上。用户在访问的时候就可以使用到。

但这种证书并不是LoadRunner所使用的类型,因此需要对其进行转换。将其转换为*.pem格式。

转换方法如下:

? 安装openssl后

? 运行C:\<OpenSSL>/bin文件夹的openssl二进制文件,它将启动OpenSSL命令提示符

? 执行以下命令:pkcs12 -in D:\test1.pfx -out D:\test01.pem –nodes

? 执行后,将会在指定目录生成test01.pem文件,这个文件将会在下一个步骤,对LoadRunner进行配置的时候使用到。

2.LR配置

启动LoadRunner,打开Recording Option选项。

留意红色框中的选项。

选择后,单击New Enty

红框中的配置为服务器的ip和端口号,按照测试所需要的实际地址进行配置就可以

配置后,将Use specified client-side certificate[Base64/PEM]钩选,为使用客户端证书访问。

单击...选择刚刚转换生成的客户端证书。

如果你为证书有设置密码,在这里也需要输入。

到此为止所有与http区别的配置就完成了。

录制后,可以在脚本的开始,看到LoadRunner新生成的语句

web_set_certificate_ex("CertFilePath=test01.pem",

"CertFormat=PEM",

"KeyFilePath=test01.pem",

"KeyFormat=PEM",

"Password=123456",

"CertIndex=1",

LAST);

下面的操作和普通的页面性能测试一样。

 

loadrunner中对https证书的配置

http://blog.sina.com.cn/s/blog_69d2c56c0102uydd.html 

1、先访问要压测的网站地址,从浏览器中将证书导出,或者直接找开发人员要这个证书;
     一般证书是cer格式;
     
2、因为loadrunner只支持pem格式的证书,所以要将证书转换格式;
      这里就需要用到openssl工具,进入cmd命令窗口,进入openssl的安装目录,输入命令将证书转换为pem格  式,详情请参考上面两篇博文;
 
3、得到pem格式的证书之后,在loadrunner->vuser窗口->tools->Port Mapping页面进行设置:
     先点击New Entry按钮,如下图所示:
                         loadrunner中对https证书的配置
进入Entry配置窗口,进行配置,如下图所示
                        loadrunner中对https证书的配置

4、配置完毕后,录制脚本,正常情况下,录制的脚本前面会出现证书信息,如下所示:
           web_set_certificate_ex("CertFilePath=admin149.pem", 
                "CertFormat=PEM", 
                "KeyFilePath=admin149.pem", 
                "KeyFormat=PEM", 
                "Password=123456", 
                "CertIndex=1", 

LAST); 

 

 

http://blog.csdn.net/he_jian1/article/details/40781521

问题1: 

Error: Exception was raised when calling event-notify Vuser function in extension parameng.dll: System Exceptions: EXCEPTION_ACCESS_VIOLATION 

解决方法: 

Exception was raised when calling event-notify Vuser function in extension parameng.dll: System Exceptions: EXCEPTION_ACCESS_VIOLATION

可能出现的原因:

Controller doesn’t support parameter files larger than 20 megs. 

  控制器不支持参数文件大于20M的大小

解决方法:Contact support and request the private patch created for this problem for LoadRunner 9.5.2, For LoadRunner 11 the issue is resolved on patch 4.

下载补丁

如无解决:其它方法:在C 盘新建一个TEMP目录,把环境变量TMP,TEMP的值设置成问题2: 

Error:Abnormal termination, caused by mdrv process termination.  

解决办法: 把线程改为进程; 

Run vusers as process instead of threads.Please go to Runtime Settings > Miscellaneous > Multithreading > RunVuser as a process.

 

问题3: 

error :Two Way Communication Error: Function two_way_comm_post_message   原因: 

共享内存缓存溢出,造成Controller和Load Generator之间通讯出现问题。  

解决方案: 修改两个配置文件。 

1. $installation folder$\dat\channel_configure.dat 

2. $installation folder$\launch_service\dat\channel_configure.dat 在这两个文件中的[general]部分下添加如下配置。 

shared_memory_max_size=100 (修改共享内存为100MB,默认是50MB) 重新启动Controller,问题解决。

问题4:在Controller中运行脚本时出现异常:Failed to Stop. Reason: TimeOut  

原因: 初始化timeout错误:这个问题,原因是因为某个虚拟用户在transaction初始化时超时了。 解决办法:将controller------tools------timeout-----vuser---init时间设大些,默认为120,如设为600解决

此问题

解决问题2:两个dat文件,修改成如下的配置内容后,java vuser协议使用线程并发最大由450增大为5000(原理不详,问题已解)。

C:\Program Files\HP\LoadRunner\dat\channel_configure.dat

[General]


[web_server_info]
acceptor_nd_port=
acceptor_dummy_port=
acceptor_name=
min_port=
max_port=
isapi_log= 

C:\Program Files\HP\LoadRunner\launch_service\dat\channel_configure.dat

[General]


[web_server_info]
acceptor_nd_port=
acceptor_dummy_port=
acceptor_name=
min_port=
max_port=
isapi_log=

 

 

问题5:(引起问题2的其他可能的原因)  

运行场景后,提示“Abnormal termination, caused by mdrv process termination”,服务端没有挂,仍可正常访问,且在运行场景时,没有自动重启。找下了,网上的答案原因可能是以下: 

1. The Host machine ( Load generator) is running too many Vusers as a result 

of which it system resources are being maximized. ( i.e. Consistent over 90% CPU and Memory utilization). The mdrv process does not get enough resources to process the request as a result it fails

2. If you have Custom C coding, there is a possibility of allocated memory not 

being freed or memory violation errors which can lead to 'mdrv process termination'. 

3. Replay the script with think time. 

4. Turn off extended log when running the script in the controller. 

5. Do not use the controller itself as the loadgenerator. i.e. have a remote 

LoadGenerator. 

6. Introduce iteration pacing, if running more than one iteration each vuser. 

7. Open the file loadrunner installation\config\wlrun7.ini in a text editor, 

modify the entry from: AgentMaxThreadsPerDriver=50 to AgentMaxThreadsPerDriver=20 or 10

8. Run Agent as process instead of service Launch command prompt and navigate 

to C:\Program Files\Mercury\Loadrunner\Launch_service\bin and run the command magentserive -remove. This will remove the agent. Now run the command magentproc -install This will install the agent as a process. 

9. Run vusers as process instead of threads.Please go to Runtime Settings > 

Miscellaneous > Multithreading > RunVuser as a process. 

 

 

Loadrunner 9.5/11 java vuser环境配置问题(已解决)

http://blog.csdn.net/achang21/article/details/45540483 

Loadrunner 9.5/11 使用java 开发vsuer script需要的环境配置

 本文从两个方面来讲:windows 32位操作系统;windows 64 操作系统

开始之前,先说下java环境变量配置(共3处):

(1)JAVA_HOME: C:\Program Files\Java\jdk1.6.0_45  (请根据实际情况配置)

(2)PATH: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

(3)CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar(前边是点号分号)

一、windows 32位操作系统安装Loadrunner 9.5/11 使用java vuser 必要的配置

(1)操作系统:windows 32位系统(windows7 32 位 测试通过)

(2)JDK版本:jdk1.6 32位(jdk1.6测试通过,目前LR不支持1.7及以上的)

(3)对jdk1.7及以上开发的脚本,运行会报错,原因 LR不支持JDK1.7及以上,如果环境OK,需要新建测试脚本。

这几点非常重要,不然会报各种问题的错误,例如:

Error: Java VM internal error:Error Loading javai.dll.

.[MsgId: MERR-22995]

Warning: Extension java_int.dll reports error -1 on call to function ExtPerProcessInitialize[MsgId: MWAR-10485]

Error: Thread Context: Call to service of the driver failed, reason - thread context wasn't initialized on this thread.[MsgId: MERR-10176]

二、 windows 64 位操作系统安装Loadrunner 9.5/11 使用java vuser 必要的配置

(1) 操作系统 windows 64(windows 7 64位测试通过)
(2) jdk 1.6  必须是32位的(虽然操作系统是64位的),不能是64位jdk,目前jdk 1.6 32位的再windows 7 64位上测试通过。
64位系统 安装64位jdk 1.6,运行脚本会报如下错误:
Error: Failed to find java.exe.
Please add the <JDK>\bin to the path and try again.[MsgId: MERR-22968]
Warning: Extension java_int.dll reports error -1 on call to function ExtPerProcessInitialize[MsgId: MWAR-10485]
Error: Thread Context: Call to service of the driver failed, reason - thread context wasn't initialized on this thread.[MsgId: MERR-10176]

特别强调:

以上两点非常重要,请大家核对自己的配置。

 

OpenStack平台 Windows 2008 系统LoadRunner 11 系统所在物理机raid磁盘整列卡异常问题

http://dl2.iteye.com/upload/attachment/0115/0103/812eb9ac-3d48-37c4-818a-65ac08509b0d.png

我们的数据库中包含82个不同的文件的文件名viostor.sys的 but this page contains information about single file with specific attributes. If you want to see general information about the viostor.sys then visit General Information Page . You can also check most distributed file variants with name viostor.sys. 此文件属于产品的Red Hat VirtIO SCSI controller的 ,并制定了公司的Red Hat Inc.的。 该文件描述Red Hat VirtIO SCSI driver的。 此文件包含的驱动程序。你可以找到它的系统资源管理器“中的”驱动程序“一节。

 

产品:Red Hat VirtIO SCSI controller

公司:Red Hat Inc.

描述:Red Hat VirtIO SCSI driver

版本:62.65.104.7400

MD5:fb5c2764f90752337564d5c527a63ec4

SHA1:90bd73933331b79face98ad376ecb92877630c96

SHA256:c34cd19876a6b5e97a14cc51cd780930fb1f505e4c04b98abd94f1a59235080b

大小:25800

目录:C:\Windows\System32\DRIVERS

操作系统:Windows 8

发生:低 oc0

数字签名:Red Hat, Inc.

 

loadruner java测试类 stdOutErr 文件巨大问题解决

D:\TestCase\20160330_minos2_pre\tc_minos2_pre_1_foraction\stdOutErr.txt 

 

问题现象:loadrunner Controller场景C:\Program Files\HP\LoadRunner\bin\Wlrun.exe测试时,多台loadrunner agent机器stdOutErr.txt会有大量日志打印。

C:\Documents and Settings\Administrator\Local Settings\Temp\1\stdOutErr.001文件巨大

 

d

问题原因及解决:

此为loadrunner java测试类,该类调用的一堆jar列表中(rsf-2.0.1.jar)含有控制台打印日志的行为(SystemOut)D:\TestCase\20160330_minos2_pre\libs\rsf-2.0.1.jar,虽然开发人员部署jboss服务器是不打印,但是编写loadrunner java测试类时,该rsf-2.0.1.jar中含有SystemOut输入,loadrunner 场景设置时没有关闭日志,导致stdOutErr增长过大。

解决方案:

loadrunner 场景设置时关闭日志,脚本设置里最好关闭日志打印。

问题现象二

Error (-17998): Failed to get [param not passed in call] thread TLS entry. 

解决方案:

java main测试类中含有多种log组件冲突,精简后loadrunner 调试java类 不再打印TLS 异常。

(各组员组件使用不统一,服务接口rsf-2.0.1.jar版本升级新增其他log jar依赖如下)

snf-log-1.1.2.jar

logback-classic-1.1.2.jar

logback-core-1.1.2.jar

minlog-1.2.jar

commons-logging-1.1.1.jar

log4j-over-slf4j-1.7.7.jar

 

http://snwk.cns*****.com/snwk-web/docs/docViewIndex.htm?docId=23477

当同时校验多个返回码时,需要使用如下方法

Action()
{
		lr_start_transaction("抢S码");
		
		web_reg_save_param("param",
		"LB=<code>",
		"RB=</code>",
		LAST)

		web_custom_request("web_custom_request",
		"URL=http://mpspre.cns*****.com/mps-web/lottery/getRandomSolution.htm",
		"Method=POST",
		"TargetFrame=",
		"Resource=0",
		"Referer=",
		"Mode=HTTP",
		"Body=<?xmlversion=\"1.0\"encoding=\"UTF-8\"?>"
		"<MbfServicexmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
		"<input1>"
		"<MbfHeader>"
		"<ServiceCode>CellPhoneClientMgmt</ServiceCode>"
		"<Operation>extrActGroupRedPacket</Operation>"
		"<AppCode>MTS</AppCode>"
		"<UId>8f69badc756847868618b42f82aff97657164808b9bf4374</UId>"
		"<AuthId>MTS;Syoba2C335g3</AuthId>"
		"</MbfHeader>"
		"<MbfBody>"
		"<activityType>c2NvZGU</activityType>"//活动类型,抽S码活动为“c2NvZGU”写死
		"<thirdAccount>{NewParam}</thirdAccount>"//用户账号,传custNum
		"<thirdAccountType>2</thirdAccountType>"//用户账号类型,“2”写死
		"</MbfBody>"
		"</input1>"
		"</MbfService>",
		LAST);
		
		//使用if嵌套语句只要响应消息为1009或1004都认为正确,另外最重要的是atoi函数(主要作用是完成类型转换,将字符类型转换为整数类型)
		if(atoi(lr_eval_string("{param}"))==1009 || atoi(lr_eval_string("{param}"))==1004 ){
				lr_end_transaction("抢S码",LR_PASS);
		} else{
				lr_end_transaction("抢S码",LR_FAIL);
		}
		
		//下面的写法比较坑,上面的判断即为上好的写法,通俗易懂,沁人心脾
		/*
		if(atoi(lr_eval_string("{param}"))==1009 ){
			lr_end_transaction("抢S码",LR_PASS);
		}	else {
				if(atoi(lr_eval_string("{param}"))==1004){
					lr_end_transaction("抢S码",LR_PASS);
				}else{
					lr_end_transaction("抢S码",LR_FAIL);
				}
		}
		*/
		
}

 

问题描述:

loadrunner https 脚本 

Action()
{
        int HttpRetCode;
	//web_set_sockets_option("SSL_VERSION","TLS");
	//web_set_sockets_option("CLOSE_KEEPALIVE_CONNECTIONS", "1");
	HttpRetCode = web_get_int_property(HTTP_INFO_RETURN_CODE);
	web_reg_find("Fail=NotFound",
		"Search=All",
		"SaveCount=hello",
		"Text=OK",
		LAST);
	lr_start_transaction("https_url");
	web_custom_request("https_url",
				"URL=https://10.27.84.101/foo",
				"Method=GET",
				"Resource=0",
				"RecContentType=text/html",
				"Snapshot=t8.inf",
				"Mode=HTML",
				"Body=",
				EXTRARES,
				LAST);
    if (atoi(lr_eval_string("{HttpRetCode}")) > 0 && atoi(lr_eval_string("{hello}"))>0){
        lr_end_transaction("https_url", LR_PASS);
    }else{
        lr_end_transaction("https_url", LR_FAIL);;
    }    
	return 0;
}
报错日志: 

Action.c(18): Error -27780: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "10.27.84.101" failed: [10054] Connection reset by peer [MsgId: MERR-27780]

解决方案: 脚本中添加如下两行函数即可。

web_set_sockets_option("SSL_VERSION","TLS"); web_set_sockets_option("CLOSE_KEEPALIVE_CONNECTIONS", "1");

测试ok。

 

问题描述

loadrunner在跑脚本时报错 , Action.c(100): Error -26630:

http://www.reader8.cn/jiaocheng/20130128/2078488.html

Action.c(100): Error -26630: HTTP Status-Code=401 (Unauthorized) for "http://192.168.110.95:7001/ekp/KMSV65/admin/index.jsp?SiteId=8"

Action.c(100): Error -26547: Authentication required, please use web_set_user, e.g. web_set_user("domain\\user", "password", "host:port");

[解决办法]

HTTP错误401 - 您未被授权查看该页

所以后面人家让你试试设定正确的web_set_user("domain\\user", "password", "host:port")

当然也不排除其它原因导致,例如该帐号已经处于登录状态,因此对于重复登录,系统进行了屏蔽处理等;

[解决办法]

看你测试的系统有单点登录,看你的用户名密码是不是设置错误了。本次问题案例就是用户名密码错误导致。无需设置web_set_user函数。

 

LR报错 No buffer space available Try changing the registry value 端口号不够用了

http://www.bubuko.com/infodetail-1994536.html

报错:Action.c(6): Error -27796: Failed to connect to server "10.16.137.8:10035": [10055] No buffer space available
Try changing the registry value 
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\TcpTimedWaitDelay to 30
and HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters\MaxUserPort to 65534
解决办法:
运行时设置里的 每次迭代模拟一个新用户 勾勾去掉。这样就不会每一个事务都开一个端口,端口就够用了。。

之前搜到的都是说把那两个注册表参数时间改小,端口改大,试了不行,后来进群问了才知道,这两个参数默认的就是那样,是系统的最小或最大值,设置了也没用。问题的关键就是http请求,设置成了每一个事务都起一个端口,自然不够用,要设置成每一个用户复用一个端口的意思。就是前面的方法,运行时设置里的 每次迭代模拟一个新用户 勾勾去掉。

技术分享

 

end

 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值