首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins on Windows和无RDC的GUI测试

Jenkins on Windows和无RDC的GUI测试
EN

Stack Overflow用户
提问于 2012-04-17 00:07:09
回答 4查看 27.6K关注 0票数 18

我们有一个针对Jenkins的主-从配置。我们的.NET项目是由一个运行在Windows上的从Jenkins实例构建的。

有许多GUI测试,但是它们似乎只有在远程桌面连接(RDC)会话打开时才会运行。

当尝试在没有RDC的情况下运行测试时,Jenkins在测试中没有显示出任何进展。然后,我连接到Slave的桌面,可以看到启动的应用程序的主窗口,但是UI测试框架(白色)不能执行任何操作。

Jenkins从服务器是通过Java Web Start启动的。

我在几个网站上看到,不幸的是,在没有RDC会话的情况下无法运行GUI测试。

我只想确认这是真的,并想知道是否有任何解决办法。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-17 03:54:47

在测试能够正常运行之前,您的从属计算机必须在桌面上。我们也有同样的问题。

解决方案是让测试机器启动并自动登录到桌面。为了确保测试只在桌面可用后开始,我们添加了一个计划任务,设置为在用户登录时运行,它将通过Java Web Start启动Jenkins从进程。这样,Jenkins只能在桌面运行时才能看到从属服务器。在那之后,一切都运行得很好。

票数 15
EN

Stack Overflow用户

发布于 2013-11-30 10:27:13

我有一个Jenkins集群,运行不同类型的图形用户界面测试,win32,swing,selenium。他们以24x7全天候无人值守的方式运行数千个测试。以下是我的解决方案:

  1. 如何保持图形用户界面测试有效- RDC无法工作,只有当RDC会话处于活动状态时,图形用户界面应用程序才能正常工作。我已经尝试过不同的方法,所以不用费心再试了。在RDC窗口最小化或断开连接后,您的测试将会中断。到目前为止,解决方案是安装VNC Server (我使用的是UltraVNC)作为服务,并确保它在登录时启动。还要确保您没有使用RDC连接到测试计算机,因为RDC会中断VNC会话。如果可能,也将其连接到VNC客户端。但这取决于你。我所做的是当我需要在机器上调试一些东西的时候,我重新启动它,以确保#2和#3已经设置好了。
  2. 自动登录-在SysInternalsSuite中有一个工具autologon.exe,在你的从属
  3. 自动注册从属上运行它-你需要的是群插件- https://wiki.jenkins-ci.org/display/JENKINS/Swarm+Plugin。编写一个简单的批处理,并在启动文件夹中放置一个快捷方式。每次机器自动登录时,它都会自动注册为从机。

我实际上将#2和#3组合为一个简单的批处理文件:

代码语言:javascript
复制
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>
票数 10
EN

Stack Overflow用户

发布于 2014-10-27 22:35:28

有另一种方法可以在没有windows自动登录的情况下做到这一点(适用于我在少数机器上)。

  1. 转到计算机管理->服务和应用程序->服务-> Jenkins从->属性
  2. 登录选项卡中选择本地系统帐户E29,然后选中允许服务与桌面交互
  3. 单击确定关闭此窗口,然后重新启动Jenkins slave服务并转到您的测试应用所在的目录,然后在您的应用可执行文件
  4. On Security上选择Properties <代码>e225选项卡单击<代码>E126<代码>E227<代码>H228<代码>H129在新窗口中单击<代码>E130<代码><代码>H232<代码>H133在新窗口中单击Locations...并选择“本地计算机”(列表中最顶部的选项),单击<代码>E237<代码>E237<代码><代码>H139将<代码>E140本地服务<代码>e241放到窗口的白色区域,然后单击<代码>E142检查<代码><名称>,为该用户单击OK
  5. Allow Full control,单击OK,关闭所有窗口

<代码>G253

这应该就是全部了。如果对你有效,请让我知道。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10177708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档