当前位置: 首页 > news >正文

【第三方软件测试机构:LoadRunner常见错误代码27796和26612的分析和解决方法】

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)。

http://www.jsqmd.com/news/248467/

相关文章:

  • 经典的PHP+MySQL开发组合的微信投票活动源码系统
  • 【第三方CMA和CNAS软件测评机构:LoadRunner负载生成器(Load Generator)无法连接故障诊断和修复手册】
  • 收藏必看!大模型落地崩溃指南:从RAG到Agent的保命手册
  • 大模型技术全景图:RAG、Agent、知识图谱如何协同工作?程序员必收藏指南
  • 打破“数据孤岛”,实现全厂设备一站式可视化管理
  • audio2face 眼睛驱动
  • 通孔PCB孔壁质量怎么检测?
  • 鸿蒙 HDF 驱动开发初探:如何为 Hi3861 开发板编写一个自定义的 LED 驱动?
  • 通孔PCB vsSMT贴片:教你选对组装方案
  • 计算机论文写作一站式指南:6款AI工具1天生成8000字附真实参考文献
  • 通孔PCB的5大核心优势
  • 【时频分析】面向相交群延迟多分量信号的时频重分配同步挤压频域线性调频小波变换【附MATLAB代码】
  • 课程论文不用 “水”!虎贲等考 AI 一键解锁高质量写作捷径
  • 计算机领域学术发表地图:CCF与CAAI等分级体系全解析
  • 五行代码,逼疯整个硅谷!澳洲放羊大叔,捅开AI编程奇点
  • COOH-SS-PEG-COOH,羧基-二硫键-聚乙二醇-羧基,适用于药物递送系统
  • 人工造问卷 VS 虎贲等考 AI:30 分钟搞定学术调研 “黄金问卷”
  • 必藏!大模型“记忆力“突破:从2K到百万Token的技术演进与原理详解
  • 数据不会说话?虎贲等考 AI 数据分析:让论文实证硬核到惊艳导师
  • 无缝集成指南,SpringBoot三步接入华为云短信服务
  • 黑灯工厂的本质就是无人经济
  • 一张图看懂上下文工程:AI提示技术的核心概念解析
  • 【收藏必备】大模型开发核心技能:格式化输出与解析器全攻略
  • COOH-S-CH2-S-COOH,双羧基和响应性桥链
  • Python+Vue的记账系统的设计与实现 Pycharm django flask
  • GraphRAG 落地:用 Neo4j 构建知识图谱,让 AI 读懂《红楼梦》的人物关系
  • Python+Vue的学生选课管理系统 Pycharm django flask
  • 【收藏学习】大模型RAG技术全攻略:从基础原理到高级优化方案
  • Webpack 慢到离谱?迁移到 Rspack (Rust) 实战:构建速度从 5 分钟缩短到 10 秒
  • Python+Vue的养老院信息管理系统设计与实现 Pycharm django flask