loadrunner 性能测试报error-27796的解决
网上观点:
在注册表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters里,有如下两个键值:
TcpTimedWaitDelay
MaxUserPort
1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。
实践:将TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s,问题解决。
load runner transaction 提示error:
Action.c(15): Error -27796: Failed to connect to server "10.9.34.101:80": [10061] Connection refused
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.
|
在测试一个web站的接口项目中,出现了大量的27796错误(此报错代码有很多种错误提示,比如:27796—Failed to connect to server、27796—timeout、27796-No Route To Host等),根据LR的帮助提示是修改注册表的两个键值后方可解决,我试着修噶了注册表,重启了机器,在喜气冲冲的进行新的一轮压测过程中发现,错误木有解决,依然存在27796错误。我开始在网上搜索此问题的处理办法,说法云云:1、重启机器、2、修改注册表、3、更换操作系统(囧)我发现对我木有效果,出现错误的请求占总请求的20%左右,这个比例压测是无任何意义的!心灰意冷....
我开始从第一个27796—Failed to connect to server开始查找原因,如果出现连接失败,肯定是客户端与服务器端的通信出现了问题导致的,不论外界原因,实质就是通信!
我试着使用网络工具wireshark在LoadRunner开启时,抓取通信信息。问题出现了,在监测通讯过程中发现,问题出现在第二次握手,客户端已经发出syn包,但服务器端没有接受到syn包,
当timewait三秒钟后再次发出syn包,服务器端可以接收到此包,问题出现了,就是说这个请求在没有建立连接时就出现错误了,神奇了!!!
客户端与服务器端
建立连接如下:
第一次 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。第二次 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
问题找到原因了,那么这些不同的27796有那些问题,如何产生的呢?
答案1:大家可能有手工编写脚本的习惯,大家使用最多的协议应该是web/http协议,那么GET、POST请求是最常见的,例如:web_url("www.baidu.com", "URL=http://www.baidu.com",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
LAST);
这段代码中我们来分析下,如果把以上代码修改为
web_url("www.baidu.com", "URL=http://www.baidu.com",
LAST);
请
求是否成功?答案是肯定是,可以发起get请求。那么大家实验过没有如果这样的话,在压测过程中是否出现过问题?LR会出现27796错误,大家可以实验
下,那么问题出在那呢?问题就出现在自己的代码中,缺少RecContentType=text/html类型导致GET请求出现问题,服务器端无法识别
请求携带的标示,所以自己的代码编写是27796产生的一部分
原因2:这个是摘自百度的
帖子"因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占
满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time
out。即在最后一个端口还没有用到时,前面已经有端口在释放了"
说白了点,就是端口没有释放掉timeout状态,没有恢复到监听的状态,所以此时做好的办法就是,重启电脑恢复这些端口占用的状态,当重启机器后,查看状态netsat -nao 后,如果恢复到正常端口的状态,就可以再次进行性能测试了。
原因3:第三个原因
在
性能测试i过程中,可能出现服务器资源利用率过高,导致建立连接失败现象,此类错误应该查看服务器的资源利用率,如果出现了资源利用过高现象,27796
的错误也会在此时产生!27796的错误一般都是由于建立连接失败而导致的,建立连接失败的原因有很多种情况,大家只要明白其中27796的产生错误的实
质就可以了,在大家测试过程中欢迎大家跟帖,在什么情况出现的这种错误,如何解决的继续下去!
loadrunner 性能测试报error-27796的解决的更多相关文章
- node本地服务启动报Error: listen EADDRINUSE解决方法
Error: listen EADDRINUSE 127.0.0.1:1337 at Object.exports._errnoException (util.js:1018:11) at expor ...
- LR报:Error 27796 Failed to connect to server
原错误信息: Action.c(58): Error -27796: Failed to connect to server "10.1.44.68:7013": [10048] ...
- LR调试脚本的时候报错Error -27796:(已解决)
LR调试bbs脚本的时候报错: 1.Error -27796: Failed to connect to server "192.168.211.128:80": [10060] ...
- loadrunner error 27796 Failed to connect to server
(2012-10-23 01:23:17) 转载▼ Action.c(58): Error -27796: Failed to connect to server "www.baidu. ...
- LoadRunner出现error问题及解决方法总结
一.Step download timeout (120 seconds) 这是一个经常会遇到的问题,解决得办法走以下步骤:1. 修改run time setting中的请求超时时间,增加到600 ...
- navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法
原文:navicat连接oracle数据库报ORA-28547: connection to server failed, probable Oracle Net admin error错误的解决方法 ...
- 【LR11】Error -27796: Failed to connect to server"server:port": [10060] Connection timed out错误解决办法
场景描述:被测系统是发布在远程服务器上的,假设IP是10.10.10.10,端口是8066,那么访问地址是http://10.10.10.10:8066/,在control机器上我设置了IP欺骗. ...
- Uiautomator--出现报错“urllib3.exceptions.ProtocolError:<'Connection aborted.',error<10054,''>>”的解决方式!
在运行uiautomator时,出现报错"urllib3.exceptions.ProtocolError:<'Connection aborted.',error<10054, ...
- MySQL 执行SQL脚本 报ERROR 1231 (42000)的解决办法【转】
今天在source mysqldump 备份文件时,发现导入的过程中报如下的错误: ERROR 1231 (42000): Variable 'time_zone' can't be set to t ...
随机推荐
- vue-cli 工程中引入jquery
在vue-cli 生成的工程中引入了jquery,记录一下.(模板用的webpack) 首先在package.json里的dependencies加入"jquery" : &quo ...
- sql 中的 STUFF()使用说明,以及千分位的常用函数
STUFF 删除指定长度的字符并在指定的起始点插入另一组字符. 语法 STUFF ( character_expression , start , length , character_express ...
- 基于Swift语言开发微信、QQ和微博的SSO授权登录代码分析
前言 Swift 语言,怎么说呢,有一种先接受后排斥.又欢迎的感觉,纵观国外大牛开源框架或项目演示,Swift差点儿占领了多半,而国内尽管出现非常多相关技术介绍和教程,可是在真正项目开发中使用的占领非 ...
- 【小白的CFD之旅】20 计算区域的构建
计算域是什么计算域如何创建常用的建模软件计算域几何的特殊之处具体的计算域提取方法小白总结 自从上次在食堂听了小牛师兄关于计算网格的一些问题后,小白决定在寒假期间好好的补习一下关于计算网格的划分内容.在 ...
- android---笔记 AppContext extends Application
package com.fuda; import org.apache.http.client.CookieStore; import com.fuda.model.StudentInfoModel; ...
- MATLAB学习之内存溢出的管理方法
今天用Matlab跑程序,由于数据量太大,又出现 Out of memory. Type HELP MEMORY for your options.的问题.看到这篇文章非常实用,转过来方便查阅~ 用 ...
- Windows下搭建Android NDK开发环境及命令行编译
首先说明本文内的相关安装操作参考<Pro Android C++ with the NDK>一书. 安装 Windows搭建Android NDK开发环境需要安装如下部分(同时需要配置对应 ...
- Auty 2017——WebMonitor接口线上检测平台
[本文出自天外归云的博客园] Auty 2017——WebMonitor接口检测平台 前篇 接口本地检测平台 本篇 接上篇,在本地检测平台的基础上,去掉本地服务,改功能为线上使用.好处是项目可以多人访 ...
- Html table 细边框
Html table 细边框 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
- WIN锁屏+鼠标移动事件
winexec('rundll32.exe user32.dll, LockWorkStation', sw_hide); 1.shutdown.bat(关机) rundll32.Exe shell ...