JLineup ist ein Tool, das für automatisierte visuelle Regressionstests von Webseiten nützlich ist, insbesondere in Continuous-Delivery-Pipelines. Es kann als einfaches Befehlszeilentool oder als kleiner Webdienst verwendet werden, der über die REST-API gesteuert wird.
JLineup erstellt und vergleicht Screenshots einer Webseite zu zwei aufeinanderfolgenden Zeitpunkten. Es führt einen Pixel-für-Pixel-Vergleich beider Läufe durch und generiert einen HTML- und einen JSON-Bericht. Hinter den Kulissen verwendet es Selenium und einen Browser Ihrer Wahl (derzeit werden Chrome, Chromium und Firefox unterstützt).
JLineup hat keine anderen Abhängigkeiten als einen Webbrowser (Firefox oder Chrome/Chromium) und eine JVM. Experimentell : Es gibt auch einen eigenständigen Linux AMD64-Build der CLI-Version, der nicht einmal eine JVM erfordert.
Nehmen wir diese kleine Beispielkonfiguration für einen Check von otto.de während einer Bereitstellung:
{ "urls": { "https://www.otto.de": { "paths": [ „/“ ], „devices“ : [ { „width“ : 850, „height“ : 600, „pixel-ratio“ : 1.0, „device-name“ : „DESKTOP“, „touch“ : false }, { „width“ : 1000, „height“ : 850, „pixel-ratio“ : 1.0, „device-name“ : „DESKTOP“, „touch“ : false }, { „width“ : 1200, „height“ : 1000, „pixel-ratio“ : 1.0, „device-name“ : „DESKTOP“, „touch“ : false } ] } }, „wait-after-page-load“: 0,5, „browser“: „chrome-headless“}
JLineup wird vor und nach der Bereitstellung ausgeführt und generiert einen Bericht wie diesen:
Es gibt auch einen JSON-Bericht, der sich hervorragend eignet, wenn Sie Dinge per Skript überprüfen möchten:
Beispiel eines JLineup-JSON-Berichts
JLineup CLI wird als ausführbares Java-Archiv geliefert. Zur Ausführung muss Java 17 oder höher verfügbar sein.
Öffnen Sie ein Terminal und laden Sie es wie folgt herunter:
wget https://repo1.maven.org/maven2/de/otto/jlineup-cli/4.12.1/jlineup-cli-4.12.1.jar -O jlineup.jar
Geben Sie dann ein
java -jar jlineup.jar --help
um die Befehlszeilenhilfe anzuzeigen.
Weitere Details und ein kleines Tutorial finden Sie in der CLI-Dokumentation.
Dies ist ein Beispiel dafür, wie JLineup in Ihrer automatisierten Build- und Deployment-Pipeline hilfreich sein kann. Nehmen wir an, dies ist Teil einer Continuous-Integration-Pipeline:
JLineup 4.13 wurde erfolgreich getestet mit
Chrom 128.x
Firefox 130.x
Um einen davon nutzen zu können, muss Chrome oder Firefox auf dem System installiert sein.
JLineup als CLI-Tool
JLineup als Webserver
JLineup-Jobkonfiguration
JLineup verwendet einige Tools und Bibliotheken von Drittanbietern
Selenium ist unter der Apache 2.0-Lizenz lizenziert.
Webdrivermanager ist unter der Apache 2.0-Lizenz lizenziert.
Jackson ist unter der Apache 2.0-Lizenz lizenziert.
Logback ist unter der Eclipse Public License lizenziert.
Die SLF4J-API ist unter der MIT-Lizenz lizenziert.
Thymeleaf ist unter der Apache 2.0-Lizenz lizenziert.
Edison Microservice ist unter der Apache 2.0-Lizenz lizenziert.
Spring Boot ist unter der Apache 2.0-Lizenz lizenziert.
Die binäre CLI-Version wird mit der GraalVM Community Edition erstellt. GraalVM CE bringt eine eigene Produktlizenz mit.
Image Compare Viewer ist unter der MIT-Lizenz lizenziert.
Im HTML-Bericht werden Google Fonts verwendet. Das sind die Bedingungen.
AWS SDK für Java 2.0 ist unter der Apache 2.0-Lizenz lizenziert.
Ein Teil des Codes von Pixelmatch wurde für JLineup nach Java portiert.
Pixelmatch ist unter der ISC-Lizenz lizenziert.
Ein Teil des Codes von Looks-same wurde für JLineup nach Java portiert.
Looks-same ist unter der MIT-Lizenz lizenziert.
JLineup ist ein konfigurationskompatibler Ersatz für Lineup, implementiert in Java. Das ursprüngliche Lineup war ein Ruby-Tool, wird aber nicht mehr gepflegt.
Der Dank für die ursprüngliche Aufstellung geht an Finn Lorbeer.
Wenn Sie Fragen oder Anregungen haben, eröffnen Sie bitte eine Ausgabe oder schreiben Sie eine E-Mail an marco DOT geweke AT otto.de