3

我有一个使用 LeanFT 自动化工具(Java 语言)的自动化测试项目。这些测试涵盖了 Web 应用程序的 UI 流。

Jenkins 作业每晚在远程从 RDP 虚拟机上执行这些测试。

我意识到测试有时会失败,但无法找出确切的原因。经过调查,我发现如果最后一个登录到 VM 的用户的分辨率不同于 1920 X 1080(例如登录到具有不同本机分辨率的笔记本电脑),则测试失败。

我在我的测试中使用 LeanFT VRI 方法(视觉关系标识符)来识别没有 ID 的对象,这意味着根据 DOM 中的其他对象(最接近 x/y 轴)来识别对象。所以这显然与屏幕分辨率有关。

我的问题是:我如何确保我的测试以所需的屏幕分辨率开始,无论上次登录分辨率如何?我假设我需要一种方法来使用 Jenkins 参数覆盖现有分辨率或向我的测试项目添加一些代码行以支持分辨率不同于 1920 x 1080 的情况。

4

1 回答 1

0

假设我们在这里谈论的是 Windows 操作系统,您可以通过调用一些 WinAPI 函数来做到这一点。

this answer中所述,您可以使用:

  1. EnumDisplayDevices找出可用的显示器
  2. EnumDisplaySettings获取显示器可用分辨率的列表。3. ChangeDisplaySettings设置您需要的分辨率。

要在 Java 中调用这些函数,您可以使用Java Native Access (JNA)。正如他们提到的:

最终的 JNA 参考(包括概述和使用细节)在JavaDoc中。请阅读概述[...] 您可能会发现在StackOverflow上找到已解决问题的答案更容易。

于 2019-01-16T12:20:54.737 回答