为什么Selenium会占用大量内存

时间:2018-01-31 05:53:15

标签: selenium firefox selenium-webdriver memory geckodriver

我想用firefox问题知道硒, 我使用Firefox版本56.0.2,selenium3.5.1和geckodriver 0.19.1,服务器ubuntu(x64)os,firefox --headless模式 我发现当我长时间运行我的应用程序时,firefox内存会增加很多,例如400MB或更多,当我让firefox打开about:blank时,内存不会减少 我想知道如何减少firefox内存(不要杀死firefox进程),只使用selenium来控制firefox或者用一些配置启动firefox 我想打开"关于:空白"或其他URL减少记忆,但我发现它不起作用;

1 个答案:

答案 0 :(得分:0)

Selenium 本身不使用任何内存。这是消耗内存的 WebDriver Web浏览器进程。例如,当您创建任何 WebDriver 变体的新实例以启动相关的 Web浏览会话时,该过程都会消耗内存。

现在,不同的浏览器客户端变体将遵循不同且不同的方法和样式,以及initiatemanageteardown浏览器内部流程。因此,不同浏览器的内存消耗会有所不同。

回答你的问题:

  • 当我运行我的应用程序很长一段时间后,firefox内存会增加很多:处理活动浏览会话时,浏览器二进制文件必须跟踪很多内存(stack memory / heap memory)资源的不时。因此,根据情况,内存消耗可以上升/下降。

  • 我想知道如何减少firefox内存:不,你无法控制浏览器的内存消耗。

解决方案

Web浏览器最近发展了很多。每个 Web浏览器变体,例如 Mozilla Chrome Internet Explorer 正在不断致力于更高效的浏览器流程。您可以采取以下步骤使自动化测试消耗最佳内存:

  • JDK Version更新为最新版本,因为每个版本都旨在实现最佳内存利用率。
  • Selenium Version更新为最新版本,因为每个版本都旨在实现更好的内存管理。
  • WebDriver Version更新为最新版本,因为每个版本都旨在实现更好的内存管理。
  • Web浏览器版本更新为最新版本,因为每个版本都旨在提高内存利用率。
  • 如果 Web浏览器的基本版本太旧,您可以考虑通过Revo Uninstaller卸载 Web浏览器并安装最近版本稳定 GA 版本的 Web浏览器

  • 测试执行之前和之后使用CCleaner工具清除操作系统的杂务。

  • 在没有手动干预的隔离系统中执行测试执行

  • 测试系统保持在配备硬件要求测试实验室中,以执行测试套件< / EM>