JLineup — это инструмент, который полезен для автоматического визуального регрессионного тестирования веб-страниц, особенно в конвейерах непрерывной доставки. Его можно использовать как простой инструмент командной строки или как небольшой веб-сервис, управляемый через REST API.
JLineup снимает и сравнивает скриншоты веб-страницы в два последовательных момента времени. Он выполняет попиксельное сравнение обоих прогонов и генерирует отчет в формате HTML и JSON. За кулисами он использует Selenium и выбранный браузер (в настоящее время поддерживаются Chrome, Chromium и Firefox).
У JLineup нет других зависимостей, кроме веб-браузера (Firefox или Chrome/Chromium) и JVM. Экспериментально : существует также автономная сборка Linux AMD64 версии CLI, для которой даже не требуется JVM.
Давайте возьмем этот небольшой пример конфигурации для проверки otto.de во время развертывания:
{ "urls": { "https://www.otto.de": { "пути": [ "/" ], "devices": [{ "width": 850, "height": 600, "pixel-ratio": 1.0, "имя устройства": "DESKTOP", "touch": false }, { "ширина": 1000, "высота": 850, "соотношение пикселей": 1,0, "имя устройства": "DESKTOP", "touch": false }, { "ширина": 1200, "высота": 1000, "соотношение пикселей": 1,0, "имя устройства": "DESKTOP", "touch": false } ] } }, «ожидание после загрузки страницы»: 0,5, «браузер»: «хром-без головы»}
JLineup запускается до и после развертывания и генерирует такой отчет:
Также есть отчет в формате JSON, который отлично подходит, если вы хотите проверить что-то с помощью скрипта:
Пример отчета JLineup JSON
JLineup CLI поставляется в виде исполняемого Java-архива. Для его запуска должна быть доступна Java 17 или более поздняя версия.
Откройте терминал и загрузите его следующим образом:
wget https://repo1.maven.org/maven2/de/otto/jlineup-cli/4.12.1/jlineup-cli-4.12.1.jar -O jlineup.jar
Затем введите
java -jar jlineup.jar --help
чтобы увидеть справку по командной строке.
Дополнительную информацию и небольшой учебник см. в документации по CLI.
Это пример того, как JLineup может быть полезен в вашем автоматизированном конвейере сборки и развертывания. Предположим, это часть конвейера непрерывной интеграции:
JLineup 4.13 был успешно протестирован с
Хром 128.х
Firefox 130.x
Если вы хотите использовать один из них, в системе должен быть установлен Chrome или Firefox.
JLineup как инструмент CLI
JLineup как веб-сервер
Конфигурация задания JLineup
JLineup использует некоторые сторонние инструменты и библиотеки.
Selenium лицензируется по лицензии Apache 2.0.
Webdrivermanager лицензируется по лицензии Apache 2.0.
Джексон имеет лицензию Apache 2.0.
Logback распространяется под лицензией Eclipse Public License.
API SLF4J лицензируется по лицензии MIT.
Thymeleaf распространяется по лицензии Apache 2.0.
Edison Microservice лицензируется по лицензии Apache 2.0.
Spring Boot распространяется по лицензии Apache 2.0.
Бинарная версия cli создана с помощью GraalVM Community Edition. GraalVM CE предлагает собственную лицензию на продукт.
Image Compare Viewer распространяется по лицензии MIT.
В отчете HTML используются шрифты Google. Таковы условия.
AWS SDK для Java 2.0 лицензируется по лицензии Apache 2.0.
Некоторый код из Pixelmatch был портирован на Java для JLineup.
Pixelmatch распространяется по лицензии ISC.
Некоторый код из Looks-same был портирован на Java для JLineup.
Выглядит то же самое под лицензией MIT.
JLineup — это совместимая по конфигурации замена Lineup, реализованная на Java. Исходная линейка была инструментом Ruby, но больше не поддерживается.
Благодарность за оригинальный состав принадлежит Финну Лорберу.
Если у вас есть вопросы или предложения, откройте вопрос или напишите электронное письмо по адресу marco DOT geweke AT otto.de.