Автоматизировать разрешение экрана - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть проект тестирования автоматизации с использованием инструмента автоматизации LeanFT (на Java).Эти тесты охватывают потоки пользовательского интерфейса веб-приложения.

Задание Jenkins выполняет эти тесты каждую ночь на удаленной ведомой виртуальной машине RDP.

Я понял, что тесты иногда дают сбой, но не смог определить точную причину.После расследования я обнаружил, что если последний пользователь, вошедший в виртуальную машину, имел разрешение, отличное от 1920 X 1080 (например, вход в систему с ноутбуком с другим собственным разрешением), тесты не пройдены.

Я использую LeanFTМетод VRI (визуальные реляционные идентификаторы) в моих тестах позволяет идентифицировать объекты, у которых нет идентификатора, то есть идентифицировать объекты на основе других объектов в DOM (ближайший по оси X / Y).так что это, очевидно, связано с разрешением экрана.

Мой вопрос: как я могу обеспечить, чтобы мои тесты начинались с необходимого разрешения экрана, независимо от последнего разрешения входа в систему?Я предполагаю, что мне нужен способ переопределить существующее разрешение с помощью параметра Jenkins или добавить некоторую строку кода в мой проект тестирования для поддержки случая, разрешение которого отличается от 1920 x 1080.

1 Ответ

0 голосов
/ 16 января 2019

Предполагая, что мы говорим об ОС Windows, вы можете сделать это, вызвав некоторые функции WinAPI.

Как уже упоминалось в в этом ответе , вы можете использовать:

  1. EnumDisplayDevices для определения доступных дисплеев
  2. EnumDisplaySettings для получения списка доступных разрешений для ваших дисплеев.3. ChangeDisplaySettings для установки необходимого разрешения.

Для вызова этих функций в Java вы можете использовать Собственный доступ к Java (JNA) ,Как они упоминают:

Полная ссылка JNA (включая обзор и подробности использования) находится в JavaDoc .Пожалуйста, прочитайте обзор .[...] вам может быть легче найти ответы на уже решенные проблемы в StackOverflow .

...