- Feature: Add security feature that limits the allowed urls to certain defined prefixes for the web version. You can
define those prefixes in the application properties with the
jlineup.allowed-urls-prefixes
property. - Update: Selenium 4.23.1
- Update: Further Dependency Updates
- Bugfix: The
--crop-last-screenshot
option was adjusted to fill cropped areas with pixels in the background color to match screenshot sizes. - Feature: It's possible to add a
message
field to the job config. This message is displayed in the report. - Feature: There's a new
approval-link
field in the job config. If set, the report will contain a link to this URL in case of a difference. This can be used to directly approve the differences to continue a CI run. - Improvement: The lambda browser retries on more error messages now to improve stability.
- Dependency updates
- Bugfix: Possible NullPointerException in Pixelmatch implementation
- Update: Selenium was updated to 4.21.0
- Improvement: Set some more Chrome options to try to improve deterministic rendering
- Improvement: The max detected color difference is now printed in the report, additionally the delta is visualized in the diff image (brighter means more difference)
- Feature: Add option to crop last screenshot to match the previous screenshots on a scrolling page.
The cli parameter is
--crop-last-screenshot
and can be set to true or false (false is default). TheJLINEUP_CROP_LAST_SCREENSHOT
environment variable can be used to set this also (in lambda for example). If you prefer to use a settings.properties file you can setjlineup.crop-last-screenshot=true
in there.
- Feature: New additional anti-alias detection ported from Pixelmatch. Runs automatically if
ìgnore-anti-aliasing
is set to
true`.
- Feature: Add
merge-config
field to the global config. The merge config can include a full config that is merged with the main config. - Feature: Make max anti alias color difference configurable via
max-anti-alias-color-difference
field in the global config. - Improvement: Cookie, LocalStorage and SessionStorage values are now masked in the report and in logs to not accidentally leak sensitive data.
- Bugfix: The
setup-paths
andcleanup-paths
feature did not work since introduction of the--merge-config
option.
- Feature: First release of the lambda module. You can now run the screenshots part of JLineup as a lambda function in AWS.
- Dependency updates - especially Selenium 4.16.1
- Feature: Add
--cleanup-profile
option to CLI to clean up the profile directory after a run. - Feature: Add
jlineup.cleanupProfile
option to web version to clean up custom profile directories after a run. If you use custom profile directories, you have to set this option tofalse
to keep the profile.
- Bugfix: Recent changes to Chrome's webdriver management broke the automatic webdriver download This was realized through a change from the webdrivermanager library to Selenium's built-in driver manager
- Breaking change: Many dependency updates (Spring Boot 3, including the move from javax.servlet to jakarta.servlet packages) that bump the Java minimum requirements to Java 17.
- Dependency updates
- Bugfix: Add
--remote-allow-origins=*
to Chrome options to fix issues with Chrome 111 and the webdriver connection.- JLineup might update to Java 11 or 17 soon to switch to Java HttpClient (https://www.selenium.dev/blog/2022/using-java11-httpclient/).
- Some background information: https://groups.google.com/g/chromedriver-users/c/xL5-13_qGaA/m/oTA9W3cQAgAJ
- Bugfix: Use screenshot height as truth for viewport height and print out a warning if it differs from the viewport height that is calculated via javascript. This should help us to overcome strange scrolling issues with Chrome 110+.
- Bugfix: Chrome 110 crashed when specifying a
--user-data-dir
and using multiple threads. This was fixed by adding random child folders if you specify a user data directory in the web version. If you run the CLI version and you want to specify a user data dir, you can use the new{random-folder}
placeholder to not share user data dirs between multiple threads.
- Bugfix: Headless mode in Chrome 110 has changed and didn't work anymore with former JLineup implementations. Important: You may need Chrome 110 or later for this release of JLineup to work accordingly
- First attempt to fix headless mode in Chrome 110+, use 4.8.1 instead, which includes another bugfix.
- Feature: --keep-existing option to keep existing 'before'-screenshots when doing another 'before' run
- Feature: --refresh-url option to refresh the 'before'-screenshots of one specific URL config entry only while keeping the others
- Feature: --merge-config option that merges the run config with another merge config file which may include repetitive options. The URL keys in the merge config file are matched by regex.
- Feature: The URL can not only be specified as the key of an URL config, but also by using the new
url
field instead. This opens the possibility to have multiple URL configs for the same URL. URL config keys still have to be unique.
- Feature: --open-report or -o when using jlineup cli opens the HTML report after the run
- Bugfix: CLI jar size was accidentally increased by inclusion of lambda project
- Bugfix: Report was broken in some cases when multiple URLs were configured
- Bugfix: Write provisional report html under correct filename
- Dependency updates
- Bugfix: All cookies were part of screenshot context hash calculation since version 4.4.0, which lead to problems when changing cookie content between before and after steps. To fix this, only alternating cookies (introduced in 4.4.0) are part of the context hash from this release on.
- Updates to Spring Boot 2.6.6 and Spring Framework 5.3.18 to fix Spring4Shell issue
- Dependency updates
- Bugfix: Example config (--print-example) was not in the right format
- Remove PhantomJS support
- Dependency Updates (Selenium 4 etc.)
- New HTML report format
- New
error-signals
feature inhttp-check
which allows to check the targeted page not only by http return code but by strings in response body - New
alternating-cookies
feature which allows to iterate over different cookie setups per page easily
- Fix rounding bug in maxDiff configuration (#82)
- Dependency updates
- Dependency updates
- Bugfix: CLI version is compiled with Java 8 compatibility again
- Dependency updates
- Disable PhantomJS by default in web version (Reason: https://nvd.nist.gov/vuln/detail/CVE-2019-17221)
- Add /exampleRun controller endpoint for quick testing
- Java 11 or later is required for web version now, cli variant works with Java 8
- Web version has a basic job persistence in file system now which survives service restarts
- Add OWASP dependency check to build for improved security
- Add possibility to use runId ({id}) in browser launch parameters
- New
setup-paths
andcleanup-paths
feature to set up and cleanup test data on target systems. - New
jlineup.sleep(milliseconds)
function inside simple JS blocks
- New
wait-for-selectors
andremove-selectors
features.
- New device-config feature (which adds mobile emulation support in chrome and more)
- Use only relevant fields in context hash calculation (fixes bugs if 'before' and 'after' configs differ)
- Use latest Webdrivermanager
- Fix Exception with the latest Firefox
- Minor improvements to HTML Report
- Only show often used options and non-defaults in config prints by default, example-config shows everything
- Massively improved similar colors detection
- Anti-Alias detection option
- DeviceConfig option
- Update of Webdrivermanager to support the latest browsers
- Replace GSON with Jackson, which is used anyway for the web module with Spring
- JLineup can be build with Java 11
- Update multiple dependencies
- Bugfix: Implemented workaround for strange scrolling behavior in Firefox (sometimes window.scrollBy(0, x) scrolls double the amount given)
- JLineup detects webdriver that fits to installed browsers automatically
- Massively improved documentation
- chromedriver 2.45
- Some chrome flags are added to improve deterministic rendering
- Revert because it didn't work: Ability to wait for images to be fully loaded before making screenshots
- hide all images using javascript once the URL configuration
hideImages
is enabled
- Ability to wait for images to be fully loaded before making screenshots. Especially important when using progressive jpegs in page.
- chromedriver 2.42
- geckodriver 0.23.0
- Version info displayed in web frontend
- Fix cookie warning in httpcheck
- Fix pom artifactIds (this helps if you try to download JLineup via Maven/Gradle)
- Major Refactoring
- JLineup can run as web service now
- Enhancement: Add jobConfig option
check-for-errors-in-log
to toggle whether jlineup stops on errors in browser log. Default istrue
- Improvement: Better handling of global timeout
- Dependency updates
- New project structure
- Bugfix: Don't crash when no webdriver was downloaded before
- New Selenium and Webdrivermanager versions
- Bugfix: Don't stop jlineup run when there are severe errors in chrome after initial loading of page
- Bugfix: Limit max file lenght for screenshot files
- Enhancement: New log-to-file option in jobConfig enables logging to a file in the working dir
- Enhancement: Animated gifs are not played in firefox.
- Bugfix: Exit correctly when URL is not reachable
- Experimental support for headless firefox (needs firefox nightly >55)
- Add headless support without the need for Xvfb for Chrome >59 (use browser "chrome-headless" in jobConfig)
- Update to chromedriver 2.30 to support Chrome 59.x
- Feature: Introduce global page load timeout, defaults to 120 seconds
- Feature: Global retry option if some Exception occurs during takeScreenshots, defaults to 0
- Bugfix: Fix difference image link in html report
- Update Geckodriver to 0.16.1
- Breaking change: New json report format with summary. Use "report-format":1 to use legacy format for json report.
- Breaking change: Screenshots folder is now below report folder by default. HTML report is in report folder.
- Breaking change: JLineup returns error code 1 if report shows a difference
- Selenium upgrade to 3.4
- Support for Firefox 53.x, Chrome 58.x
- Geckodriver 0.16.0, Chromedriver 2.29
- Some exceptions lead to stalling browser sessions, now every exception is thrown
- Bugfix: Close open browsers and webdrivers when some Selenium exception is throwing
- Bugfix: Don't start multiple webdriver downloads when running in multiple threads
- Update Geckodriver for Firefox to 0.15.0
- Update Chromedriver for Chrome to 2.28
- Bugfix: Version pinning of webdriver didn't work because of a change in webdrivermanager (https://github.com/bonigarcia/webdrivermanager/commit/29c531266c78399f3999b246da479163d734bee8)
- Cache warmup is always done with the greatest horizontal resolution of an URL jobConfig
- It's possible to specify session storage, similar to local storage
- Increasing waiting time bug fixed (long sleep phases when using multiple threads and many paths/URLs)
- It's possible to specify debug mode in jobConfig now ("debug":true), additionally to command line param
- Bugfix: JLineup 1.3.1 was not making any screenshots when wait-for-fonts-time was not 0
- Bugfix: Use legacy report format as default (will change with 2.0.0)
- Ability to wait for webfonts to be loaded before making screenshots
- Log uncaught Exceptions in Threadpool
- New wait after scroll option
- Move mouse pointer to 0,0 before making screenshots - some mouseover effects could affect the screenshots otherwise
- Use close before quitting webdrivers
- Fix for browser startup shuffle time
- It's possible to use multiple threads and browser instances to speed up
- --print-jobConfig now shows full example configuration
- The report contains the JLineup version at the bottom
- You can specify custom JavaScript that is executed before page screenshots start
(i.e. useful to remove parts that change dynamically through third party
- like ads - from the page)
- Don't strip http or https from image filenames
- Sanitize filenames properly
- Report image links work if URL contains ? and/or =
- Report image links work if URL contains hash (#) characters
- Report is interactive now
- Switch to Selenium 3
- New --debug option to be more verbose
- Scroll to top via JavaScript after initial page load (new Chrome sometimes moves a re-opened page to the last known scroll position)