自动屏幕分辨率

时间:2018-12-13 15:20:01

标签: java jenkins leanft

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

Jenkins作业每晚在远程从属RDP VM上执行这些测试。

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

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

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

1 个答案:

答案 0 :(得分:0)

假设我们在这里谈论的是Windows OS,则可以通过调用一些WinAPI函数来实现。

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

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

要使用Java调用这些函数,可以使用Java Native Access (JNA)。正如他们所说:

  

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