Testing 如何在没有远程桌面连接的情况下在jenkins windows从属设备上运行GUI测试?
我在Windows7上安装了jenkins代理,在Linux上安装了jenkins服务器。我正在windows代理上运行GUI测试。如果我有一个远程桌面连接到它,它运行良好,但在其他情况下失败。我找到了这个链接 但这里提供的解决方案相当模糊。。似乎唯一的解决方案是让Jenkins服务器始终打开远程桌面连接。但我找不到这样的选择。 谁能清楚地教我如何解决这个问题 非常感谢 在测试运行之前,您的从机必须位于桌面上 对。我们也有同样的问题 解决方案是启动测试机器并自动登录到 桌面。确保测试仅在桌面启动后启动 可用时,我们添加了一个计划任务,设置为在用户登录时运行, 这将通过JavaWebStart启动Jenkins从机。这样,, 詹金斯只会在桌面运行时看到从机。之后 这一切都很顺利 这是您链接到的问题的成功答案,非常清楚该怎么做。整个设置都在詹金斯之外。Jason Swager描述了他如何自动让用户登录windows桌面计算机,然后在用户会话中启动Jenkins slave 现在一步一步: 1.确保您有一个可评估的GUI 解决方案是启动测试机并自动登录到桌面 配置标准Windows桌面,以便在Windows启动时自动登录特定用户。这样,任何人都不需要物理登录到桌面。(见附件) 2.启动詹金斯奴隶 您需要在该用户设置中启动Jenkins从机。否则,Jenkins slave将无法访问Windows UI组件(或者换句话说,无法与桌面交互) 确保测试仅在桌面启动后启动 可用时,我们添加了一个计划任务,设置为在用户登录时运行, 这将通过JavaWebStart启动Jenkins从机 因此,您必须重新启动并配置它以启动您的 3.使用它 这样,Jenkins只会在桌面运行时看到从机。之后 这一切都很顺利Testing 如何在没有远程桌面连接的情况下在jenkins windows从属设备上运行GUI测试?,testing,user-interface,jenkins,continuous-integration,jubula,Testing,User Interface,Jenkins,Continuous Integration,Jubula,我在Windows7上安装了jenkins代理,在Linux上安装了jenkins服务器。我正在windows代理上运行GUI测试。如果我有一个远程桌面连接到它,它运行良好,但在其他情况下失败。我找到了这个链接 但这里提供的解决方案相当模糊。。似乎唯一的解决方案是让Jenkins服务器始终打开远程桌面连接。但我找不到这样的选择。 谁能清楚地教我如何解决这个问题 非常感谢 在测试运行之前,您的从机必须位于桌面上 对。我们也有同样的问题 解决方案是启动测试机器并自动登录到 桌面。确保测试仅在桌面启动
当从属设备联机时,您可以使用它运行UI测试。要解决此问题,请设置Windows自动登录,如我在此处所述: 然后为Jenkins slave创建一个启动批处理(将其放在Jenkins目录中),该批处理将在桌面上启动其控制台,并允许GUI作业运行:
java -jar slave.jar -jnlpUrl http://{Your Jenkins Server}:8080/computer/{Your Jenkins Node}/slave-agent.jnlp
(slave.jar可以从http://{Your Jenkins Server}:8080/jnlpJars/slave.jar下载)
编辑:
如果您得到的是黑色屏幕截图(例如使用Selenium时),请创建一个断开远程桌面连接的批处理文件,而不是使用常规的X按钮关闭RDP会话:
%windir%\system32\tscon.exe %SESSIONNAME% /dest:console
下面的事情帮了我的忙: 在Jenkins中,执行windows shell命令:
cmdkey/generic:TERMSRV//user:/pass:
mstsc/v:/w:/h:
cd
(例如mvn测试-Dfiles\u to\u run=groupLaunch.xml
cmdkey/delete:TERMSRV/
它在Jenkins支持的虚拟mstsc会话(Jenkins to Win)中创建具有指定宽度和高度的真实mstsc会话(Win to Win)。我尝试了这里提供的解决方案,但没有任何效果。最后,我想出了一个解决方法 我在另一个VM(VM2)中打开了与VM的RDP连接。 我让VM2内部的第一个连接打开并断开
它工作了,但这意味着有两个虚拟机可用。您仍然需要使用RDP,但在我的情况下,我们可以在同一个VM中使用RDP的环回 程序如下:
将上述命令放入Jenkins作业中,名称为“OpenRDP_ToVMXXX”,然后您可以在启用GUI的slave 1上运行任何测试,尽情享受。由于上述解决方案似乎有点过火,我使用了这种方法:
java-jarc:\ProgramFiles(x86)\Jenkins\Jenkins.war从命令行启动Jenkins
由于某些原因,我不得不在以这种方式启动时安装所有插件和所有东西,因此我建议创建一个备份,并为此提供插件。祝你好运。我相信我已经完成了所有这些-通过java web start启动它,自动登录用户(只有一个用户,即管理员)。但是如果没有RDC连接,它仍然无法工作。系统是否有一个监视器连接到它?您需要让UI组件处于活动状态,并且只有当您的jenkins客户端在同一个用户下运行,然后是登录到UI的用户。不,测试机是一个虚拟机。它没有连接到的物理监视器它。windows从机下只有一个用户,即admin。因此,它不应该由多个用户引起任何问题,而且我已经启用了自动登录。因此,如果不设置物理计算机,就无法进行自动登录。我确信它将与物理机一起工作,因为如果我打开RDP连接,它工作正常。但这是ex它不能像虚拟linux机器那样运行吗?我可以按照Peter.a提到的步骤在win7虚拟机中设置它