为什么我的 Docker 容器在 Selenium 测试期间最终会失去网络连接?

为什么我的 Docker 容器在 Selenium 测试期间最终会失去网络连接?

我获得了几个用于在 MacOS 上进行自动化测试的 Docker 镜像——一个用于 mitmproxy(由第三方提供),另一个支持我之前编写的 python/selenium 测试(此镜像包含 Chrome 和必要的驱动程序/模块;它和 docker-compose.yml 由我的一名团队成员提供)。python 容器具有指向 mitmproxy 容器的代理配置,以便使用本地文件重写某些外部 JSON 请求。

此设置对于一些测试来说运行良好,但整个长达一小时的套件将无法运行完成。大约 20 分钟后(通过代理发送约 5000 个请求),测试容器认为它没有网络连接——我在测试失败时截取的屏幕截图显示标准 Chrome 错误页面显示“无互联网”。此后,一切都超时,因此测试运行极其缓慢并自然失败。

在执行期间定期终止/重新启动代理容器没有帮助。我还尝试在测试之间关闭/重新启动测试容器内的 Chrome(以防 Chrome 消耗资源),也无济于事。通过 MacOS 应用程序中的 Docker 首选项增加内存也无济于事。Docker 统计数据显示 CPU 使用率很快超过 100%,最终在失败之前为两个容器显示“--”。

这看起来像是一个资源问题,但我不知道如何调查或修复该问题。除了我对 Docker 首选项的更改外,所有其他资源参数都具有默认设置。

还有什么想法我应该尝试吗?

相关内容