![](/img/trans.png)
[英]When I run my selenium scripts through Jenkins, browser was not instantiated in Jenkins server but my Jenkins build was pass
[英]Sikuli, selenium testing on Jenkins: Allow the browser to be launched in the foreground, as it is when i run it from development machine?
问题在于,Sikuli的图像识别功能仅在Sikuli测试的目标位于前景并且可以完全访问鼠标时才起作用。 在其当前配置中,Jenkins项目永远不会从Windows从属节点的桌面上看到。
我现在的自动化测试套件的设置方式,仅使用selenium编写了大约30个测试。 在最后的两个测试中,selenium启动了一个webdriver(目前是chromedriver但可以是firefox或IE)并导航到正确的页面,Sikuli从那里做了它的事情。 两者都使用java语言绑定。
目前Sikuli似乎安装正确,但当要求点击通过将桌面与目标图像匹配而填充的screenRegions列表时,它会立即抛出NPE。
如何更改我的Windows 7 slave上的Jenkins设置以允许浏览器在前台启动,就像我从Windows 7开发机器运行它一样?
所以你有一个Sikuli工作的开发机器,以及Jenkins运行Sikuli的测试机器,它不起作用。
我有相同的设置(Sikuli测试人员/ Jenkins奴隶运行Windows 7)。 对我来说有用的是让测试机器运行VNC服务器,通过VNC登录测试器帐户,并将Jenkins从站作为常规应用程序而不是服务启动。 我用过UltraVNC服务器 。
据我所知,问题源于Windows的安全措施,这些措施旨在防止远程用户在没有您的情况下控制您的计算机。
如果您将Jenkins作为服务运行,则不会为其分配真正的桌面。 脚本将运行,但(正如你所看到的)Sikuli实际上无法找到任何东西,因为它没有任何东西可供查看。 (Selenium正在以编程方式检查页面内容,因此不介意页面实际上没有显示在任何屏幕上。)
您也可以运行Jenkins并让自己登录,并跳过VNC服务器。 我想在没有显示器或键盘的情况下运行机器,但仍然可以控制。 如果这也是您的目标,则无法使用远程桌面,因为它会在连接时分配新桌面,然后在断开连接时将其销毁。 (所以Jenkins会在你看的时候工作,当你离开的时候会失败。非常令人沮丧!)
作为附带好处,如果你这样做,你可以通过VNC连接并观看Jenkins运行测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.