当通过 RDP 访问时,在我的本地计算机和 Azure VM Windows Server 2012R2 上针对桌面 WPF 应用程序运行自动化测试工作正常。
但是,当 VM 用作构建机器时,由 TFS 或 VSTS 上的测试代理控制,所有测试都失败,因为屏幕分辨率设置为 1024x768 屏幕分辨率。在此显示设置之前,应用程序不会配置为运行。当我们部署测试代理时,有什么方法可以更改屏幕设置?
Change VSTS agent session screen resolution when running protractor tests
最佳答案
我们在 Visual Studio + Azure 解决方案中遇到了同样的问题。为了能够执行测试,我们需要在 VM 上使用比 1027 x 768 更高的分辨率。但由于它是 Azure 并且您需要为打开的机器付费,我们还希望在每次运行后关闭它们以降低成本(当你想扩大一点时特别有用)。
因此,没有简单的选项可以让 VM 以特定(指定)分辨率启动,这是一个真正的痛苦。如果有比我要向您展示的更简单的东西,请告诉我,但我找不到任何东西。所以我赞成 Nessi 提到的想法。作为解决方法,我们做了以下工作。
可能的解决方案的想法
本质上我们使用了this post作为指导方针。我们从中使用的最重要的东西是 Windows 凭据部分和 TERMSRV。
我们的设置
我们的解决方案
首先,我们让构建服务器启动资源组中的所有机器(到目前为止一切顺利)。然后,我们创建了一个 Powershell 脚本,该脚本在构建服务器上运行到节点以检查并等待 RDP 服务可用。这是必需的,因为我们可能需要 10 分钟才能看到此服务处于事件状态。最后,我们在 selenium-grid-hub VM 上触发 Powershell,以特定分辨率与所有节点建立 RDP 连接。
更详细一点,以确保一切都自动进行,无需任何手动输入:
C:\Scripts\RDPServiceRunCheck.ps1
(参见下面的示例)在带有参数 $(Password) $(Chrome-node) $(Username)
的 VS 构建 block 中C:\Scripts\Resolution.RDP.Remoting.exe
(参见下面的示例)在带有参数 "C:\Scripts\$(Chrome-node).rdp" 1600 1200
的 VS 构建 block 中1600 1200
是我们要设置的分辨率关于tfs - 增加测试代理的屏幕分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45829787/