转载 loadrunner的一些问题解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转载 loadrunner的一些问题解决相关的知识,希望对你有一定的参考价值。
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/[email protected]/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
参考:
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:[email protected]
MSN:[email protected]
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”选项,再回放是否成功。
3.LoadRunner HTTP服务器状态代码:在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。
错误现象2:-500 Internal Server Error服务器内部错误,脚本运行停止。
4.LoadRunner请求无法找到:在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。
5. Abnormal termination, caused by mdrv process termination
6.LoadRunner录制脚本时为什么不弹出IE浏览器?
7.LoadRunner录制脚本时提示默认浏览器不支持解决方法?
8.LR录制Web脚本时,生成的脚本中存在乱码该如何解决?
9.HTML-based script与URL-based script的脚本有什么区别?
10.为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行?
11.运行时的Pacing设置主要影响什么?
12.运行时设置Log标签中,如果没有勾选“Enable logging”,则手工消息可以发送吗?
13.LoadRunner如何在IE7+Win2003环境下录制脚本?
安装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”?
所以需要打上补丁:“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”。
15.VuGen支持Netscape的客户证书吗?
16. LoadRunner场景执行时第1次报错 error:missing newline in d:\\test\\test1.dat,第2次场景执行时不报错?
17.LoadRunner场景执行时出现错误:“load generator is currently running the maximum number of vuser of this type”
18.VuGen会修改录制浏览器中的代理服务器设置吗?
19.在LoadRunner脚本如何输出当前系统时间?
20.Loadruner在一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。从第二次迭代开始发生错误?
21.LoadRunner中“Run-time Setting”中的线程和进程运行方式的区别?
22.在Controller中运行Web相关测试场景时,经常会有很多超时错误提示,如何处理这类问题?
23.为什么Windows系统中的CPU、内存等资源仍然充足,但是模拟的用户数量却上不去?
(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定义每个桌面堆得大小。
通过对注册表的更改,系统将允许运行更多的线程,因而可以在计算机上运行更多的Vuser。这意味着能够模拟的最大并发用户数量将不受Windows操作系统的限制,而只受硬件和内部可伸缩性限制的约束。
24.Controller中设置了用户并发数量,但是运行时为何初始化的用户数量少于实际数量?
25.如何让场景的用户执行发生错误继续运行,以保证不间断进行压力测试?
26.为什么.NET虚拟用户有时不能在远程主机执行?
27.测试分析结果中会统计Action时间,而实际上可能并不须要这些数据,如何只显示自己定义的用户事务?
28.测试结果中,Summary和平均事务响应时间图里的各个事务的最大值、平均值、最小值为什么显示不一样?
29.统计结果中的总点击量Total Hits时用户的鼠标点击次数吗?
30.有些Web测试结果分析图(例如每秒返回页面数)在测试结果分析图中无法看到,如何进行配置?
、Step download timeout (120 seconds)
设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。
31.问题描述Connection reset by peer
32.问题描述connection refused
33.问题描述open many files
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
38.问题描述:HTTP Stat
以上是关于转载 loadrunner的一些问题解决的主要内容,如果未能解决你的问题,请参考以下文章
loadrunner 联机跑负载 win server 2012 r2环境部署