繁体   English   中英

Sikuli,詹金斯的硒测试:允许浏览器在前台启动,就像我从开发机器运行它一样?

[英]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运行测试。

  1. 使奴隶机远程桌面自己。
  2. 运行jenkins salve作为该会话中的程序cmd / c启动java -jar slave.jar -jnlpUrl http .... slave-agent.jnlp -secret ...(在你的jenkins master中找到它(当奴隶服务是下)
  3. 将它全部设置为在salve win startup中运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM