• Error -27492: "HttpSendRequest" failed, Windows error code=12152 (invalid server response) and retry。。。


    转自:https://www.cnblogs.com/cheerjude/p/10092377.html

    百度了一下,答案千篇一律,基本解决办法都是:
    “在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函数来解决即可。
  • 相关阅读:
    怎么查看京东店铺的品牌ID
    PPT编辑的时候很卡,放映的时候不卡,咋回事?
    codevs 1702素数判定2
    codevs 2530大质数
    codevs 1488GangGang的烦恼
    codevs 2851 菜菜买气球
    hdu 5653 Bomber Man wants to bomb an Array
    poj 3661 Running
    poj 1651 Multiplication Puzzle
    hdu 2476 String Painter
  • 原文地址:https://www.cnblogs.com/apple2016/p/14137637.html
Copyright © 2020-2023  润新知