Published on Maven Central and jCenter Java Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison. Can be used for automation qa tests.

Overview

logo-trans Maven Central Gitter Javadocs Codacy Badge Build Status Coverage Status BCH compliance Bintray PRs Welcome

About

Published on Maven Central and jCenter Java Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison. Can be used for automation qa tests. The Usages of the image-comparison can be found here Usage Image Comparison

  • Implementation is using only standard core language and platform features, no 3rd party libraries and plagiarized code is permitted.

  • Pixels (with the same coordinates in two images) can be visually similar, but have different values of RGB. 2 pixels are considered to be "different" if they differ more than pixelToleranceLevel(this configuration described below) from each other.

  • The output of the comparison is a copy of actual images. The differences are outlined with red rectangles as shown below.

  • No third party libraries or borrowed code are in usage.

  • Some parts of the image can be excluded from the comparison and drawn in the result image.

Article about growing image-comparison on habr: How did the test task become a production library

Configuration

All these configurations can be updated based on your needs.

Property Description
threshold The threshold which means the max distance between non-equal pixels. Could be changed according size and requirements to the image.
rectangleLineWidth Width of the line that is drawn the rectangle.
destination File of the result destination.
minimalRectangleSize The number of the minimal rectangle size. Count as (width x height). By default it's 1.
maximalRectangleCount Maximal count of the Rectangles, which would be drawn. It means that would get first x biggest rectangles. Default value is -1, that means that all the rectangles would be drawn.
pixelToleranceLevel Level of the pixel tolerance. By default it's 0.1 -> 10% difference. The value can be set from 0.0 to 0.99.
excludedAreas ExcludedAreas contains a List of Rectangles to be ignored when comparing images.
drawExcludedRectangles Flag which says draw excluded rectangles or not.
fillExcludedRectangles Flag which says fill excluded rectangles or not.
percentOpacityExcludedRectangles The desired opacity of the excluded rectangle fill.
fillDifferenceRectangles Flag which says fill difference rectangles or not.
percentOpacityDifferenceRectangles The desired opacity of the difference rectangle fill.
allowingPercentOfDifferentPixels The percent of the allowing pixels to be different to stay MATCH for comparison. E.g. percent of the pixels, which would ignore in comparison. Value can be from 0.0 to 100.00

Release Notes

Can be found in RELEASE_NOTES.

Usage

Maven

<dependency>
    <groupId>com.github.romankh3</groupId>
    <artifactId>image-comparison</artifactId>
    <version>4.3.1</version>
</dependency>

Gradle

compile 'com.github.romankh3:image-comparison:4.3.1'

To compare two images programmatically

Default way to compare two images looks like:
        //load images to be compared:
        BufferedImage expectedImage = ImageComparisonUtil.readImageFromResources("expected.png");
        BufferedImage actualImage = ImageComparisonUtil.readImageFromResources("actual.png");

        //Create ImageComparison object and compare the images.
        ImageComparisonResult imageComparisonResult = new ImageComparison(expectedImage, actualImage).compareImages();
        
        //Check the result
        assertEquals(ImageComparisonState.MATCH, imageComparisonResult.getImageComparisonState());
Save result image

To save result image, can be used two ways:

  1. add a file to save to constructor. ImageComparison will save the result image in this case.
        //load images to be compared:
        BufferedImage expectedImage = ImageComparisonUtil.readImageFromResources("expected.png");
        BufferedImage actualImage = ImageComparisonUtil.readImageFromResources("actual.png");
        
        // where to save the result (leave null if you want to see the result in the UI)
        File resultDestination = new File( "result.png" );

        //Create ImageComparison object with result destination and compare the images.
        ImageComparisonResult imageComparisonResult = new ImageComparison(expectedImage, actualImage, resultDestination).compareImages();
  1. execute ImageComparisonUtil.saveImage static method
        //load images to be compared:
        BufferedImage expectedImage = ImageComparisonUtil.readImageFromResources("expected.png");
        BufferedImage actualImage = ImageComparisonUtil.readImageFromResources("actual.png");

        //Create ImageComparison object with result destination and compare the images.
        ImageComparisonResult imageComparisonResult = new ImageComparison(expectedImage, actualImage).compareImages();

        //Image can be saved after comparison, using ImageComparisonUtil.
        ImageComparisonUtil.saveImage(resultDestination, resultImage); 

Demo

Demo shows how image-comparison works.

Expected Image

expected

Actual Image

actual

Result

result

Contributing

Please, follow Contributing page.

Code of Conduct

Please, follow Code of Conduct page.

License

This project is Apache License 2.0 - see the LICENSE file for details

Thanks @dee-y for designing this logo

Also if you're interesting - see my other repositories

Comments
  • [QUESTION] Get result of image comparison using Java

    [QUESTION] Get result of image comparison using Java

    I've carefully checked your demo sample code but it's not clear how programmatically check if the result of comparison true or false? Please, let me know.

    Thanks a lot in advance

    Jeff

    question 
    opened by jeffradom 51
  • StackOverflowError when compared 2 images with a little big different area.

    StackOverflowError when compared 2 images with a little big different area.

    Hello @romankh3 I got a Exception: Exception in thread "main" java.lang.StackOverflowError at ua.comparison.image.ImageComparison.joinToRegion(ImageComparison.java:110) when compared 2 images with a little big different area. Image resolution of both are : 1920 * 931, as attached image1: baidu1 image2: baidu2

    bug help wanted 
    opened by alexbai326 17
  • Logo proposal

    Logo proposal

    Hello @romankh3, i am a graphic designer. I would like to know if you would be interested in me making a logo for this project. If you would have me, i would make a logo for you, and it's free.

    opened by dee-y 14
  • Add test for images with different jpeg-compression level

    Add test for images with different jpeg-compression level

    Hello Roman! Can you, please, add tests for images with different jpeg-compression? I believe many people who often work with jpeg will have this question. When someone made changes in the image in programs like Photoshop or Gimp and save image as jpg file, s/he needs to choose the compression level (good quality and large file weight or visa versa, from 0 to 100%). The compression algorithm makes some changes in pixels of the original image. When compression is near 60-70 quality lowering not much visible for human eyes tho, but still can be tangible for your algorithm even with a 10% sensitivity threshold. So the question is will compression be a problem? Will high compression prevent your library work as expected?

    I made some images for 4 tests. Every test is in separate dir which contains an original image that needs to be compared with other 3-4 one by one. Each image has a different quality: original - original with some changes - 60 - 20 - 0 (it's written in the filename). Images in the first dir don't have any 'human-made' difference just compression by itself. And the last test is for text-image, I think it's a very interesting case too. images_for_test.zip

    good first issue 
    opened by Hexronimo 12
  • Questions about flaky comparison results

    Questions about flaky comparison results

    Hello,

    I use your tool and it had worked great for me until now. Here Is my scenario. I have an app that is going through an upgrade.

    1. I make screenshots using Selenium for several pages and store them as baseline images (before the upgrade).
    2. I run my app after the upgrade and make screenshots of the same pages
    3. I compare on the fly each new and old/baseline pages and use .setAllowingPercentOfDifferentPixels(10)
    4. Sometimes my result is MATCH or MISMATCH or SIZE_MISMATCH and its' random

    What can you suggest to make it work stable? Oh, differences in fact are minimal. I use the Chrome browser to run my app

    Your help will be greatly appreciated

    Thanks a lot in advance

    Jeff

    question 
    opened by jradom 11
  • Allow program to run as a traditional CLI

    Allow program to run as a traditional CLI

    In this PR, I 've added a simple ArgsParser class to allow user to pass in options to the program, so that they can compare two images from image files they pass in as arguments. The user can also give a file where the result should be saved to. Not providing an output file makes the program open the UI, as it does currently.

    I also made the jar created by Gradle be runnable (by adding the Main-Class entry to the manifest), so now you can run the program with java -jar image-comparison.jar.

    opened by renatoathaydes 11
  • [QUESTION] getDifferencePercent meaning

    [QUESTION] getDifferencePercent meaning

    Hi @romankh3 ! Could you please clarify how the differencePercent is calculated? I compare these 2 images: SNAPSHOT_10-08-2020_18_42_24 and SNAPSHOT_10-08-2020_18_42_31 and got the result: result Then I trying to use something like: return (imageComparisonResult.getDifferencePercent() <= diffPercentage)

    I expected getDifferencePercent is calculated like total square of all difference rectangles vs image square, like: Sum (S<i = 1..n> S) / S ~ 15% for my images.

    But surprisingly I got 0.0! Could you please clarify where I'm wrong? Thanks in advance!

    question 
    opened by dmiroshnyk 10
  • Added option to resize image if size mis-match

    Added option to resize image if size mis-match

    I am using the the image-comparison library in mobile visual test automation and in some cases even with size mismatch it's practical to do the comparison despite the size difference that's in case of the design will keep it's ratio.

    another case the difference sometimes could be small number of pixels so that I find it very useful that we have an option to resize the actual image to the expected dimensions and then do the comparison.

    wating for your opinion and many thanks.

    -Added overloaded function of compareImages(boolean resizeIfSizeMisMatch) to enable resizing to expected dimensions. -Added resize function to utils.

    enhancement 
    opened by KhaldAttya 10
  • [BUG] mergeRectangles hangs

    [BUG] mergeRectangles hangs

    Describe the bug The program hangs forever.

    To Reproduce Steps to reproduce the behavior:

    1. Download attached zip and extract the 2 image files anywhere. files.zip
    2. Run this code:

    ImageComparison comparison = new ImageComparison("output_153.png", "output_154.png"); comparison.createMask(); // hangs forever

    Expected behavior Program should run and exit appropriately.

    Screenshots See attached zip above

    Java

    • OS: Windows
    • openjdk version "1.8.0_252"

    Additional context I managed to trace this to the method mergeRectangles. I don't know why it hangs, but I debugged it and the (minimum and maximum rectangles) are equal to the image size (width*height). I (thought I) fixed it (see my comment) by skipping running mergeRectangles in a special scenario:

    private List<Rectangle> populateRectangles() {
            long countOfDifferentPixels = populateTheMatrixOfTheDifferences();
    
            if (countOfDifferentPixels == 0) {
                return emptyList();
            }
    
            if (isAllowedPercentOfDifferentPixels(countOfDifferentPixels)) {
                return emptyList();
            }
            groupRegions();
            List<Rectangle> rectangles = new ArrayList<>();
    
            int minX = Integer.MAX_VALUE, minY = Integer.MAX_VALUE, maxX = Integer.MIN_VALUE, maxY = Integer.MIN_VALUE;
    
            while (counter <= regionCount) {
                Rectangle rectangle = createRectangle();
                if (!rectangle.equals(Rectangle.createDefault()) && rectangle.size() >= minimalRectangleSize) {
                    rectangles.add(rectangle);
                    Point min = rectangle.getMinPoint();
                    Point max = rectangle.getMaxPoint();
                    if (min.x < minX) minX = min.x;
                    if (min.y < minY) minY = min.y;
                    if (max.x > maxX) maxX = max.x;
                    if (max.y > maxY) maxY = max.y;
                }
                counter++;
            }
    
            if (minX == 0 && minY == 0 &&
                maxX == actual.getWidth() - 1 &&
                maxY == actual.getHeight() - 1)
                return Collections.singletonList(new Rectangle(0, 0, maxX, maxY));
    
            return mergeRectangles(rectangles);
        }
    

    (I don't feel comfortable making a pull request).

    bug 
    opened by HoverCatz 9
  • [IMPROVEMENT] fill excluded rectangles with transparent green

    [IMPROVEMENT] fill excluded rectangles with transparent green

    I add many excluded areas to my images and find it very useful that they appear as green rectangles on the results image. I often need to define long exclusions along edges of the image. In those cases, looking at the resulting image, it is not easy to determine which areas have been excluded, partly due to the fact that the green lines along the edges are cropped out of the picture.

    It would be less ambiguous if there was an option to fill the the green rectangles with a transparent green fill.

    enhancement 
    opened by MrMisterG 9
  • #145: Migrate to JUnit 5.

    #145: Migrate to JUnit 5.

    Should close issue #145.

    • Migrated from JUnit 4.12 to JUnit 5.5.2 (Jupiter).
    • Use JUnit exception handling instead of BaseTest#getException()
    • Updated the Gradle version from 3.5-rc-2-all to 6.0.1-bin. Starting with version 4.6, Gradle provides native support for executing tests on the JUnit Platform.
    • Fixed Maven warnings for plugins without a version number.
    • Fixed Maven warning about platform dependent file encoding.
    opened by Wandmalfarbe 7
  • getDifferencePercent fix (#233)

    getDifferencePercent fix (#233)

    PR Details

    Fix to getDifferencePercent method in ImageComparisonUtil

    Description

    The getDifferencePercent was calculating pixels incorrectly: instead of calculating each different pixels towards the overall counter, it was using an overall sum of differences. This PR fixes that.

    Related Issue

    https://github.com/romankh3/image-comparison/issues/233

    Motivation and Context

    getDifferencePercent can be used to retrieve exact % of differences for ignoring them in ImageComparisonResult config. This can be used to individually configure tests with different images to pass.

    How Has This Been Tested

    I have ran and updated the existing tests, and also added a new one which gets and sets percentage of differences. I have also tested these changes in my own project, which uses this library with Selenide for Web visual testing: https://github.com/nikmazur/ui-visual-testing

    Types of changes

    • [ ] Docs change / refactoring / dependency upgrade
    • [x] Bug fix (non-breaking change which fixes an issue)
    • [ ] New feature (non-breaking change which adds functionality)
    • [ ] Breaking change (fix or feature that would cause existing functionality to change)

    Checklist

    • [x] My code follows the code style of this project.
    • [ ] My change requires a change to the documentation.
    • [ ] I have updated the documentation accordingly.
    • [x] I have read the CONTRIBUTING document.
    • [x] I have added tests to cover my changes.
    • [x] All new and existing tests passed.
    opened by nikmazur 0
  • Is there any support to android espresso/uiautomator, I tried but BufferedImage not supported in android

    Is there any support to android espresso/uiautomator, I tried but BufferedImage not supported in android

    tired other way to set images path but it does not support with makeDiff method. Is there any support for File path ? error is Cannot resolve symbol 'BufferedImage'

    enhancement 
    opened by Aasu29 2
  • [FEATURE] Compare image with Structural Similarity Index (SSIM)

    [FEATURE] Compare image with Structural Similarity Index (SSIM)

    Hi Roman

    Thank you for providing the comparison tool. It's useful for our work. besides that, Could you consider adding more comparison methods like SSIM (Structural Similarity Index)?

    Reference https://pyimagesearch.com/2017/06/19/image-difference-with-opencv-and-python/

    https://stackoverflow.com/questions/71567315/how-to-get-the-ssim-comparison-score-between-two-images

    https://github.com/americanexpress/jest-image-snapshot

    https://www.google.com/amp/s/discuss.dizzycoding.com/detect-and-visualize-differences-between-two-images-with-opencv-python/%3famp=1

    enhancement 
    opened by huemach78 0
  • [QUESTION] Difference Percentage Calculations Don't Match

    [QUESTION] Difference Percentage Calculations Don't Match

    I'm trying to understand why getDifferencePercent(BufferedImage img1, BufferedImage img2) on line 138 of the ImageComparisonUtil class is returning a different result than the percent calculated in line 313 of the ImageComparison class.

    The algorithm used to acquire the count of different pixels in populateTheMatrixOfTheDifferences() on line 234 seems to be similar to what's being done in getDifferencePercent(BufferedImage img1, BufferedImage img2) but the end result isn't the same.

    It seems like if I'm trying to set an allowed percentage difference using setAllowingPercentOfDifferentPixels() I can't use the output of getDifferencePercent as a gauge since that value doesn't match what's calculated during the image comparison inside isAllowedPercentOfDifferentPixels(long countOfDifferentPixels)

    question 
    opened by PeerHalvorsen 1
  • [FEATURE] GUI for convenience

    [FEATURE] GUI for convenience

    Thanks for providing this comparison tool. BTW, I notice that in issue#215, pacioc193 creates GUI for his comparing. FMPV, a concise and convenient GUI is what this tool needs at present. IT IS USEFUL, I NEED IT.

    enhancement 
    opened by Aurora4396 1
Releases(v4.4.0)
  • v4.4.0(Mar 28, 2021)

    ⭐️ New Features

    #205: based on #204 discussion, which created @woosyume added a new feature - update rectangle line color.

    I'd like to say thank you for your contributions: @woosyume for a new feature that suggested and implemented

    Source code(tar.gz)
    Source code(zip)
  • v4.3.1(Mar 13, 2021)

    🐞 Bug Fixes image-comparison became better:

    Fixed bug #201 - problem with comparing totally different pictures.

    ❤️ Contributors I'd like to say thank you for your contributions:

    @HoverCatz - thank you for your report of a new bug.

    Source code(tar.gz)
    Source code(zip)
  • v4.3.0(Sep 8, 2020)

    ⭐️ New Features

    • #192: Include rectangles with difference in comparison results (@akondas)
    • Improved and added missing tests (@AnthonyJungmann, @romankh3) 🐞 Bug Fixes
    • #196 [BUG] Set 0.0 difference percent for MISMATCH (@romankh3)

    ❤️ Contributors I'd like to say thank you for your contributions:

    • @akondas for a new feature
    • @AnthonyJungmann for a missing tests
    • @dmiroshnyk for finding a bug with differencePercent
    Source code(tar.gz)
    Source code(zip)
  • v4.2.1(Apr 17, 2020)

    🐞 Bug Fixes image-comparison became better:

    • Fixed bug #180 - problem with ImageComparisonUtil.readFromResources method.

    ❤️ Contributors I'd like to say thank you for your contributions:

    • @mrgoroua - thank you for your report a new bug.
    Source code(tar.gz)
    Source code(zip)
  • v4.2.0(Mar 11, 2020)

    New Features

    • #175: added the ability to ignore some percent of differences for comparison.

    Contributors I'd like to say thank you for your contributions

    • @jeffradom for your idea of a new feature for image-comparison
    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(Jan 29, 2020)

    New Features

    • #167 fill excluded rectangles with transparent green(@MrMisterG)

    Contributors

    I'd like to say thank you for your contributions:

    • @MrMisterG - for proposing new feature and developing it with respect to the development process.
    Source code(tar.gz)
    Source code(zip)
  • v4.0.1(Jan 11, 2020)

    ⭐️ New Features

    • #154: migrated to JUnit 5(@Wandmalfarbe)

    🐞 Bug Fixes

    • #165: fixed bug with maximal rectangle count(@Hexronimo)

    ❤️ Contributors I'd like to say thank you for your contributions:

    • @Wandmalfarbe for providing the solution for #154
    • @Hexronimo for finding a bug #165
    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(Dec 9, 2019)

    ⭐️ New Features

    • refactored drawRectangles method due to SRP.
    • optimized isDifferentPixels to improve the algorithm.
    • moved to Apache License 2.0
    • removed Point and used java.awt.Point instead
    • added Gradle.yml for GitHub actions
    • removed commandLine usage
    • renamed ComparisonResult to ImageComparisonResult
    • renamed ComparisonState to ImageComparisonState
    • added own RuntimeException for wrapping checked exception
    • added Gitter chat for communication.

    ❤️ Contributors @mw79, @xSAVIKx - thanks for ideas, which you provided for this release.

    Source code(tar.gz)
    Source code(zip)
  • v3.3.1(Nov 4, 2019)

    🐞 Bug Fixes

    • #134: If the image is different in a line in 1 px, ComparisonState is always MATCH(@grigaman)
    • #136: deepCopy method throws IllegalArgumentException on shared BufferedImage(@grigaman)

    ❤️ Contributors

    I'd like to say thank you for your contributions:

    • @grigaman
    Source code(tar.gz)
    Source code(zip)
  • v3.3.0(Sep 2, 2019)

    ⭐️ New Features

    • Added option to get the pixels difference percentage between images in case of SIZE_MISMATCH.(@KhaldAttya)
    • Added configuration part to README.md.

    🐞 Bug Fixes

    • #89: Fixed NPE for default run from the command line(@KyryloKh)

    ❤️ Contributors I'd like to say thank you for your contributions:

    • @KhaldAttya
    • @KyryloKh

    :octocat: Reviewers

    • @SmashSide
    • @kremenec
    Source code(tar.gz)
    Source code(zip)
  • 3.2.0(Aug 4, 2019)

    ⭐️ New Features

    • Added ability to change pixel tolerance level.
    • Improved algorithm to make it faster.
    • Improved JavaDocs.
    • Researched JPEG images, all work as expected.
    Source code(tar.gz)
    Source code(zip)
  • 3.1.1(Jun 4, 2019)

  • 3.1.0(Jun 4, 2019)

    ⭐️ New Features

    • Added the ability to draw excluded areas on the result image. Rectangles with the differences drawing RED color. Rectangles of the excluded areas - GREEN color.

    • Fixed root problem on the algorithm.

    • Added returning this for setters in ImageComparison and ComparisonResult.

    • renamed image1 => expected and image2 => actual.

    • Added writeResultTo() for ComparisonResult.

    Source code(tar.gz)
    Source code(zip)
  • 3.0.1(Jun 1, 2019)

  • 3.0.0(May 29, 2019)

    ⭐️ New Features

    • Added ComparisonResult as a returning value for comparing. It contains:
      • image1
      • image2
      • ComparisonState, with conditions MATCH, MISMATCH, SIZE_MISMATCH
      • Result image, only if ComparisonState is MISMATCH. When it is MATCH or SIZE_MISMATCH no needs to create result image.
    • added minimalRectangleSize and maximalRectangleCount(sorted by rectangle size).
    • Added more tests to cover more test cases.
    • Refactored CommandLineUsage, moved main() method to separated class.(@ak98neon)
    • Added ExcludedAreas functionality, which helps to exclude some parts of the image.(@mkytolai)

    ❤️ Contributors I'd like to say thank you for your contributions

    • @mkytolai
    • @ak98neon

    :octocat: Reviewers

    • @ak98neon
    • @smashside
    • @kremenec
    • @KyryloKh
    Source code(tar.gz)
    Source code(zip)
  • 2.2.0(May 14, 2019)

    ⭐️ New Features

    • Added ability to customize rectangle line width(@mkytolai).
    • Moved the main method from Image Comparison to own class(@ak98neon).
    • Added Code of Conduct and Contributing pages(@romankh3).
    • Added Point model(@romankh3).

    🐞 Bug Fixes

    • Made non-static threshold field(@ak98neon).

    ❤️ Contributors I'd like to thank all the contributors who helped to improve it:

    • @mkytolai
    • @ak98neon
    Source code(tar.gz)
    Source code(zip)
  • 2.1.0(Apr 15, 2019)

    ⭐️ New Features

    • Published the project to JCenter, MavenCentral
    • Update packages related to groupId.

    🐞 Bug Fixes

    All the bugs were successfully fixed on 2.0.2 version.

    ❤️ Contributors

    I'd like to say thank @renatoathaydes! He helped me to publish image-comparison.

    Source code(tar.gz)
    Source code(zip)
  • 2.0.2(Apr 10, 2019)

    ⭐️ New Features

    • Improved comparison algorithm.
    • Improved tests cases and test coverage to 100%.

    🐞 Bug Fixes

    • #11: Rectangles can overlap and be included one-into-one.
    • #21: StackOverflowError when compared 2 images with a little big different area.
    • #43: Added extra overlapping based on fixing #21 bug.

    ❤️ Contributors I'd like to thank all the contributors who helped to improve it!

    • @renatoathaydes
    • @alexbai326
    • @pvarenik
    • @gao2q
    • @kremenec
    • @dee-y
    Source code(tar.gz)
    Source code(zip)
  • V2.0(Oct 25, 2018)

  • v1.0(Aug 10, 2017)

    The program in Java that compares any 2 images and shows the differences visually by drawing rectangles.

    • Implementation is using only standard core language and platform features, no 3rd party libraries and plagiarized code is permitted.
    • Pixels (with the same coordinates in two images) can be visually similar, but have different values of RGB. We are only consider 2 pixels to be "different" if the difference between them is more than 10%.
    • The output of the comparison is a copy of one of the images image with differences outlined with red rectangles as shown below.
    • No third party libraries and borrowed code are not using.
    Source code(tar.gz)
    Source code(zip)
Owner
Roman Beskrovnyi
Sr. Software Engineer. Open source contributor. Happy father of two. Join IT telegram-channel https://t.me/romankh3
Roman Beskrovnyi
Serenity BDD is a test automation library designed to make writing automated acceptance tests easier, and more fun.

That feeling you get when you know you can trust your tests Serenity BDD is a library designed to make writing automated acceptance tests easier, and

Serenity BDD 654 Dec 28, 2022
A sample repo to help you handle basic auth for automation test in Java-selenium on LambdaTest. Run your Java Selenium tests on LambdaTest platform.

How to handle basic auth for automation test in Java-selenium on LambdaTest Prerequisites Install and set environment variable for java. Windows - htt

null 12 Jul 13, 2022
A sample repo to help you run automation test in incognito mode in Java-selenium on LambdaTest. Run your Java Selenium tests on LambdaTest platform.

How to run automation test in incognito mode in Java-selenium on LambdaTest Prerequisites Install and set environment variable for java. Windows - htt

null 12 Jul 13, 2022
A sample repo to help you handle cookies for automation test in Java-selenium on LambdaTest. Run your Java Selenium tests on LambdaTest platform.

How to handle cookies for automation test in Java-selenium on LambdaTest Prerequisites Install and set environment variable for java. Windows - https:

null 13 Jul 13, 2022
A sample repo to help you set geolocation for automation test in Java-selenium on LambdaTest. Run your Java Selenium tests on LambdaTest platform.

How to set geolocation for automation test in Java-selenium on LambdaTest Prerequisites Install and set environment variable for java. Windows - https

null 12 Jul 13, 2022
A sample repo to help you capture JavaScript exception for automation test in Java-selenium on LambdaTest. Run your Java Selenium tests on LambdaTest platform.

How to capture JavaScript exception for automation test in Java-selenium on LambdaTest Prerequisites Install and set environment variable for java. Wi

null 12 Jul 13, 2022
A sample repo to help you find an element by text for automation test in Java-selenium on LambdaTest. Run your Java Selenium tests on LambdaTest platform.

How to find an element by text for automation test in Java-selenium on LambdaTest Prerequisites Install and set environment variable for java. Windows

null 12 Jul 13, 2022
A sample repo to help you emulate network conditions in Java-selenium automation test on LambdaTest. Run your Java Selenium tests on LambdaTest platform.

How to emulate network conditions in Java-selenium automation test on LambdaTest Prerequisites Install and set environment variable for java. Windows

null 12 Jul 13, 2022
A sample repo to help you capture JavaScript exception for automation test in Java-TestNG on LambdaTest. Run Selenium tests with TestNG on LambdaTest platform.

How to capture JavaScript exception for automation test in Java-TestNG on LambdaTest Environment Setup Global Dependencies Install Maven Or Install Ma

null 11 Jul 13, 2022
A sample repo to help you use relative locators for automation test in Java-TestNG on LambdaTest. Run Selenium tests with TestNG on LambdaTest platform.

How to use relative locators for automation test in Java-TestNG on LambdaTest Environment Setup Global Dependencies Install Maven Or Install Maven wit

null 11 Jul 13, 2022
A sample repo to help you use CDP console in Java-TestNG automation test on LambdaTest. Run Selenium tests with TestNG on LambdaTest platform.

How to use CDP console in Java-TestNG automation test on LambdaTest Environment Setup Global Dependencies Install Maven Or Install Maven with Homebrew

null 11 Jul 13, 2022
A sample repo to help you set geolocation for automation test in Java-TestNG on LambdaTest. Run Selenium tests with TestNG on LambdaTest platform.

How to set geolocation for automation test in Java-TestNG on LambdaTest Environment Setup Global Dependencies Install Maven Or Install Maven with Home

null 12 Jul 13, 2022
A sample repo to help you emulate network control using CDP in Java-TestNG automation test on LambdaTest. Run Selenium tests with TestNG on LambdaTest platform.

How to emulate network control using CDP in Java-TestNG automation test on LambdaTest Environment Setup Global Dependencies Install Maven Or Install M

null 12 Oct 23, 2022
A sample repo to help you handle basic auth for automation test in Java-TestNG on LambdaTest. Run Selenium tests with TestNG on LambdaTest platform.

How to handle basic auth for automation test in Java-TestNG on LambdaTest Environment Setup Global Dependencies Install Maven Or Install Maven with Ho

null 11 Jul 13, 2022
A sample repo to help you set device mode using CDP in Java-TestNG automation test on LambdaTest. Run Selenium tests with TestNG on LambdaTest platform.

How to set device mode using CDP in Java-TestNG automation test on LambdaTest Environment Setup Global Dependencies Install Maven Or Install Maven wit

null 11 Jul 13, 2022
This is an experiment project I used to learn more about UI Automation with Playwright

Automated Wordle using Playwright (Java) This is an experiment project I used to learn more about UI Automation with Playwright. What's in this reposi

Tom Cools 4 Jan 30, 2022
Web automation example code of tests running parallely

Don't forget to give a ⭐ to make the project popular. ❓ What is this Repository about? This repo contains example code to run a single test parallely

Mohammad Faisal Khatri 1 Apr 3, 2022
Automation Tests (REST-API with REST-ASSURED examples)

Automation Tests (REST-API with REST-ASSURED examples) Technology Stack IDEA Java Junit5 Gradle Selenide Allure Jenkins Rest-Assured See details: src/

null 3 Apr 11, 2022