JLineup est un outil utile pour les tests de régression visuelle automatisés de pages Web, en particulier dans les pipelines de livraison continue. Il peut être utilisé comme un simple outil de ligne de commande ou comme un petit service Web contrôlé via l'API REST.
JLineup prend et compare des captures d'écran d'une page Web à deux moments consécutifs. Il effectue une comparaison pixel par pixel des deux exécutions et génère un rapport HTML et JSON. En coulisses, il utilise Selenium et un navigateur de choix (actuellement Chrome, Chromium et Firefox sont pris en charge).
JLineup n'a pas d'autres dépendances qu'un navigateur Web (Firefox ou Chrome/Chromium) et une JVM. Expérimental : il existe également une version Linux AMD64 autonome de la version CLI qui ne nécessite même pas de JVM.
Prenons ce petit exemple de configuration pour une vérification de otto.de lors d'un déploiement :
{ "urls": { "https://www.otto.de": { "chemins": [ "/" ], "périphériques" : [ { "largeur" : 850, "hauteur" : 600, "ratio de pixels" : 1,0, "nom de l'appareil" : "BUREAU", "touch" : faux }, { "largeur" : 1000, "hauteur" : 850, "ratio de pixels" : 1,0, "nom de l'appareil" : "BUREAU", "touch" : faux }, { "width" : 1200, "height" : 1000, "pixel-ratio" : 1.0, "device-name" : "DESKTOP", "touch" : false } ] } }, "attendre après le chargement de la page" : 0.5, "navigateur" : "chrome-headless"}
JLineup s'exécute avant et après le déploiement et génère un rapport comme celui-ci :
Il existe également un rapport JSON, ce qui est idéal si vous souhaitez vérifier les choses par script :
Exemple de rapport JSON JLineup
JLineup CLI est fourni sous forme d'archive Java exécutable. Java 17 ou supérieur doit être disponible pour l'exécuter.
Ouvrez un terminal et téléchargez-le comme ceci :
wget https://repo1.maven.org/maven2/de/otto/jlineup-cli/4.12.1/jlineup-cli-4.12.1.jar -O jlineup.jar
Tapez ensuite
java -jar jlineup.jar --help
pour voir l'aide de la ligne de commande.
Consultez la documentation CLI pour plus de détails et un petit tutoriel.
Ceci est un exemple de la façon dont JLineup peut être utile dans votre pipeline de création et de déploiement automatisé. Supposons que cela fasse partie d'un pipeline d'intégration continue :
JLineup 4.13 a été testé avec succès avec
Chrome 128.x
Firefox 130.x
Chrome ou Firefox doivent être installés sur le système si vous souhaitez utiliser l'un d'entre eux.
JLineup comme outil CLI
JLineup comme serveur web
Configuration du travail JLineup
JLineup utilise des outils et bibliothèques tiers
Selenium est sous licence Apache 2.0.
Webdrivermanager est sous licence Apache 2.0.
Jackson est sous licence Apache 2.0.
Logback est sous licence publique Eclipse.
L'API SLF4J est sous licence MIT.
Thymeleaf est sous licence Apache 2.0.
Edison Microservice est sous licence Apache 2.0.
Spring Boot est sous licence Apache 2.0.
La version binaire cli est construite avec GraalVM Community Edition. GraalVM CE apporte sa propre licence de produit.
Image Compare Viewer est sous licence MIT.
Les polices Google sont utilisées dans le rapport HTML. Ce sont les termes.
AWS SDK pour Java 2.0 est sous licence Apache 2.0.
Une partie du code de Pixelmatch a été porté sur Java pour JLineup.
Pixelmatch est sous licence ISC.
Une partie du code de Looks-same a été porté sur Java pour JLineup.
Looks-same est sous licence MIT.
JLineup est un remplacement compatible avec la configuration de Lineup, implémenté en Java. La gamme d'origine était un outil Ruby, mais n'est plus maintenue.
Le mérite de la programmation originale revient à Finn Lorbeer.
Si vous avez des questions ou des propositions, veuillez ouvrir un numéro ou écrire un e-mail à marco DOT geweke AT otto.de