-->

詹金斯在Windows和GUI测试,而RDC(Jenkins on Windows and GUI

2019-06-23 16:26发布

我们有一个詹金斯主从配置。 我们的.NET项目是通过在Windows上运行的从詹金斯实例建成。

还有一堆的GUI测试,但他们似乎只运行,如果有一个远程桌面连接(RDC)会议开幕。

当试图运行没有RDC测试,詹金斯没有显示在测试中取得任何进展。 然后,然而,我连接到从桌面和可以看到启动的应用程序的主窗口,但是UI测试框架(白色)不能执行任何操作。

詹金斯从站通过Java Web Start启动。

我读了几个网站,遗憾的是它不能够在不RDC会话中运行的GUI测试。

我只是想确认它是真实的,不知道是否有任何解决方法。

Answer 1:

你的奴隶机器必须在桌面上,然后测试才能正常运行。 我们有同样的问题。

解决办法是有试机启动和自动登录到桌面。 为了确保测试只会启动桌面可用后,我们增加了一个计划任务,设置在用户登录运行,将推出通过Java Web Start詹金斯奴隶。 这样一来,詹金斯将只能看到一次从桌面正在运行。 在那之后,一切运行良好。



Answer 2:

我有运行不同类型的GUI测试,win32的,秋千,硒詹金斯集群。 他们是在无人值守的方式运行全天候数以千计的测试。 这里是我的解决方案:

  1. 如何保持GUI测试活着 - RDC不工作,当RDC会话处于活动状态的GUI应用程序将只运行良好。 我已经尝试了不同的方式,所以也懒得再试一次。 最小化或断开RDC窗口后,您的测试将爆发。 该解决方案迄今安装VNC服务器(我使用的ultraVNC下)的服务,并确保其登录时启动。 另外,还要确保你不RDC连接到您的试验机,因为RDC将打破VNC会话。 如果可能的话,使用VNC客户端连接为好。 但是,这是由你。 我要做的就是当我需要调试机器上的东西,我RDC给它,然后重新启动它,以确保#2,#3设置。

  2. 自动登录 - 存在SysInternalsSuite工具autologon.exe,在你的奴隶运行

  3. 自动注册奴隶-你需要的是群插件- https://wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin 。 写一个简单的批处理并放置一个快捷方式启动文件夹中。 每次你的机器自动登录,它会自动注册为奴隶。

我结合实际#2,#3作为一个简单的批处理文件:

autologon.exe <user> <domain> <password>
REM Here to make sure the logonCount is properly generated
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoLogonCount /t REG_DWORD /d 0xFFFF /f

start /min java -jar I:\CDC\jenkins\swarm-client-1.9-jar-with-dependencies.jar -executors 1 -fsroot c:\Jenkins -labels "Prod Win7 %ComputerName%" -master <Jenkins URL> -name farm-%ComputerName% -username <username> -password <password>


Answer 3:

还有就是做没有窗户自动登录的另一种方式(适用于我的几台机器)。

1.进入计算机管理- >服务和应用程序- >服务- >詹金斯从站- >属性
2.在登录选项卡选择本地系统帐户 ,并检查允许服务与桌面交互
3.通过单击确定关闭此窗口,并重新启动詹金斯从服务
4.转到目录哪里是你的测试应用程序,并选择在您的应用程序的可执行属性
5.在安全选项卡上单击编辑...
6.在新的窗口中点击添加..
7.在新的窗口中点击位置...并选择本地计算机(在列表最上面的选项),然后单击确定
8.将本地化服务窗口的空白区域,然后单击检查名称 ,然后单击确定
9.允许用户完全控制 ,单击确定 ,关闭所有窗口

这应该是一切。 请让我知道这对你有没有用。



Answer 4:

至于其他的答案已经指出,人们需要一种配置,其中的Windows机器自动登录到一个真实的用户,详见答案。 然而,这是不够的,我需要建立一个鸟哥服务器为运行的服务来解决问题。

在该网站上被提到,通过RDP登录是针对招用VNC或重新连接后RDP访问的问题,即。



文章来源: Jenkins on Windows and GUI Tests without RDC