Teamcity 自动将我登录到windows

Teamcity 自动将我登录到windows,teamcity,Teamcity,我正在使用TeamCity来管理我们的自动化测试套件。构建步骤是标准步骤,包括: 命令行-获取最新代码 命令行-生成项目 MSTest-运行测试 但由于这些测试在外部测试机/代理上运行,我需要登录到该机才能成功运行测试(测试WPF应用程序): 我想添加构建步骤,作为预步骤自动将我登录到windows,并在测试套件完成后再次将我注销 例如: (将我预先登录到WINDOWS) 命令行-获取最新代码 命令行-生成项目 MSTest-运行测试 (POST-让我注销) 关于如何利用其中一个构建步骤

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

  • 命令行-获取最新代码
  • 命令行-生成项目
  • MSTest-运行测试
但由于这些测试在外部测试机/代理上运行,我需要登录到该机才能成功运行测试(测试WPF应用程序):

我想添加构建步骤,作为预步骤自动将我登录到windows,并在测试套件完成后再次将我注销

例如:

  • (将我预先登录到WINDOWS)
  • 命令行-获取最新代码
  • 命令行-生成项目
  • MSTest-运行测试
  • (POST-让我注销)

关于如何利用其中一个构建步骤(CMD、Powershell等)来实现这一点,有什么想法吗?

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

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

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

感谢您的详细回复。不幸的是,由于公司的官僚作风,我不能使用虚拟机。在我的物理测试代理上,我禁用了屏幕锁和屏幕保护程序。这确实允许我在夜间不间断地运行测试套件,但我希望控制windows登录/退出的安全性。一个选项是使用这种方法启动机器。然后可以运行以自动登录。在测试结束时,您可以运行脚本关闭电脑。这会给你想要的安全感。有局域网唤醒的代码,但我从未测试过那个些代码,因为我并没有可用的物理测试机器。如果你认为这对你的处境有利,请随意尝试。