Автоматизировать разрешение экрана
У меня есть проект тестирования автоматизации с использованием инструмента автоматизации LeanFT (на Java). Эти тесты охватывают потоки пользовательского интерфейса веб-приложения.
Дженкинс выполняет эти тесты каждую ночь на удаленной подчиненной RDP VM.
Я понял, что тесты иногда проваливаются, но не смог определить точную причину. После расследования я обнаружил, что если последний пользователь, вошедший в виртуальную машину, имел разрешение, отличное от 1920 X 1080 (например, вход в систему с ноутбуком с другим собственным разрешением), тесты не пройдены.
Я использую метод LeanFT VRI (визуальные реляционные идентификаторы) в своих тестах, чтобы идентифицировать объекты, у которых нет идентификатора, то есть идентифицировать объекты на основе других объектов в DOM (ближайшем по оси x/y). так что это явно связано с разрешением экрана.
У меня вопрос: как я могу гарантировать, что мои тесты начинаются с необходимого разрешения экрана, независимо от последнего разрешения входа в систему? Я предполагаю, что мне нужен способ переопределить существующее разрешение с помощью параметра Jenkins или добавить некоторую строку кода в мой тестовый проект для поддержки случая, разрешение которого отличается от 1920 x 1080.
1 ответ
Предполагая, что мы говорим об ОС Windows, вы можете сделать это, вызвав некоторые функции WinAPI.
Как уже упоминалось в этом ответе, вы можете использовать:
- EnumDisplayDevices для определения доступных дисплеев
- EnumDisplaySettings, чтобы получить список доступных разрешений для ваших дисплеев. 3. ChangeDisplaySettings, чтобы установить необходимое разрешение.
Для вызова этих функций в Java вы можете использовать Java Native Access (JNA). Как они упоминают:
Полная ссылка JNA (включая обзор и детали использования) находится в JavaDoc. Пожалуйста, прочитайте обзор. [...] вам может быть легче найти ответы на уже решенные проблемы в Stackru.