我有两个运行Windows Server 2012的虚拟机。一个运行Jenkins,另一个运行Jenkins的构建作业。该作业从subversion中检出测试代码,然后在Windows批处理脚本中运行mvn test -Dtest=com.package.name.TestName
。测试编译并运行,但失败并显示ElementNotVisibleException
。这些是使用Selenium和Firefox驱动程序的TestNG测试。
如果我使用完全相同的命令并从Windows命令行运行它,则测试成功。我注意到的另一件事是,当从命令行运行时,浏览器窗口出现,我可以看到它运行测试,但是当由Jenkins运行时,没有窗口出现。
我发现this question表明这是因为我们的Jenkins作为服务运行,并且编写的测试需要前台的浏览器窗口。改变测试以使用无头驱动程序不是我们的选择,因为这将导致不准确的测试结果。有没有办法让这些测试与Jenkins一起使用?
答案 0 :(得分:4)
我建议使用Selenium Grid。它的显式功能是同时提供多种不同的测试。
你的jenkins会针对网格启动测试,这会将所有测试指向你的节点。
答案 1 :(得分:1)
最好的选择是停止运行Jenkins作为Windows服务。打开命令窗口并手动启动Jenkins。就我而言,它有效。
答案 2 :(得分:0)
我们在firefox上使用jenkins运行我们的selenium测试时遇到了类似的问题。 Jenkins奴隶被安装为服务而firefox正在给麻烦。我们的解决方案是使用机器管理员创建的服务。您可以通过打开services.msc并右键单击jenkins服务 - >来完成此操作。属性 - >登录。选择此帐户并设置管理员凭据。重启服务,你就可以了。