我正在尝试自动化编码的UI测试。
我的测试控制器在远程测试服务器上启动测试,我通常通过远程桌面连接访问它。
是否可以在不必通过远程桌面连接的情况下运行Coded UI测试?
目前,测试仅在我通过远程桌面连接时运行,并且窗口必须打开。当我关闭远程桌面会话时,测试不会运行。
如果没有远程桌面无法运行编码的UI测试,如何通过远程桌面自动连接?
由于
答案 0 :(得分:17)
我遇到了与远程测试机器相同的问题,但我们的测试机器在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
答案 1 :(得分:4)
解决此问题的最简单方法是在我的测试环境中启用自动登录(根据操作系统,有多种方法可以执行此操作)。
启用自动登录后,当我重新启动测试环境时(使用'shutdown.exe / r'命令,可以编写脚本),测试环境会加载一个活动的,已登录的会话,因此测试可以成功运行。
对于我的夜间测试自动化,我在测试环境中启用了自动登录,并在测试执行之前安排了重启。
我对此方法没有任何问题 - 这意味着我不必通过远程桌面连接。
答案 2 :(得分:3)
来自MSDN:
正在运行要运行编码的代理的计算机 UI测试无法锁定或具有活动的屏幕保护程序。
如果您通过Visual Studio运行CodedUi Tests
(意味着在您的帐户下执行测试),我相信您必须通过远程桌面连接到远程测试服务器。
但是,您可以使用Microsoft Test Manager
来运行测试:
答案 3 :(得分:2)
这很容易请查看这篇博文,这里的内容以非常简单的方式解释 如何在没有MS TFS的情况下安排Microsoft coaded UI测试执行
II。如果已构建版本,请单击“重建”
成功构建编码的UI项目后导航到发布项目文件夹并复制以项目名称命名的testAutomated.dll
将此dll放在要安排测试执行的远程计算机上
将.dll放在远程计算机的某个目录中,例如我放在D:\ coadedUitest
在要执行测试的计算机上从此链接安装Miscosoft Test代理。 http://www.microsoft.com/en-us/download/details.aspx?id=38186
安装测试代理后,验证MS测试是否存在于位置
打开记事本并输入以下文字 d: cd coadedUitest set mstestPath =" C:\ Program Files \ Microsoft Visual Studio 12.0 \ Common7 \ IDE" %mstestpath%\ mstest /testcontainer:testAutomated.dll
使用.bat扩展名保存
双击打开.bat文件以验证是否执行了测试
成功执行后,打开Windows任务计划程序并创建计划任务以运行此创建的.bat文件。
http://testingtoolstecniques.blogspot.com/2014/11/how-to-schedule-microsoft-coaded-ui.html
答案 4 :(得分:1)
更新:
使用VSO或TFS2015构建系统不再需要远程连接来运行测试。创建运行任务" Visual Studio测试代理部署"的构建或发布,然后运行"运行功能测试"任务。
最好的方法可能是,创建一个删除构建工件的构建,然后创建一个从工件部署网站并针对该网站运行Coded UI测试的版本。
注意:
答案 5 :(得分:0)
使用VNC查看/与机器交互(例如,TightVNC)
答案 6 :(得分:0)
您可以使用VMware运行编码的ui测试。如果您最小化VM,测试仍将继续。
有关详细信息,请参阅此链接。 http://www.binaryclips.com/2016/03/coded-ui-tests-executing-test-case.html
答案 7 :(得分:-1)
- 首选 解决方案1:拥有Hyper-V客户端,并使用计划任务简单地运行编码的UI测试。没问题。
- 优选的 解决方案2:您需要拥有2个VM。第一个远程桌面到VM 1,然后从VM 1远程桌面到VM 2,其中Coded UI将运行。在VM2中启动Coded UI后,只需断开VM 1.这将使会话保持打开状态,并且永远不会出现任何问题
- 无首选 解决方案3:使用命令行重新启动VM。在您的VM上启用make sue自动登录。有一个计划任务来运行编码的UI。
我使用这种方法,发现我的一些测试中断了。
- 最不喜欢的 解决方案4:使用tscon.exe%sessionname%/ dest:console 我使用了这种方法,但无法保证您的测试不会出现任何问题