17

我正在尝试自动化编码的 UI 测试。

我的测试控制器在远程测试服务器上启动测试,我通常通过远程桌面连接访问该服务器。

是否可以在无需通过远程桌面连接的情况下运行 Coded UI 测试?

目前,测试仅在我通过远程桌面连接时运行,并且窗口必须打开。当我关闭远程桌面会话时,测试不会运行。

如果在没有远程桌面的情况下无法运行编码的 UI 测试,如何通过远程桌面自动连接?

谢谢

4

8 回答 8

18

我在远程测试机器上遇到了同样的问题,但我们的测试机器在 Hyper-V 上运行。使用 Hyper-V,解决方案只是通过 Hyper-V 而不是远程桌面连接进行连接,并且关闭 Hyper-V 连接不会锁定计算机。

另一个建议是绕过远程桌面自动锁定屏幕的事实。这里有一个简短的介绍:http: //homeservershow.com/remote-desktop-session-locks-workstation-after-exit.html

基本上,当您想断开连接时,在远程计算机的命令提示符下运行“tscon.exe RDP-Tcp#0 /dest:console”。机器应保持解锁状态,测试将运行良好。

根据@Zatricion,该命令可以概括:

tscon.exe %sessionname% /dest:console
于 2012-08-01T14:21:11.593 回答
4

这个问题最简单的解决方案就是在我的测试环境中启用自动登录(根据操作系统有多种方法)。

启用自动登录后,当我重新启动测试环境(使用可以编写脚本的“shutdown.exe /r”命令)时,测试环境会重新加载一个活动的登录会话,因此测试可以运行成功地。

对于我的夜间测试自动化,我在我的测试环境中启用了自动登录,并在测试执行之前安排了重新启动。

我对这种方法没有任何问题 - 这意味着我不必通过远程桌面进行连接。

于 2012-09-13T09:52:17.257 回答
3

来自MSDN

运行您要在其上运行编码 UI 测试的代理的计算机不能被锁定或具有活动的屏幕保护程序。

如果您CodedUi Tests通过 Visual Studio 运行(意味着测试在您的帐户下执行),我相信您必须通过远程桌面连接到远程测试服务器。

但是,您可以使用它Microsoft Test Manager来运行您的测试:

  1. 创建虚拟环境。
  2. 设置您的虚拟机,以便它们可以运行自动化测试。
  3. 安装测试控制器和测试代理。
    - 将测试代理设置为作为交互式进程运行,以便它可以运行 CodedUi 测试。
    - 设置测试控制器以使用 Microsoft 测试管理器运行。
  4. 通过 MTM创建测试计划并在您的虚拟环境中运行巡回测试。现在不需要连接远程服务器,因为您的测试将在运行测试代理的帐户下运行(注意:您应该创建一个用于测试目的)。
于 2012-08-01T14:11:52.730 回答
2

这很容易请在此处查看此博客文章这件事以非常简单的方式进行了解释如何在没有 MS TFS 时安排 Microsoft coaded UI 测试执行

  1. 按照以下步骤创建一个稳定的编码 UI 项目的版本 i。打开构建 > 批量构建

ii. 如果已构建版本,请单击重新构建

  1. 成功构建编码 UI 项目后,导航到项目的发布文件夹并复制以您的项目名称命名的 testAutomated.dll

  2. 将此 dll 放在要安排测试执行的远程计算机上

  3. 将 .dll 放在远程机器的某个目录中,例如我放在 D:\coadedUitest

  4. 从此链接在您要执行测试的这台机器上安装 Miscosoft 测试代理。http://www.microsoft.com/en-us/download/details.aspx?id=38186

  5. 安装测试代理后,验证位置是否存在 MS 测试

  6. 打开记事本并输入以下文本 D: cd coadedUitest set mstestPath="C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE" %mstestpath%\mstest /testcontainer:testAutomated.dll

  7. 使用 .bat 扩展名保存它

  8. 通过双击打开 .bat 文件以验证是否执行了测试

  9. 成功执行后打开 windows 任务调度程序并创建一个计划任务来运行这个创建的 .bat 文件。

http://testingtoolstecniques.blogspot.com/2014/11/how-to-schedule-microsoft-coaded-ui.html

于 2014-11-19T09:21:41.973 回答
1

更新:

使用 VSO 或 TFS2015 构建系统不再需要远程连接来运行测试。创建运行“Visual Studio 测试代理部署”任务的构建或发布,然后运行“运行功能测试”任务。

最好的方法可能是,创建一个删除构建工件的构建,然后创建一个发布,从工件部署站点并针对该站点运行编码的 UI 测试。

笔记:

  • 如果您手动启动远程连接,则运行将失败。
  • 如果您创建远程连接并断开连接而不是注销,则运行将失败。
  • 启用自动登录并重新启动仍将允许这些测试运行。
  • 使用 Hyper-V,您可以看到运行测试的服务器桌面,它是一个非常小的窗口,但可以让您了解服务器正在做什么。
于 2016-08-10T14:05:54.410 回答
0

使用 VNC(例如,TightVNC)查看/与机器交互

于 2013-04-30T15:08:04.023 回答
0

您可以使用 VMware 运行编码的 ui 测试。如果您将 VM 最小化,测试仍将继续。

有关更多详细信息,请参阅此链接。 http://www.binaryclips.com/2016/03/coded-ui-tests-executing-test-case.html

于 2014-02-28T13:33:39.833 回答
-1

--首选解决方案 1:拥有 Hyper-V 客户端并使用计划任务简单地运行编码的 UI 测试。完全没有问题。

--preferred 解决方案 2:您需要有 2 个虚拟机。第一个远程桌面到 VM 1,然后从 VM 1 远程桌面到运行 Coded UI 的 VM 2。在 VM2 中启动 Coded UI 后,只需断开 VM 1 的连接即可。这将使会话保持打开状态并且永远不会出现任何问题

-less 首选解决方案 3:使用命令行重新启动 VM。在您的 VM 上启用了自动登录。有一个计划的任务来运行编码的 UI。

我使用了这种方法,发现我的一些测试中断了。

-- 最不推荐的解决方案 4:使用 tscon.exe %sessionname% /dest:console 我使用了这种方法,但不能保证您的测试将毫无问题地运行

于 2016-11-25T18:31:20.857 回答