JLineup is a tool which is useful for visual acceptance tests in continuous delivery pipelines. It can be used as a simple command line tool or as a small web service which is controlled via REST API.
JLineup makes and compares screenshots from before and after a deployment of a web page. Through comparison of the screenshots it detects every changed pixel. JLineup generates a HTML report and a JSON report. Behind the scenes, it uses Selenium and a browser of choice (currently Chrome, Firefox and PhantomJS are supported).
JLineup is a configuration compatible replacement for Lineup, implemented in Java. The original Lineup is a Ruby tool. We did a rewrite in Java, because we can leverage some quicker image comparison here and we can get rid of Ruby in our JVM-based pipelines.
Credit for Lineup goes to Finn Lorbeer.
JLineup CLI comes as executable Java Archive. You need a working Java 8 Runtime Environment on your system.
Open a terminal and download it like this:
wget https://oss.sonatype.org/service/local/artifact/maven/redirect\?r\=releases\&g\=de.otto\&a\=jlineup-cli\&v\=3.0.0-rc2\&e\=jar -O jlineup.jar
Then type
java -jar jlineup.jar --help
to get some idea how to use it.
JLineup 3.0.0-rc5 was tested successfully with
- Chrome 69.x
- Firefox 62.x
- PhantomJS 2.1.1 (auto-downloaded by JLineup if not installed)
Chrome or Firefox have to be installed on the system if you want to use one of them.
JLineup uses some third party tools and libraries
- Selenium is licensed under the Apache 2.0 License
- Webdrivermanager is licensed under the Apache 2.0 License
- JCommander is licensed under the Apache 2.0 License
- google-gson is licensed under the Apache 2.0 License
- Logback is licensed under the Eclipse Public License
- The SLF4J API is licensed under the MIT License
- PhantomJS is licensed under the BSD-3-Clause
- Thymeleaf is licensed under the Apache 2.0 License