Python 中的 dockerized Selenium 是一个资源匮乏的过程吗?

问题描述

我在一个旧线程中读到 dockerized selenium 网格一个资源匮乏 的过程。

我正在尝试并行运行 250 到 300 个硒测试,经过一些研究,我发现我有 3 个选择:

1:多线程 2:多处理 3:在docker容器中运行selenium脚本

但后来我读到多线程并不是真正以并行进行 I/O

所以我将注意力转移到 dockerized selenium 脚本上。

那么一个简单的 dockerized selenium 脚本会消耗多少资源? 脚本的 selenium 部分非常简单,它接收 3 到 5 个值,然后在网页上输入这些值,然后单击一个按钮。

24 gb ram4 个 cpu 内核 是否足以满足上述过程?

解决方法

如果您打算在一台主机上运行所有内容,您将不会从 dockerizing 中获得任何利润。

这里最消耗的部分是网络浏览器。尝试同时运行 250-300 个浏览器实例,你就会得到答案。

基本上 docker 没有解决并行化问题。它解决了隔离问题并简化了分发和部署。您列表中资源最有效的方法是多线程,但这需要维护您的测试代码线程安全。

我建议你做一个测试。您的浏览器将占用多少取决于您的 UI 的重量。如果它加载了大量数据,它将占用更多 RAM,如果它运行大量 javascript,它将占用更多 CPU。因此,从 20 个并行会话开始并观察您的资源。如果一切正常,则增加。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...