gpt4 book ai didi

google-chrome - Chrome 浏览器在 chrome 节点 Docker 容器中运行多个 chrome 浏览器时崩溃

转载 作者:行者123 更新时间:2023-12-02 19:32:59 41 4
gpt4 key购买 nike

主要目的是在单个容器中运行多个 chrome 浏览器(9 个浏览器)。

我有一个集线器和节点设置,其中包含多个浏览器的容器,可在单个 chrome 节点容器中运行。我使用以下 docker 命令创建了两个容器:

要创建集线器容器:
docker run -d -p 4445:4444 --name selenium_hub selenium/hub

要创建节点容器并将其链接到集线器:
docker run -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-debug

问题是,当我通过同时启动多个 chrome 浏览器(9 个浏览器)在单个容器中运行测试用例时,测试用例会执行一段时间,然后浏览器开始一个接一个地崩溃。

我已经尝试过容器的 docker logs,但无法找到问题的实际原因。

有人可以指导我吗?如何调试这种情况?有没有人遇到过类似的问题并解决了?

最佳答案

Chrome浏览器一一崩溃的主要原因与Hypertext Transfer Protocol -- HTTP/1.1有关。

Section 8.1.4 - ConnectionsRFC2616提到单用户客户端最多可以与任何服务器或代理保持 2 个连接 .作为代理最多可以使用 2*N 与另一台服务器或代理的连接,其中 N 是同时活跃的用户数。这些指南旨在改善 HTTP 响应时间并避免拥塞。

话虽如此,值得一提的是现代浏览器的限制比这要少,允许更多的连接 . RFC2616 没有指定如何防止超出限制。可以阻止打开连接,也可以关闭现有连接。

来自 this site 的示例谈到以下限制:

  • Internet Explorer 7.0 : 2
  • Internet Explorer 8.0 and 9.0 : 6
  • Internet Explorer 10.0 : 8
  • Internet Explorer 11.0 : 13
  • Firefox : 6
  • Chrome : 6
  • Safari : 6
  • Opera : 6
  • iOS : 6
  • Android : 6

  • 解决方案

    一个可行的解决方案似乎将并发持久连接的数量限制为 6 .

    根据讨论 Selenium grid sessions not applied,您可以通过创建修改主机文件的子域来找到另一种增加持久连接数量的方法。

    关于google-chrome - Chrome 浏览器在 chrome 节点 Docker 容器中运行多个 chrome 浏览器时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49230368/

    41 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com