【发布时间】:2016-09-22 05:44:26
【问题描述】:
当通过 RDP 访问时,我的量角器测试在我的本地计算机和 Azure VM Windows Server 2012R2 上运行良好。我在测试中使用browser.driver.manage().window().setSize(1600, 900); 明确设置了浏览器窗口分辨率,它允许测试正常工作。
但是,当上述 VM 用作构建机器并由 VSO (VSTS) 代理控制时,我的量角器测试失败。我怀疑这是因为 VSO 代理会话的屏幕分辨率小于我在测试中指定的所需分辨率,并且 WebDriver(ChromeDriver) 无法将分辨率设置为高于操作系统限制。
我的问题是如何为 VSO 代理会话更改 Azure VM 的屏幕分辨率?
我尝试使用自定义实用程序从 here 更改屏幕分辨率 它可以在我的 PC 上运行,但是当它由 Azure VM 上的 VSTS 代理执行时,它会引发错误:
System.InvalidOperationException: The display driver failed the specified graphics mode.
【问题讨论】:
-
我在Azure(windows server 2012 R2)上创建了一个VM并通过RDP连接到那台机器,分辨率是1600 X 900,也是基于这个工具(dccmd -listmonitors),分辨率是1600 X 900 也是。您的 VM 的分辨率是多少?
-
当我通过 RDP 连接到 Azure VM 时,分辨率为 1600x900,就像在我的笔记本电脑上一样,但我猜这是由 RDP 视频适配器设置的。当 VSO 代理在此 VM 上运行 UI 测试时,没有 RDP 会话,因此使用 Microsoft Hyper-V 视频适配器,其默认分辨率为 1024x768。需要了解是否可以更改它。
-
Get-DisplayResolution (powershell) 的结果是什么? (在构建过程中运行 powershell 脚本)
-
您的构建代理是否以交互模式运行?
-
我没有尝试更改分辨率。但是运行量角器测试需要构建代理以交互模式运行,因为它需要与浏览器交互。
标签: protractor automated-tests azure-devops azure-pipelines