#user-interface #jenkins #size #resolution #sikuli
#пользовательский интерфейс #дженкинс #размер #разрешение #sikuli
Вопрос:
Мы запускаем Sikuli для тестирования графического интерфейса (проверка изображения).
Мы запускаем скрипты на локальном уровне и на уровне Jenkins, где скрипт разрабатывается сначала с использованием изображений, полученных с локального компьютера и используемых для тестирования на Jenkins.
Проблема в том, что тестовые примеры передаются на уровне локального компьютера, но постоянно терпят неудачу на уровне Jenkins.
Вот некоторые отмеченные нами факторы, которые могут быть причиной этого: разрешение экрана между Jenkins и локальным компьютером отличается
- Разрешение и / или размер экрана отличаются у Jenkins и локального компьютера
- Разрешение локального компьютера составляет 1920x1080x24
- Разрешение компьютера Jenkins задается в формате xvfb 1920x1080x24
- Однако размер экрана на компьютере Jenkins при запуске скрипта установлен на уровне 1440×810
- В настоящее время мы не нашли способа настроить этот размер экрана с помощью Sikuli; любые предложения по изменению размера экрана с помощью Sikuli или других инструментов были бы замечательными.
- Версия браузера между Jenkins и локальным компьютером отличается
- Дженкинс использует Firefox webdriver
- Локальная машина использует firefox webdriver
- Мы думаем об этом как о проблеме, потому что артефакты скриншотов с компьютера Jenkins отображают, казалось бы, разные формы шрифта для глаз; мы говорим «формы», потому что очевидно, что они имеют одинаковый размер шрифта, стиль и т.д.
Ответ №1:
Вы должны задавать такие вопросы на Launchpad, официальной доске вопросов и ответов для SikuliX. Я разработчик RayMan для SikuliX.
Какую версию Sikuli (X) вы используете? Рекомендуется 1.1.4.
В SikuliX обычно нет функции для настройки разрешения экрана. Это задается системной средой.
Если пробные версии изображений (захваченные изображения) содержат текст, то поиск зависит от того, насколько похожи шрифты на изображении и текущем экране. Различия обычно приводят к FindFailed.
Обычно размер пробного изображения в пикселях должен быть одинаковым на текущем экране, чтобы его можно было найти.
Комментарии:
1. Привет, мы используем Sikuli, а не SikuliX, но, несмотря на это, я думаю, что оба они довольно похожи по методам / библиотекам / функциям, не так ли?
2. Мы изменили размер браузера, и он по-прежнему не работает, но мы нашли другую причину, по которой скрипты могут давать сбой: Jenkins OS — это ОС на базе Linux, а локальная ОС — Windows. Рендеринг пикселей может немного отличаться у двух и вызывать сбои.
3. Эта проблема соотношения сторон или точности начинает быть очень распространенной. Грустно захватывать и запускать на одном дисплее. И у этого
find
нет таких модификаторов масштаба.
Ответ №2:
Просто хочу ответить на свой собственный вопрос:
Графический интерфейс (изображение / пиксель) при использовании Sikuli зависит от следующих факторов:
- Тип браузера
- Разрешение экрана
- Размер экрана
- ОПЕРАЦИОННАЯ система
Это выходит за рамки и не настраивается в Sikuli (а также настраивается в соответствии с технологическим стеком, используемым командой), поэтому лучше всего максимально выровнять систему разработки и выполнения тестов.
Причина в том, что при сопоставлении изображений используется следующая формула, которая ограничена сеткой.
Следующий вариант — использовать функцию распознавания текста SikuliX.