使用Jenkins和Maven

时间:2015-08-07 08:58:18

标签: maven selenium jenkins

背景

我有一组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

firefox输出

(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存储库,所以运行不同的批次?或者我可以从一个存储库运行大量批次吗?

如果有人对可以解决我的错误的问题进行快速修复或建议也会受到赞赏,我只是将存储库回滚到可运行状态,并单独添加新测试。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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