2016-07-22 154 views
5

首先的自动化TestStack.White UI测试在Windows奴隶,我很抱歉,如果我浪费你的时间,因为它看起来像一个简单的步骤,我不能即使经过一些研究,以弄清楚。使用詹金斯

好吧,这是我正在尝试实现的,我已经使用TestStack.White编写了一些UI测试,我希望在不同用户的Jenkins Slave上执行此操作,因为应用程序的行为基于角色在Active Directory中分配给他们。

因此,在谷歌上进行了一些查找之后,我发现以下与我尝试实现的链接相关的链接。

看起来,我要对詹金斯从安装TightVNC的,并且应该连接从詹金斯主到从和从执行测试。

这让我想起我的第一个问题,我如何从詹金斯的工作中实现这个目标?

关于以不同用户身份登录,我明白我可以使用“autologon.exe”来实现此目的。所以只是想知道如何在Jenkins Master的Windows Slave上做到这一点。我的公司不允许SSH到Windows实例(从属机器),我不能从Jenkins Master远程执行SSH。

我明白,我可能没有正确看待这个,所以任何帮助将不胜感激。

在此先感谢您的时间和建议。

+1

我认为在服务器上无人值守运行UI测试的主要问题是您需要运行一个交互式会话。即需要有一个用户在交互式会话中登录,该用户当前未被锁定或以其他方式“无头”,否则很多事情都无法正常工作。使用虚拟机通常是一种合适的方法,但增加了更多的复杂性。在我们自己的产品中,我们根本没有进行UI测试来解决问题,而是以正确的顺序合成我们自己的抽象输入事件,以使代码的其余部分做到精简,从而避免了会话问题。 – Joey

回答

1

感谢所有您的意见和答案,基本上这就是我所做的得到它的工作对我来说,

  1. 建立与詹金斯从VNC客户端VNC连接,这是手工做不是通过詹金斯。
  2. 使用名为“咖啡因”的应用程序来防止窗口锁定,它模拟F15上的按键事件(每隔xx秒),因此在我的项目中不会中断测试任务。
  3. 启动与Jenkins Master和“Caffeine”应用程序的JNLP连接,作为通过VNC连接进行Windows登录的一部分。
  4. 关闭VNC连接(不注销),这不是通过Jenkins手动完成的。
  5. 让构建在从站上使用PSExec作为不同的用户运行。

到目前为止,这似乎工作正常,我没有尽早回复,因为我想在这里发布我的回复之前监测几天的工作。

1

我正准备做类似这样的东西,但我建立一个通信层到我们的UI自动化应用程序,使我们的建设机械(我们公司推出我们自己构建机)可发送TCP请求来回。我打算将UI自动化和构建部署到共享中,然后启动虚拟机。构建机器模板将有一个启动脚本,从共享中启动我们的两个应用程序。一旦虚拟机启动后,我将与UI自动化应用程序进行通信,告诉它开始,它会告诉我什么时候完成,我可以拆除虚拟机。我将把所有的测试结果保存到一个份额用于报告目的。

我知道这并不直接回答你的问题,但这种方法是我从多个人在不同的自动化框架的工作听说过。

如果我打算在Jenkins做这件事,我会考虑Jenkins插件系统。就我所知,插件系统使用Java,因此您应该能够创建某种类型的通信层并与某种类型的VM进行接口。如果您没有启动和停止VM的选项,则需要在伪装成用户的同时查看远程计算机上的启动和停止进程。我知道这可以在C#中完成,但我从来没有在Java中进行过研究。