【问题标题】:Change VSTS agent session screen resolution when running protractor tests运行量角器测试时更改 VSTS 代理会话屏幕分辨率
【发布时间】: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


【解决方案1】:

为了运行量角器测试,代理需要一个交互式会话。将代理配置为以交互方式运行,而不是作为服务运行。

它确实有助于以交互方式运行代理。当我通过 RDP 连接到我的构建机器时,它会获取我的客户端机器的屏幕分辨率。然后,当我启动 vso 代理并通过 RDP 断开连接时,此显示分辨率仍保留在构建机器上,因此 selenium 可以最大化浏览器窗口。

【讨论】:

  • 您是否找到了无需登录 RDP 即可运行它的方法?
猜你喜欢
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
相关资源
最近更新 更多