maven - 使用 Jenkins 和 Maven 可以安全运行多少个 selenium 测试脚本

标签 maven selenium jenkins

背景

我有一组 Java 测试脚本,它们都在一个包中。我的 pom 文件指定 Testng.我将测试以及所需的所有库存储在 Bitbucket 上。我的服务器上运行着一个 Jenkins 实例,作为我网站的一部分。测试通过 headless Firefox 运行。

问题

因此,在添加更大的批处理之前,它一直运行良好。每个 .java 文件中都有 5-12 个 @test 声明 (Testng),几乎每个 @test 都是一个方法。当 Bitbucket 中有大约 5 个 .java 文件时,它工作得很好,但现在有 14 个 .java 文件,它会抛出错误。

Jenkins 查看控制台输出

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host

火狐输出

(process:23458): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' 
failed Xlib:  extension "RANDR" missing on display ":79".
firefox: Fatal IO error 2 (No such file or directory) on X server :79

扣除

因此,这看起来像是为 headless 测试设置的 Xvnc 的错误,因为它是 GLib-CRITICAL 问题和连接错误。但除了额外的测试之外,Jenkins 构建中的内容与上次相比没有任何变化。

问题

现在,对于实际问题,是否可以使用 Jenkins 运行大批量测试,或者是否应该将它们分成测试子集来捕获这样的错误,在我的情况下,这意味着拥有许多不同的 Bitbuket 存储库,以便运行不同的批处理?或者我可以从一个存储库运行大量批处理吗?

如果有人有快速修复或关于如何修复我的错误的建议,我也将不胜感激,我只是将存储库回滚到可运行状态,并单独添加新测试。

最佳答案

通过“Selenium Grid”运行测试会更安全,即使该网格需要与 Jenkins 服务器位于同一台计算机上。比直接从 Jenkins 作业运行多个浏览器更好。我认为这样你会得到更好的结果。至于可以运行的数量,这取决于系统的能力,但一次运行超过 5-10 个(线程)可能是合理的。另外,它简化了每个测试类有 1 个测试方法的过程,但是如果您愿意处理确保浏览器通过多个测试方法保持事件状态的额外工作,那么您可以这样做,但我想说它容易错误。

关于maven - 使用 Jenkins 和 Maven 可以安全运行多少个 selenium 测试脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31873632/

相关文章:

maven - 排除Maven依赖项

selenium - 如何关闭 Selenium 中的日志记录?

selenium - 如何处理 Behat Mink HTTP 基本身份验证

windows - 在 Windows 上通过 Jenkins 使用 chromedriver 和 chrome 捕获屏幕截图时,从渲染器 : 10. 000 接收消息超时

linux - 在 linux 中安装 jenkins - 导入读取失败(-1)

maven - 无法在我的 Maven 项目中导入 Servlet

java - Maven 在本地存储库中找到 Artifact 但无法编译

jar - 在maven中,如何将非java src文件包含在输出jar中的同一位置?

jenkins 将文件上传到神器失败,出现 413 错误

maven - Jenkins 构建参数化,可选择 Nexus Artifact 版本(所有 GAV)