java - 如何限制 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 浏览器打开的数量?
解决方案
推荐阅读
- tortoisegit - 如何使用 TortoiseGit 从远程 git 存储库中获取笔记?
- c# - 无效的密钥哈希。我通过facebook登录游戏时出错
- javascript - Vue.js @click 只注册了一半的时间
- python - 尝试将 tkinter 中的图像正确显示到类的方法中
- go - go rpc 内存泄漏还是不了解?
- ruby - 更新 Ruby Mac OS 10.6.8 Snow Leopard
- javascript - (Javascript) 需要帮助将对象转换为数组
- amazon-web-services - Kinesis 到 S3 自定义分区
- r - 在列表中包含列表
- angularjs - Jasmine - 如何为具有命名属性和对象的数组编写测试