问题描述
我在一个旧线程中读到 dockerized selenium 网格 是一个资源匮乏 的过程。
我正在尝试并行运行 250 到 300 个硒测试,经过一些研究,我发现我有 3 个选择:
1:多线程 2:多处理 3:在docker容器中运行selenium脚本
但后来我读到多线程并不是真正以并行进行 I/O?
所以我将注意力转移到 dockerized selenium 脚本上。
那么一个简单的 dockerized selenium 脚本会消耗多少资源? 脚本的 selenium 部分非常简单,它接收 3 到 5 个值,然后在网页上输入这些值,然后单击一个按钮。
24 gb ram 和 4 个 cpu 内核 是否足以满足上述过程?
解决方法
如果您打算在一台主机上运行所有内容,您将不会从 dockerizing 中获得任何利润。
这里最消耗的部分是网络浏览器。尝试同时运行 250-300 个浏览器实例,你就会得到答案。
基本上 docker 没有解决并行化问题。它解决了隔离问题并简化了分发和部署。您列表中资源最有效的方法是多线程,但这需要维护您的测试代码线程安全。
我建议你做一个测试。您的浏览器将占用多少取决于您的 UI 的重量。如果它加载了大量数据,它将占用更多 RAM,如果它运行大量 javascript,它将占用更多 CPU。因此,从 20 个并行会话开始并观察您的资源。如果一切正常,则增加。