Skip to content

Visual-Regression-Tracker/sdk-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

833f16a · Feb 14, 2025
Feb 6, 2025
May 9, 2020
Feb 6, 2025
May 9, 2020
Jul 21, 2020
Feb 14, 2025
Feb 11, 2025
May 9, 2020
May 9, 2020
Jan 21, 2021
Jul 24, 2020
Jul 18, 2022

Repository files navigation

Codacy Badge

Gradle

repositories {
    maven { url 'https://jitpack.io' }
}
dependencies {
    implementation group: 'com.github.visual-regression-tracker', name: 'sdk-java', version: '${REPLACE_THIS_VALUE}'
}

Maven

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>
<dependency>
    <groupId>com.github.Visual-Regression-Tracker</groupId>
    <artifactId>sdk-java</artifactId>
    <version>${REPLACE_THIS_VALUE}</version>
</dependency>

Available versions

More info about https://jitpack.io/

Usage

Configuration

In order to initialize VisualRegressionTracker, following options should be defined:

  • apiUrl (Required) - URL where backend is running. Example: "http://localhost:4200"
  • project (Required) - Project name or ID. Example: "003f5fcf-6c5f-4f1f-a99f-82a697711382"
  • apiKey (Required) - User apiKey. Example: "F5Z2H0H2SNMXZVHX0EA4YQM1MGDD"
  • branch (Optional) - Current git branch. Example: "develop"
  • enableSoftAssert (Optional) - Log errors instead of exceptions. Default value is false
  • ciBuildId (Optional) - id of the build in CI system
  • httpTimeoutInSeconds (Optional) - define http socket timeout in seconds. Default value is 10 seconds

There are a few ways to provide those options

Create config with builder
VisualRegressionTrackerConfig config = VisualRegressionTrackerConfig.builder()
                .apiUrl("http://localhost:4200")
                .apiKey("F5Z2H0H2SNMXZVHX0EA4YQM1MGDD")
                .project("003f5fcf-6c5f-4f1f-a99f-82a697711382")
                .enableSoftAssert(true)
                .branchName("develop")
                .build();
Set environment variables
export VRT_APIURL=http://localhost:4200
export VRT_APIKEY=F5Z2H0H2SNMXZVHX0EA4YQM1MGDD
export VRT_PROJECT=003f5fcf-6c5f-4f1f-a99f-82a697711382
export VRT_BRANCHNAME=develop
export VRT_ENABLESOFTASSERT=true
export VRT_CIBUILDID=40bdba4
export VRT_HTTPTIMEOUTINSECONDS=15

Create vrt.json file in the root of the project
{
  "apiUrl": "[http://162.243.161.172:4200](http://localhost:4200)",
  "project": "003f5fcf-6c5f-4f1f-a99f-82a697711382",
  "apiKey": "F5Z2H0H2SNMXZVHX0EA4YQM1MGDD",
  "branchName": "develop",
  "enableSoftAssert": false,
  "ciBuildId": "40bdba4"
}

Note

Final values, that will be used by VisualRegressionTracker, will be resolved as following:

  1. If explicitly set while creating VisualRegressionTrackerConfig - use this value
  2. Use value from environment variable if it exists
  3. Try to get it from the configuration file

Create an instance of VisualRegressionTracker

VisualRegressionTracker visualRegressionTracker = new VisualRegressionTracker(config);

or

VisualRegressionTracker visualRegressionTracker = new VisualRegressionTracker();

Tip

If config is not provided explicitly, it will be created based on the environment variables or configuration file. Please see Configuration section


Start VisualRegressionTracker

visualRegressionTracker.start();

At that point VisualRegressionTracker will try to create a new build for provided project. All of the subsequent tracked screenshots are going to be included in that build.


Take a screenshot as String in Base64 format

// Selenium example
String screenshotBase64 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BASE64);

Track image

Default options

visualRegressionTracker.track(
        "Name for test",
        screenshotBase64
);

With specific options

visualRegressionTracker.track(
        "Name for test",
        screenshotBase64,
        TestRunOptions.builder()
            .browser("Chrome")
            .os("Windows")
            .viewport("1200x800")
            .diffTollerancePercent(3.0f)
            .build()
);

Stop VisualRegressionTracker

visualRegressionTracker.stop();

Should be called once current build should be considered as completed.