Мы хотели бы иметь возможность циклически просматривать доступные IP-адреса на виртуальной машине Azure, которую мы настроили для выполнения наших тестов производительности.
Наш код протокола, который просто использует основной адрес локального хоста работает нормально:
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-адреса (настроенные на NI C и pingable), мы получим большое количество ошибок "в c. ConnectTimeoutException: истекло время ожидания соединения: 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
Оба go включены для использования этого кода :
setUp(usertype1.inject(
rampConcurrentUsers(0) to (maxConcurrentUsers) during (rampUpDownTime),
constantConcurrentUsers(maxConcurrentUsers) during (mainTestTime),
rampConcurrentUsers(maxConcurrentUsers) to (0) during (rampUpDownTime)
)
).protocols(httpProtocol);
Что может быть причиной этих тайм-аутов, когда мы используем разные IP-адреса на одном компьютере?