自动登录我的窗口

时间:2014-03-20 17:01:22

标签: teamcity

我使用TeamCity管理运行我们的自动化测试套件。构建步骤是标准的,包括:

  • 命令行 - 获取最新代码
  • 命令行 - 构建项目
  • MSTest - 运行测试

但是,由于这些测试在外部测试机器/代理上运行,我需要登录到机器以使测试成功运行(测试WPF应用程序):

我想添加构建步骤以自动将我登录到Windows中作为预备步骤,并在测试套件完成后再次登出。

示例:

  • (预先登录进入WINDOWS)
  • 命令行 - 获取最新代码
  • 命令行 - 构建项目
  • MSTest - 运行测试
  • (POST - LOG ME OUT)

关于如何利用其中一个构建步骤(CMD,Powershell等)来实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:1)

据我所知,由于Windows在桌面会话和登录会话之间处理separation的方式,因此无法自动登录到Windows计算机,访问桌面然后注销

您可以通过创建永久登录的VM(不要忘记关闭锁定屏幕和屏幕保护程序)来解决您的问题,然后您可以将其用于测试工作。我建议使用虚拟机,因为机器需要永久登录,锁定屏幕和屏幕保护程序已禁用,这也是因为Windows处理不同sessions的方式(桌面会话vs屏幕保护程序会话与锁定屏幕会话)。使用具有未锁定桌面的物理机器很可能意味着人们将其用于其他目的会干扰您的测试工作。使用虚拟机意味着人们不太可能访问该计算机,您可以将其放在网络的一部分,人们无法远程连接到该网络。

如果您真的想要自动登录和注销或自动将测试环境重置为已知状态,那么您将需要做一些工作来提供自动VM启动和关闭。我们在公司解决这个问题的方法是编写一个service,它能够在需要进行测试和控制测试执行时启动/停止虚拟机。 通过这种方式,我们拥有一套测试机器,我们可以在其上进行交互式登录,同时保持机器相对安全。 (所有VM都在人们访问权限非常有限的服务器上运行)我们可以在测试后通过应用现有快照将机器恢复到已知状态。