场景报错解决方案Error -27492: "HttpSendRequest" failed, Windows error code=12029 (cannot connect) and retry limit (0) exceeded for URL=""
解决方法1:
今天在调试Loadrunner HTTP/HTML脚本的时候出现报错Error -27492,通过将HTTPS请求修改为HTTP请求,问题得到解决。
Action.c(206): Error -27492: "HttpSendRequest" failed, Windows error code=12029 (cannot connect) and retry limit (0) exceeded for URL="https://host/xxxx/getCashierJson.htm?payOrderId=1512140000000076171&ts=1448263401360" [MsgId: MERR-27492]
Action.c(206): web_url("getCashierJson.htm") highest severity level was "ERROR", 0 body bytes, 0 header bytes [MsgId: MMSG-26388]
本次问题解决有些凑巧,具体原因暂时不太清楚,弄清楚了之后再补充
解决方法2:
默认情况下,当录制http请求后回放脚本,Runtime-setting-Preferences中“winlnet replay instead of sockets(windows only)”选项是不勾选的,即通过LR sockets模拟发出请求。
但是!
LR sockets默认SSL的版本为SSL2和SSL3。当录制https时,如果SSL版本不一致,就会使sockets端口连接失败,被服务器拒绝连接,因此为使回放成功,很多人会勾选“winlnet replay instead of sockets(windows only)”。而这个勾选,也就是造成后面报错的罪魁祸首。
勾选“winlnet replay instead of sockets(windows only)”后,LR通过windows系统的WinInet来对外发送请求。但是微软的WinInet对流量的统计并不准确,而且当发送的请求超时20秒后,就会自动报错“请求已超时“。这一个超时,也就是造成开头报错的原因;即便在LR中设置preferences-->options-->http-request connect timeout(sec)的值设为999,也没用,因为发送的请求没不经过LR socket,LR统计不到。

解决办法
1)取消勾选”winlnet replay instead of sockets(windows only)“选项
2)在脚本中添加https请求前,添加函数 web_set_sockets_option("SSL_VERSION","TLS")。
解决方法3(亲测有效):
细想,HttpSendRequest failed,明显就是发送失败,而http又能发送,用浏览器也正常。明显就是脚本证书相关的内容导致的。
排查方法1:
用浏览器手动访问,不正常调浏览器证书相关的配置,浏览器及其他代理软件,IE代理等相关配置。把相关代理全部关掉试试。
排查方法2:
证书安全问题导致的请求被拦截,将IE相关的请求地址添加到受信任站点,把安全级别调整正常,或者直接重置。把高级重置,把相关证书的选项调整一下,最后将SSL,TLS相关的勾选上(我是使用这个方法解决的,亲测)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现