Need help with Visual-Regression-Tracker?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

302 Stars 27 Forks Apache License 2.0 128 Commits 26 Opened issues


Backend and Frontend application for tracking differences via image comparison

Services available


Need anything else?

Contributors list

Visual Regression Tracker logo

Visual Regression Tracker

Open source, self hosted solution for visual testing and managing results of visual testing.


How it works

Service receives images, performs pixel by pixel comparison with it’s previously accepted baseline and provides immediate results in order to catch unexpected changes.



  • Automation framework independent - no need to stick with specific automation tool, integrate with existing one
  • Platform independent - web, mobile, desktop etc. as long as you could make a screenshot
  • Baseline history - track how baseline image changed since the beginning
  • Ignore regions - improve stability by ignoring not important or not controllable parts of image
  • Language support - JS, Java, Python, .Net or any other via REST API (need more?)
  • Easy setup - everything is inside Docker images
  • Self-hosted - keep your data save inside your intranet


  • TestVariation - historical record of Baselines by Name + Branch + OS + Browser + Viewport + Device,
  • Baseline - validated and accepted image, latest will be used as expected result in TestRun
  • TestRun - result of comparing image against Baseline
  • Build - list of TestRuns
  • Project - list of Builds and TestVariations

Set up

Use any of the below ways to setup the server. Docker has to be installed on the machine.

Quick Setup

Linux, macOS, WSL

  1. Download the installation script
curl -o
chmod a+x
  1. Run the installation script


Command line arguments

Installs the Visual Regression Tracker

Usage: ./

    -h | --help
    -a | --frontend-url <url>   Set the Front-end url. Default: http://localhost:8080
    -r | --backend-url <url>    Set the API url. Default: http://localhost:4200
    --jwt-secret <secret>       Set the JWT secret. Default: randomly generated

Manual Setup
  1. Copy docker-compose.yml

$ curl -o docker-compose.yml

  1. Copy .env

$ curl -o .env

  1. In .env file, ensure that the REACT_APP_API_URL has the right address. If it will be accessed from other machines, change localhost with IP or other resolvable name.

  2. Start service

$ docker-compose up

Wait until you see your creds printed.

New users and projects could be created via frontend app by default on http://localhost:8080

Success setup

Run VRT with logging enabled in Elasticsearch

This is for the users who want to monitor VRT logs via Kibana. It is expected to have basic knowledge of Elastic stack (especially Kibana) for the admin so that the logs can be managed and dashboards created in Kibana. Since logging will be retained by elasticsearch, it will consume a little more memory and CPU. If you see error in the console, please consult elasticsearch documentation.
It is recommended to run the program as root user which will ensure permission and ownership related issues will not have to be dealt with.

  1. Clone or download this repository.
  2. Move to the downloaded/cloned repository. In .env file, ensure that the REACT_APP_API_URL has the right address. If it will be accessed from other machines, change localhost with IP or other resolvable name.
  3. Start service by giving below command.

$ docker-compose -f docker-compose.yml -f docker-compose.logging.yml up

  1. If you are not using root user, in some OS, you may see an error Exiting: error loading config file: config file ("filebeat.yml") must be owned by the user identifier (uid=0) or root. In that case, press Ctrl+C, and follow Elasticsearch instructions. Once done, start the service again.


Use implemented libraries to integrate with existing automated suites by adding assertions based on image comparison. We provide native integration with automation libraries, core SDK and Rest API interfaces that allow the system to be used with any existing programming language.


Core SDK

Basic wrapper over API to be used for integration with existing tools * JavaScript * Java * Python * Dotnet

Getting started guide



Integration examples

Here you could find examples * JavaScript * Java * Python * Dotnet


  1. Try it, raise tickets with ideas, questions, bugs and share feedback :)
  2. More language support for SDK
  3. More integration with specific testing frameworks (agents)

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Pavel Strunkin

💻 💼 🤔 🔌

Daniel Crowe

🔌 👀

Surat Das

💻 🔌

Oleksandr Romanov


Terentev Denis




Dekara VanHoc




Aaron Chelvan

💻 📖





This project follows the all-contributors specification. Contributions of any kind welcome!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.