scala - 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 时,可能导致这些超时的原因是什么?
解决方案
只能是网络问题(路由、防火墙等),而不是加特林问题。
推荐阅读
- google-app-maker - 如何将当前表单字段值传递给新的弹出窗口?
- google-chrome - 如何在浏览器(chrome)上打开atom html代码
- angular - Angular 应用程序编译但显示空白页
- java - Selenium's IE driver doesn't load page?
- php - AJAX Data Won't Load in Multi Select Box during Search
- jenkins - 詹金斯在我没有改变的一行上抱怨语法
- android - Task :app:transformDexArchiveWithExternalLibsDexMergerForDebug Failed
- mysql - how to exclude rows that have duplicates? (Remove)
- linux - Linux:从 for 和 cut 中删除重复的字符串
- python - PyCharm is not getting along with OpenCV's imshow()