主要目的是在一个容器中运行多个chrome浏览器(9个浏览器)。
我有一个集线器&节点设置,容器中有多个浏览器可以在单个铬节点容器中运行。我已经用下面的docker命令创建了两个容器:
要创建集线器容器:停靠库运行-d -p 4445:4444 -名称selenium_hub selenium/ hub
若要创建节点容器并将其链接到集线器:对接器,请运行-v /dev/shm:/dev/shm -d -p 6001:5900 -p 7001:5555 -e NODE_MAX_INSTANCES=7 -name chrome_6 - link selenium_hub:hub selenium/ node -chrome调试
问题是,当我通过同时启动多个chrome浏览器(9个浏览器)在单个容器中运行测试用例时,测试用例会执行一段时间,然后浏览器开始一个接一个地崩溃。
我尝试过集装箱码头日志,但无法找到问题的实际原因。
有人能指点我吗?如何调试此场景?有没有人面临类似的问题并加以修正?
发布于 2018-03-12 16:06:18
Chrome浏览器相继崩溃的主要原因与https://www.w3.org/Protocols/rfc2616/rfc2616.html有关。
在https://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.1.4 of https://www.w3.org/Protocols/rfc2616/rfc2616.html中提到,单用户客户机可以与任何服务器或代理保持最大2次连接。作为代理可以使用最多2*N的连接到另一个服务器或代理,其中N是同时活动的用户数。这些指导方针旨在提高HTTP响应时间并避免拥塞。
话虽如此,但值得一提的是,--现代浏览器--比这更不受限制,允许更多的连接。RFC2616没有指定如何防止超过限制。可以阻止连接打开,也可以关闭现有连接。
本站的一个例子谈到了以下限制:
Internet Explorer 7.0
:2Internet Explorer 8.0 and 9.0
:6Internet Explorer 10.0
:8Internet Explorer 11.0
:13Firefox
:6Chrome
:6Safari
:6Opera
:6iOS
:6Android
:6解决方案
一个可行的解决方案似乎限制了到6的并发持久连接的数量。
您可以找到另一种方法,通过创建子域来增加持久连接的数量,按照讨论https://stackoverflow.com/questions/48357644/selenium-grid-sessions-not-applied/48358228#48358228修改主机文件。
https://stackoverflow.com/questions/49230368
复制相似问题