JLineup은 특히 지속적인 전달 파이프라인에서 웹 페이지의 자동화된 시각적 회귀 테스트에 유용한 도구입니다. 간단한 명령줄 도구로 사용할 수도 있고 REST API를 통해 제어되는 작은 웹 서비스로 사용할 수도 있습니다.
JLineup은 연속된 두 시점에서 웹페이지의 스크린샷을 촬영하고 비교합니다. 두 실행을 픽셀 단위로 비교하고 HTML 및 JSON 보고서를 생성합니다. 그 뒤에서는 Selenium과 선택한 브라우저(현재 Chrome, Chromium 및 Firefox가 지원됨)를 사용합니다.
JLineup에는 웹 브라우저(Firefox 또는 Chrome/Chromium) 및 JVM 외에는 다른 종속성이 없습니다. 실험적 : JVM도 필요하지 않은 CLI 버전의 독립형 Linux AMD64 빌드도 있습니다.
배포 중에 otto.de를 확인하기 위해 다음과 같은 작은 예제 구성을 살펴보겠습니다.
{ "URL": { "https://www.otto.de": { "경로": [ "/" ], "devices" : [ { "width" : 850, "height" : 600, "pixel-ratio" : 1.0, "device-name" : "DESKTOP", "touch" : false }, { "너비" : 1000, "높이" : 850, "픽셀 비율" : 1.0, "장치 이름" : "데스크탑", "터치" : false }, { "너비" : 1200, "높이" : 1000, "픽셀 비율" : 1.0, "장치 이름" : "데스크탑", "터치" : false } ] } }, "페이지 로드 후 대기": 0.5, "브라우저": "chrome-headless"}
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.x
파이어폭스 130.x
Chrome이나 Firefox 중 하나를 사용하려면 시스템에 설치되어 있어야 합니다.
CLI 도구로서의 JLineup
웹 서버로서의 JLineup
JLineup 작업 구성
JLineup은 일부 타사 도구 및 라이브러리를 사용합니다.
Selenium은 Apache 2.0 라이센스에 따라 라이센스가 부여됩니다.
Webdrivermanager는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.
Jackson은 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.
Logback은 Eclipse Public License에 따라 라이센스가 부여됩니다.
SLF4J API는 MIT 라이선스에 따라 라이선스가 부여됩니다.
Thymeleaf는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.
Edison 마이크로서비스는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.
Spring Boot는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.
바이너리 cli 버전은 GraalVM Community Edition으로 구축되었습니다. GraalVM CE는 자체 제품 라이센스를 제공합니다.
Image Compare Viewer는 MIT 라이선스에 따라 라이선스가 부여됩니다.
HTML 보고서에는 Google 글꼴이 사용됩니다. 이것이 용어입니다.
Java 2.0용 AWS SDK는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다.
Pixelmatch의 일부 코드가 JLineup용 Java로 포팅되었습니다.
Pixelmatch는 ISC 라이선스에 따라 라이선스가 부여됩니다.
Looks-same의 일부 코드가 JLineup용 Java로 포팅되었습니다.
같은 모양은 MIT 라이센스에 따라 라이센스가 부여됩니다.
JLineup은 Java로 구현된 Lineup의 구성 호환 대체품입니다. 원래 라인업은 Ruby 도구였지만 더 이상 유지관리되지 않습니다.
원래 라인업에 대한 크레딧은 Finn Lorbeer에게 있습니다.
질문이나 제안이 있는 경우 이슈를 열거나 marco DOT geweke AT otto.de로 이메일을 보내주세요.