我必须在 VM 上远程运行 Coded UI 测试。我正在使用 Mstest.exe 执行测试用例。现在,当我通过 Windows 调度程序运行它时,它失败了,因为它需要“活动桌面”。
我读了几个我们需要使用测试代理的地方。但我不想配置测试代理和测试控制器只是为了设置“活动桌面”,我还能做些什么吗?
我必须在 VM 上远程运行 Coded UI 测试。我正在使用 Mstest.exe 执行测试用例。现在,当我通过 Windows 调度程序运行它时,它失败了,因为它需要“活动桌面”。
我读了几个我们需要使用测试代理的地方。但我不想配置测试代理和测试控制器只是为了设置“活动桌面”,我还能做些什么吗?
好吧,设置测试控制器和测试代理并不难,这真的很容易,也是最好的方法。您可以在此处找到安装指南:http: //msdn.microsoft.com/en-us/library/dd293551.aspx
但是,即使您使用控制器,仍然存在一些问题。
测试代理可以在服务或进程模式下运行。对于编码的 ui 测试,您需要在进程模式下运行它(因为它需要在同一个 Windows 会话中)。但是,当您使用远程桌面登录 VM 并将其关闭时,目标计算机的桌面将保持锁定状态,并且无法继续进行测试。除非您登录,否则没有活动会话,测试控制器甚至都不会启动。
我知道有两种方法可以保持活动桌面:
斯塔斯。
您需要执行以下操作:
1) 设置自动登录。
2) 禁用屏幕保护程序。
3)禁用所有应该干扰测试的东西,例如:关闭Windows更新。
在虚拟机上运行 CODEDUI 测试(即使虚拟机处于最小化状态),并在虚拟机和本地机器上同时工作,请执行以下操作。
1) 关闭计算机上打开的所有远程桌面会话。
2) 在您的本地计算机上单击开始并选择运行。在“运行”对话框中,键入 regedit 并按 Enter。注册表编辑器启动。
3) 找到以下任何注册表项:
HKEY_CURRENT_USER -----> 软件 -----> Microsoft-----> 终端服务器客户端(如果您想更改用户帐户的 RDC 设置)
——或者——</p>
HKEY_LOCAL_MACHINE -----> 软件 -----> Microsoft -----> 终端服务器客户端(如果要更改所有帐户的 RDC 设置)
右键单击“终端服务器客户端”并选择“新建”--->“DWORD 值”---> 命名为 ---> RemoteDesktop_SuppressWhenMinimized。----> 右键单击此名称并选择“修改” ---> 在弹出窗口中输入“数值数据”为“2”
就这样。现在最小化您计算机上的 RDC 窗口不会影响远程计算机的 GUI,并且 GUI 仍可用于您的自动化 GUI 测试。
您无法通过正常的 RDP 连接运行 CodedUI 测试 - 您需要登录到控制台会话。假设您要运行测试的机器是 Hyper-V 机器,您可以使用 Hyper-V 虚拟机管理器登录到控制台会话。在某些情况下,使用 /admin 参数运行远程桌面可能会起作用(但对我来说不起作用):
mstsc -v:SERVERIP -admin