【问题标题】:Setting timeout for wininet in Loadrunner在 Loadrunner 中为 wininet 设置超时
【发布时间】:2017-07-07 04:42:49
【问题描述】:

这个问题是在你必须在 loadrunner 中使用 WinInet 重放引擎的时候提出的。当响应时间超过 30 秒时,会观察到超时错误。默认情况下,wininet 将超时设置为 30 秒。有一种方法可以让它重试请求,但在我的情况下,它是一个发布请求,重试不是一个现实的情况。 遇到的错误是 -

Error -27492: "HttpSendRequest" failed, Windows error code=12002 and retry limit (0) exceeded for URL="https

RTS 截图:

有没有办法将超时配置为更高的值以及在哪里设置?

LR12.53,Windows 服务器 2008

新信息

为了演示上述行为,我创建了一个 Web 应用程序,它需要 30 多秒才能响应 GET 请求。我还在 Loadrunner 的运行时设置中启用了 WinInet 重放,如上图所示。

脚本的动作

Action()
{
lr_start_transaction("slow_transaction");

web_custom_request("slow_transaction",
    "URL=http://localhost:8887/slow_response",
    "Method=GET",
    "TargetFrame=",
    "Resource=0",
    "Referer=",
    "Mode=HTML",
    "Body=",
    LAST);

lr_end_transaction("slow_transaction", LR_AUTO);

return 0;
}

在使用高级跟踪执行上述脚本时,我可以看到以下日志。观察到的错误是Action.c(6): Error -27492: "HttpSendRequest" failed, Windows error code=12002 and retry limit (0) exceeded for URL="http://localhost:8887/slow_response" [MsgId: MERR-27492]

Action.c(4): Notify: Transaction "slow_transaction" started.
Action.c(6): web_custom_request("slow_transaction") started     [MsgId: MMSG-26355]
Action.c(6): DETECTING_PROXY" on behalf of "URL="http://localhost:8887/slow_response"   [MsgId: MMSG-27397]
Action.c(6): RESOLVING_NAME" on behalf of "URL="http://localhost:8887/slow_response"    [MsgId: MMSG-27397]
Action.c(6): NAME_RESOLVED" on behalf of "URL="http://localhost:8887/slow_response"     [MsgId: MMSG-27397]
Action.c(6): CONNECTING_TO_SERVER" on behalf of "URL="http://localhost:8887/slow_response"      [MsgId: MMSG-27397]
Action.c(6): CONNECTING_TO_SERVER" on behalf of "URL="http://localhost:8887/slow_response"      [MsgId: MMSG-27397]
Action.c(6): CONNECTED_TO_SERVER" on behalf of "URL="http://localhost:8887/slow_response"   [MsgId: MMSG-27397]
Action.c(6): SENDING_REQUEST" on behalf of "URL="http://localhost:8887/slow_response"   [MsgId: MMSG-27397]
Action.c(6): REQUEST_SENT" on behalf of "URL="http://localhost:8887/slow_response"      [MsgId: MMSG-27397]
Action.c(6): RECEIVING_RESPONSE" on behalf of "URL="http://localhost:8887/slow_response"    [MsgId: MMSG-27397]
Action.c(6): CLOSING_CONNECTION" on behalf of "URL="http://localhost:8887/slow_response"    [MsgId: MMSG-27397]
Action.c(6): CONNECTION_CLOSED" on behalf of "URL="http://localhost:8887/slow_response"     [MsgId: MMSG-27397]
Action.c(6): REQUEST_COMPLETE" on behalf of "URL="http://localhost:8887/slow_response"      [MsgId: MMSG-27397]
Action.c(6): Error -27492: "HttpSendRequest" failed, Windows error code=12002 and retry limit (0) exceeded for URL="http://localhost:8887/slow_response"    [MsgId: MERR-27492]
Action.c(6): HANDLE_CLOSING" on behalf of "URL="http://localhost:8887/slow_response"    [MsgId: MMSG-27397]
Action.c(6): web_custom_request("slow_transaction") highest severity level was "ERROR", 0 body bytes, 0 header bytes    [MsgId: MMSG-26388]
Action.c(6): Notify: Transaction "slow_transaction" ended with a "Fail" status (Duration: 31.1355 Wasted Time: 0.1075).

现在在脚本中使用web_set_max_retries("2"); 设置重试时,我们可以在日志中清楚地看到它在响应未到达的某个时间后重试,但这也会失败,因为它是一个新请求,并且会再次花费更多时间超过 30 秒 ;)

重试日志:

Action.c(7): CLOSING_CONNECTION" on behalf of "URL="http://localhost:8887/slow_response"    [MsgId: MMSG-27397]
Action.c(7): CONNECTION_CLOSED" on behalf of "URL="http://localhost:8887/slow_response"     [MsgId: MMSG-27397]
Action.c(7): REQUEST_COMPLETE" on behalf of "URL="http://localhost:8887/slow_response"      [MsgId: MMSG-27397]
Action.c(7): Attempting "HttpSendRequest" retry due to Windows error code=12002 for URL="http://localhost:8887/slow_response"   [MsgId: MMSG-27491]
Action.c(7): DETECTING_PROXY" on behalf of "URL="http://localhost:8887/slow_response"   [MsgId: MMSG-27397]
Action.c(7): CONNECTING_TO_SERVER" on behalf of "URL="http://localhost:8887/slow_response"      [MsgId: MMSG-27397]
Action.c(7): CONNECTED_TO_SERVER" on behalf of "URL="http://localhost:8887/slow_response"   [MsgId: MMSG-27397]

现在我们有证据表明 WinInet 在大约 30 秒后重试。我能否请惠普支持或其他 LR 专家、WinInet 专家建议是否有办法增加 WinInet 中的超时以及如何增加?

【问题讨论】:

  • 请说明您如何知道这是一个需要重试的 Windows 集成身份和安全问题
  • 嗨詹姆斯,我不希望它重试请求,希望它等待更多时间(同步)。这是因为我的一些应用程序需要超过 30 秒(它被接受)才能响应,在这种情况下,LRs 默认播放(套接字)不起作用。一直在观察其他问题。那是完全不同的问题。所以简单地说,需要一种方法来增加 WinInet 默认超时,即 30 秒。
  • 标准 HTTP 超时为 120 秒。这意味着在该窗口内不会返回一个字节。您确定您没有查看与响应超时不同的连接超时吗?
  • 大家好,我在使用 wininet 重放引擎时添加了 lr 超时的新信息和证据。请再次阅读问题。
  • 你在本地主机上。您不应该使用代理进行连接

标签: loadrunner wininet


【解决方案1】:

我也遇到了和你一样的问题。 由于使用 Wininet replay,所有运行时设置都不会影响运行测试。

我们必须将 Wininet 注册表设置为允许超过 30 秒的超时时间

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet 设置

添加新的 DWORD 键和值(我设置为 10 分钟)

  • 键:ReceiveTimeout
  • 价值:600000

【讨论】:

    【解决方案2】:

    其实WinInet重放引擎与在运行时设置中设置超时参数无关。

    有两个地方需要修改:

    1. 运行时设置 > Internet 协议 > 首选项 > 常规 > “步骤下载超时”:


    1. 运行时设置 > Internet 协议 > 首选项 > HTTP > “HTTP 请求连接超时”、“HTTP 请求接收超时”和“HTTP 保持活动超时”:

    【讨论】:

    • 问问自己,如果在默认的 120 秒超时时间内,您真的没有收到一个字节的响应,是否真的建议将超时更改为更高的值?我敢打赌,两分钟不回复将被视为不可接受的。
    【解决方案3】:

    您正在连接到本地主机,即同一台机器。您不应该通过本地机器连接的代理发送您的项目。关闭所有代理设置。

    接下来,您在本地计算机上。这使得网络成本为零,因为您只需在堆栈底部弹跳并备份,永远不会碰到网络接口卡或退出盒子。这意味着超时显然与网络无关,并且必须是本地计算机上目标服务的配置问题。

    当您登录 localhost 并连接到 localhost 时,任何执行的安全上下文都应该是您登录 localhost 的凭据。我仍然看不到这是代码中的 Windows 集成身份验证问题,但如果是,并且您的目标服务与 Windows 安全上下文完全集成,那么请考虑您可能需要一些带有安全凭证信息的标头字段。

    【讨论】:

    • 詹姆斯,我相信这个答案离题了。我自己编写了该应用程序,故意延迟响应以在使用 WinInet 重放引擎时演示 LR 行为,并且我已将 LR 设置为不在 RTS 中使用任何代理。该应用程序在我的本地机器上运行,我没有使用任何代理。我相信与代理相关的日志是由于启用了高级跟踪而出现的。如果您不这么认为,请告诉我。再一次,这个问题与代理设置或使用本地主机无关。非常感谢。
    【解决方案4】:

    这关系到所有的WINDOWS机器。按“Windows+R”,这将打开运行窗口。输入“regedit.exe。点击HKEY_CURRENT_USER

    将其扩展至:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSetting

    在编辑菜单上,转到新建,然后单击 DWORD 值。

    键入 KeepAliveTimeout,然后按 ENTER。

    按照第 2 步进行

    键入 ReceiveTimeout,然后按 ENTER。

    按照步骤 2 键入 SendTimeout,然后按 ENTER。

    在“编辑”菜单上,单击“修改”。

    输入超时值(以毫秒为单位),然后单击“确定”。例如,要将超时值设置为一分钟,请输入 60000。重新启动机器。

    您也可以参考这里了解更多详情 - wininet replay fail

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 1970-01-01
      • 2010-10-10
      • 2010-09-27
      相关资源
      最近更新 更多