首页 > 解决方案 > 如何限制 Jenkins 同时运行的 Selenium 浏览器?

问题描述

我有一个运行一百多个 Cucumber 功能文件的 Jenkins 项目。每个测试场景都使用 Selenium,因为我需要测试我网站的 UI。问题是 Jenkins 试图几乎同时运行它们,因此我看到大量的 Selenium Google Chrome 浏览器试图同时弹出。这导致我的机器内存不足,只有少数 Selenium 浏览器响应。

我有没有办法限制一次活动的 Selenium 浏览器的数量?它可能在 Jenkins 或 Selenium 上,但我宁愿远离 Selenium Grid。

我已经尝试过在 Jenkins 中限制它,但似乎你只能限制并行构建的数量。我的问题是我只有一个构建,它几乎同时执行所有测试。

至于 Selenium Grid,Jenkins 构建步骤中使用的命令明确表示不要使用 Selenium Grid。

在 Jenkins 下,对于 Execute Windows 批处理命令:

cd folderLocation
mvnw clean verify -Dgui.feature.tags=@test -Dbrowser=chrome -Dforked.jvm.count=3 -Duse.selenium.grid=false

使用此命令,将创建测试运行程序以指定要运行的所有场景以及结果 JSON 文件的位置。

Selenium、Java 和 Maven 的代码库是从另一台机器上复制的。当您手动运行 Jenkins 项目时,他们在该机器上一次有活动 Selenium 浏览器的限制。但是在新机器上,我们重新设置了 Jenkins,如果您运行构建,它将尝试同时启动所有 Selenium 浏览器,并且大多数浏览器最终都没有响应。一段时间后,它将以错误内存转储告终。

我再说一遍,有没有办法限制 Selenium 浏览器打开的数量?

标签: javaseleniumjenkinscucumbertestng

解决方案


两种解决方案:

  1. 有选项“构建触发器”

    在构建其他项目之后构建 使用它。 在此处输入图像描述

  2. 或者如果可能的话,将你所有的 UI 自动化合并到一个工作中,这样你就可以有一个构建。


推荐阅读