loadrunner-27796错误寻求解决办法

Action.c(58): Error -27796: Failed to connect to server "www.baidu.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


 

.......2012.10.20.-----

网上的提示多为:LR压力测试遇到如上错误,跟据提示在注册表中已将TcpTimedWaitDelay  改为 1;MaxUserPort 改为 65534;并且重启电脑。运行后仍出现上面的错误。。。。但还是无法解决。

于是~~~~:
在 run-time setting/browser emulation中将simulate a new user on each iteration  选项去掉(默认是选中的)。重新运行一切正常,没有错误出现。

 

【复制博主的猜测:
猜测原因,客户端性能比较好,发出压力太快,所以把tcp/ip的连接或端口占满。在网上查了一下,xp好像默认开启15个tcp/ip。。。

去掉这个选项的意思是,始终使用一个tcp/ip链接,不断开,也就是开发人员所说的长链接或持久连接。   
短连接:建立连接-----发送和接收报文1-------关闭连接

长连接:建立连接-----发送和接收报文1.。。。2.。。。3-----关闭连接 】

妈的,累死了,搞了一整个晚上的connectify还是不能用,我cao...!又熬夜了,还一事无成,我的超级本啊,我的PPT啊。cao。。。不弄了,来去睡。

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

 Error -27796: Failed to connect to server "125.93.51.230:8080": [10061]

Connection refused..

2013.05.31,这个27796一直是我心中的痛,试过网上所有的方法了,还是不行,我只能怀疑是不是我的客户端OS是win7的,所以才造成这种情况.....哎~!

认真分析这个错误,其实比较容易理解,就是连接不上服务,由于端口已经满了,那么自己的本机已经修改成65534,服务器已经修成成65534,那么这就是唯一的解决方式么?后来仔细思考,我找到了两种解决方式:

1、通过让每次迭代不启用新的连接,我想就可以解决此问题,经过验证,发现这个问题确实不发生了。操作如下,在controller的运行时设置中的-->browser Emulation-->不扣选simulate a new user on each iteration,这样运行时并发人数是多少,那么就启动多少个端口。还是上面的问题,是否勾选这个选项就一定会报27796错误么?

2、回答上面的提问,答案是不一定。如果你每次迭代启用新的端口,但是由于迭代次数*并发数<65534就不会报这个错误。如果设置的迭代次数*并发数>65534,也不一定会出现这个错误,例如:并发人数为1000,平均响应时间为1s,那么也就是说1s会占用1000个端口,也就是说不到66s时端口就会占满,如果服务器能在65s内关闭之前占用的端口之间的连接,也就是说65s超时时间,或者会话保持为65s以内,那么就能解决此问题。

以上提出两种解决方式,都可以解决27796error,一个是修改loadrunner中的controller设置,另一个就是设置服务器的超时时间在合理范围之内,不要太长,也不要太短。

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

官方的troubleshooting:
查看工具的troubleshooting,如下:
Message Code 27796
Failed to connect to server 'hostname';port_ld': 'reason'.
Unable to connect to the specified server and port.
Troubleshooting
o      Try to address the reason provided for the connection failure.
o      Try to access the application with a browser from the injector machine and from another machine (such as the recording machine).
o      Check that you accurately specified the correct host name and port.
o      Ping the host/port.
o      Check if the server application you are trying to access is running.
o      If you used a hostname, check if it was resolved to the correct address.
o      Check if the server application is listening to the right port.


成功的解决方法:
 
在负载生成器的注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters里,有如下两个键值:
TcpTimedWaitDelay
MaxUserPort
1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。
 
反复验证,问题解决。【我怎么试了好几种方法都失败啊。】

----------------------------------------------------connection time out---------------
Error -27796: Failed to connect to server "ip地址": [10060]  Connection timed out 的解决办法:

解决办法一是:

(1)1. 修改run time setting中的请求超时时间Preferences 中点击Options 其中有三项的参数可以一次都修改了,HTTP-request connect timeout,HTTP-request receieve timeout,Step download timeout,分别建议修改为1000、1000、10000;run time setting设置完了后记住还需要在control组件的option的run time setting中设置相应的参数;

     2. Browser Emulation 中的Download non-HTML resources 选项去掉,点击OK即可 

(2)办法(一)不能解决的情况下,解决办法如下:

  设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。


你可能感兴趣的:(loadrunner,性能测试)