JLineup é uma ferramenta útil para testes automatizados de regressão visual de páginas da web, especialmente em pipelines de entrega contínua. Ele pode ser usado como uma ferramenta simples de linha de comando ou como um pequeno serviço web controlado pela API REST.
JLineup tira e compara capturas de tela de uma página da web em dois momentos consecutivos. Ele faz uma comparação pixel por pixel de ambas as execuções e gera um relatório HTML e JSON. Nos bastidores, ele usa Selenium e um navegador de sua escolha (atualmente há suporte para Chrome, Chromium e Firefox).
JLineup não tem outras dependências além do navegador da web (Firefox ou Chrome/Chromium) e uma JVM. Experimental : Há também uma versão Linux AMD64 independente da versão CLI que nem requer uma JVM.
Vamos pegar este pequeno exemplo de configuração para verificar otto.de durante uma implantação:
{ "urls": { "https://www.otto.de": { "caminhos": [ "/" ], "dispositivos": [ { "largura": 850, "altura": 600, "proporção de pixels": 1,0, "nome do dispositivo": "DESKTOP", "toque": falso }, { "largura": 1000, "altura": 850, "proporção de pixels": 1,0, "nome do dispositivo": "DESKTOP", "toque": falso }, { "largura": 1200, "altura": 1000, "proporção de pixels": 1,0, "nome do dispositivo": "DESKTOP", "toque": falso } ] } }, "esperar após o carregamento da página": 0,5, "navegador": "chrome-headless"}
JLineup é executado antes e depois da implantação e gera um relatório como este:
Há também um relatório JSON, que é ótimo se você quiser verificar as coisas por script:
Exemplo de relatório JSON JLineup
JLineup CLI vem como arquivo Java executável. Java 17 ou superior deve estar disponível para executá-lo.
Abra um terminal e faça o download assim:
wget https://repo1.maven.org/maven2/de/otto/jlineup-cli/4.12.1/jlineup-cli-4.12.1.jar -O jlineup.jar
Então digite
java -jar jlineup.jar --help
para ver a ajuda da linha de comando.
Consulte a documentação da CLI para obter mais detalhes e um pequeno tutorial.
Este é um exemplo de como o JLineup pode ser útil em seu pipeline automatizado de construção e implantação. Vamos supor que isso faça parte de um pipeline de integração contínua:
JLineup 4.13 foi testado com sucesso com
Cromo 128.x
Firefox 130.x
O Chrome ou Firefox devem estar instalados no sistema se você quiser usar um deles.
JLineup como ferramenta CLI
JLineup como servidor web
Configuração do trabalho JLineup
JLineup usa algumas ferramentas e bibliotecas de terceiros
Selenium é licenciado sob a licença Apache 2.0.
Webdrivermanager é licenciado sob a licença Apache 2.0.
Jackson está licenciado sob a licença Apache 2.0.
Logback é licenciado sob a Licença Pública Eclipse.
A API SLF4J está licenciada sob a licença MIT.
Thymeleaf é licenciado sob a licença Apache 2.0.
Edison Microservice é licenciado sob a licença Apache 2.0.
Spring Boot é licenciado sob a licença Apache 2.0.
A versão binária cli é construída com GraalVM Community Edition. GraalVM CE traz sua própria licença de produto.
O Image Compare Viewer está licenciado sob a licença MIT.
As fontes do Google são usadas no relatório HTML. Estes são os termos.
AWS SDK for Java 2.0 é licenciado sob a licença Apache 2.0.
Algum código do Pixelmatch foi portado para Java para JLineup.
Pixelmatch é licenciado sob a licença ISC.
Algum código do Looks-same foi portado para Java para JLineup.
Looks-mesmo está licenciado sob a licença MIT.
JLineup é um substituto compatível com configuração do Lineup, implementado em Java. O Lineup original era uma ferramenta Ruby, mas não é mais mantida.
O crédito pela escalação original vai para Finn Lorbeer.
Se você tiver dúvidas ou propostas, abra uma edição ou escreva um e-mail para marco DOT geweke AT otto.de