新竹县网站建设_网站建设公司_Logo设计_seo优化
2026/1/15 11:15:45 网站建设 项目流程

LoadRunner常见错误代码27796和26612的分析和解决方法。这两个错误和网络连接层密切相关。

错误 27796: Error -27796: Failed to connect to server

VuGen 或负载生成器在尝试建立到目的服务器的初始TCP连接时失败。原因一般不在脚本思路上,而在网络环境或客户端配置上。

错误信息原因

一般伴随如下信息:

"address:port"、"Connection refused"、"Connection timed out"

原因:客户端无法和服务器端的指定IP和端口完成TCP三次握手。

排查解决流程

一,基础网络

手动网络诊断:在负载生成器机器上,使用命令行工具证实连通性。

检查端口可达性:telnet <服务器IP> <端口> (如 telnet 10.0.0.1 443)。如果失败,证明网络层有问题。

检查DNS分析:如果脚本中使用域名,使用 nslookup 或 ping 确定域名分析正确且稳定。

确定服务器状态:

目的服务是不是正在运行?可通过浏览器或curl快速证实。

服务器的防火墙是不是放行了来自负载生成器IP段的对应端口流量?

二,LoadRunner运行时配置

如果网络是通的,问题可能出在LR的客户端配置上。

调整连接超时设置:

进入 Runtime Settings -> Preferences -> Options。

增加 HTTP-request connect timeout、HTTP-request receive timeout 的值(如,从默认的120秒增至300秒)。

启用“每秒连接数”限制:

在 Runtime Settings -> Internet Protocol -> Preferences -> Advanced 中,勾选 Limit number of connections per second 并设置为一个合理的值(如60)。这可以防止客户端因瞬间发起过多连接而被服务器防火墙误判为攻击而屏蔽。

三,系统和客户端排查

检查本地端口耗尽:

在Windows负载生成器上,高并发测试可能导致本地临时端口(TCP ephemeral port)被快速占满。执行命令netstat -an | find /C "TCP" 查看已用连接数。

解决方法:

减小连接复用延迟:在LR的 Runtime Settings -> Internet Protocol -> Preferences 中,将Keep-Alive超时时间设短。

修改系统注册表,增加最大临时端口数量和缩短 TIME_WAIT 状态时间。

负载生成器资源短板:

监控负载生成器本身的CPU、内存和网络带宽。如果资源饱和,会导致无法有效处理新建连接,从而报错。考虑分散负载到更多负载生成器上。

四,服务器端限制排查

当并发用户数很高时,此错误指向服务器或前端设备的限制。

服务器连接数限制:检查Web服务器(如Nginx的 worker_connections)、应用服务器(如Tomcat的 maxConnections)或操作系统级别的最大文件描述符数限制。

中间设备限制:检查位于服务器前的负载均衡器或防火墙是不是有每秒新建连接数的限制方法。

错误 26612: Error -26612: HTTP Status-Code=500 (Internal Server Error) 分析和解决

错误和27796有本质区别。-26612错误表示连接已成功建立,请求也已发送到服务器,但服务器内部处理失败,返回了HTTP 500系列状态码,排查重点从网络转向应用和服务器。

原因

服务器端应用程序在执行请求时发生了未处理的异常可能包括:

应用代码缺陷(如空指针异常、数据库查询错误)。

测试数据问题导致业务思路异常。

依赖的中间件服务(数据库、缓存、消息队列)不可用或响应异常。

应用服务器配置错误或资源耗尽(如线程池满、内存溢出)。

文章来源:卓码软件测评

精彩推荐:点击蓝字即可
软件负载测试API自动化测试软件测试第三方软件测试软件性能测试软件测试机构

诊断解决方法

一,捕获服务器响应

查看服务器返回的错误详情。

启用详细日志:在VuGen的 Runtime Settings -> Log中,勾选Extended log下的Data returned by server。

回放脚本并分析日志:找到失败的事务,查看服务器返回的完整HTML或JSON响应体。一般在</HEAD>或{之后会包含具体的错误堆栈信息(如Java的Exception Trace、.NET的Yellow Page of Death),这能直接定位到代码出错的行和原因。

二,分析请求上下文和数据

关联和动态数据:检查脚本是不是正确地处理了所有动态值(如 VIEWSTATE, TOKEN)。使用过期的或错误的会话信息提交请求,常导致服务器会话异常和500错误。

参数化数据:检查参数化文件中的数据是不是合法,特别是对于边界值或特殊字符。向服务器提交非预期的数据可能引发后台处理异常。

请求时序依赖:检查脚本中是不是遗漏了必要的请求。如,直接提交一个表单,但跳过了之前加载表单页面并获取密钥的步骤。

三,服务器端排查

如果错误信息不够清晰,需要结合服务器监控。

应用服务器日志:直接登录应用服务器,查看应用日志(如Tomcat的 catalina.out,或应用自身的log文件)。

服务器资源监控:在运行期间,监控服务器的CPU、内存、磁盘I/O和线程状态。资源耗尽会导致新请求无法被处理而返回500错误。

依赖的服务检查:证实数据库连接是不是正常,重点SQL查询是不是超时,外部API调用是不是失败。

四,复现和隔离

使用单用户、无思考时间方式在VuGen中反复回放,尝试复现错误。

使用工具(如Fiddler, Charles)捕获一个从VuGen发出的成功请求和一个失败的请求,进行对比,差别点往往是问题所在。

简化请求:尝试移除请求中的非必要参数,或使用最简单的数据提交,来判断问题是不是由特定数据引起。

总结

-27796:连接失败。TCP层未能建立。网络、防火墙、端口、客户端资源、服务器连接数限制。使用telnet, netstat

-26612:服务器内部错误。连接成功,但应用处理失败。应用日志、脚本关联和数据、服务器资源和依赖服务。查看服务器返回和应用日志

复杂软件测试项目可以通过分析TCP握手包和HTTP交互包,可以确定区分是连接在何时被拒绝(27796),还是服务器在收到请求后返回了错误(26612)。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询