首页 > 解决方案 > Gatling localAddresses 导致超时

问题描述

我们希望能够在为运行性能测试而设置的 Azure 虚拟机上循环使用可用的 IP 地址。

我们只使用主要本地主机地址的协议代码工作正常:

    var httpProtocol = io.gatling.http.Predef.http
    .baseUrl(baseUrl)
    .inferHtmlResources()
    .acceptHeader("*/*")
    .userAgentHeader("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36")
    .maxConnectionsPerHostLikeChrome

但是,当我们将其更改为尝试循环访问可用 IP(在 NIC 上配置且可 ping)时,我们会收到大量错误“incConnectTimeoutException:连接超时:blah.mydomain.co.uk/11.22.33.44:443” (虽然前一两个用户看起来不错):

val localIpAddresses = Seq("1.2.3.4",
                               "1.2.3.5",
                               "1.2.3.6"
                              );
httpProtocol = io.gatling.http.Predef.http
     .baseUrl(baseUrl)
     .inferHtmlResources()
     .acceptHeader("*/*")
     .userAgentHeader("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36")
     .localAddresses(localIpAddresses:_*)
     .maxConnectionsPerHostLikeChrome

两者都继续使用此代码:

    setUp(usertype1.inject(
                rampConcurrentUsers(0) to (maxConcurrentUsers) during (rampUpDownTime),
                constantConcurrentUsers(maxConcurrentUsers) during (mainTestTime),
                rampConcurrentUsers(maxConcurrentUsers) to (0) during (rampUpDownTime)
            )
        ).protocols(httpProtocol);

当我们在同一台机器上使用不同的 IP 时,可能导致这些超时的原因是什么?

标签: scalaazurenetworkinggatling

解决方案


只能是网络问题(路由、防火墙等),而不是加特林问题。


推荐阅读