【问题标题】:How many selenium test scripts can be safely run with Jenkins and Maven使用 Jenkins 和 Maven 可以安全运行多少个 selenium 测试脚本
【发布时间】:2015-08-07 08:58:18
【问题描述】:

背景

我有一组 Java 测试脚本,它们都在一个包中。我的 pom 文件指定了 Testng。我将测试连同所需的所有库一起存储在 Bitbucket 上。作为我网站的一部分,我有一个 Jenkins 实例在我的服务器上运行。测试通过无头 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

扣除

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

问题

现在的实际问题是,使用 Jenkins 运行大批量测试是否可以节省,或者是否应该将它们分解为子测试集以捕获此类错误,在我的情况下,这意味着拥有许多不同的 Bitbuket 存储库,例如运行不同的批次?或者我可以从一个存储库运行大量批次吗?

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

【问题讨论】:

  • 投票赞成明确而详细的问题。

标签: maven selenium jenkins


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    由于您使用的是 TestNG,您可以尝试excluding different test cases 来尝试追踪错误。根据您发布的详细信息,很难判断错误是由于资源限制还是错误的测试用例造成的。

    【讨论】:

    • 这是一个非常有用的工具,感谢您向我指出 +1。
    猜你喜欢
    • 2017-01-04
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多