码迷,mamicode.com
首页 > Web开发 > 详细

Loadrunner 并发时'Error -27492 HttpSendRequest failed'解决办法

时间:2018-12-09 20:05:06      阅读:405      评论:0      收藏:0      [点我收藏+]

标签:.com   答案   ssl   width   data   系统   解决办法   win   报错信息   

问题点

技术分享图片

 

Loadrunner11对脚本单独回放时,回放100%正常无报错信息,但是运行场景多个用户并发测试时,运行一段时间后,每次均报错:
Error -27492: "HttpSendRequest" failed, Windows error code=12002
技术分享图片
 
百度了一下,答案千篇一律,基本解决办法都是:
“在Runtime-setting中的preferences-->options-->http-request connect timeout(sec)的值设为999。”
然并卵.....设置后依然报错,无法解决报错问题。

问题根源

报错显示是因为请求连接超时。
普通情况下的处理,先设置"Runtime-setting中的preferences-->options-->http-request connect timeout(sec)的值设为999",确保不要请求超时,但如果依旧报错,请看下文。
技术分享图片
技术分享图片
默认情况下,当录制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")。
 
综上,
当单独回放脚本时,请求数少,网站响应快,自家网速也够,所以请求超时就基本不会出现,当几百个用户一起并发,小网站性能不行,或者自家网络已经卡了,那么要发送的请求就会等待,当超过20秒后,就报了上述错误,因此录制https时,建议不要勾选winlnet replay instead of sockets选项,使用lr函数来解决即可。
 
 

Loadrunner 并发时'Error -27492 HttpSendRequest failed'解决办法

标签:.com   答案   ssl   width   data   系统   解决办法   win   报错信息   

原文地址:https://www.cnblogs.com/cheerjude/p/10092377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!