Skip to main content

Python SDK for Visual Regression Tracker

Codacy Badge Codacy Badge

Install

pip install visual-regression-tracker

# or, with playwright integration
pip install visual-regression-tracker[playwright]
python -m playwright install

Usage

Import

from visual_regression_tracker import VisualRegressionTracker, Config, TestRun

Configure connection

As python

config = Config(
    # apiUrl - URL where backend is running 
    apiUrl='http://localhost:4200',

    # project - Project name or ID
    project='Default project',

    # apiKey - User apiKey
    apiKey='tXZVHX0EA4YQM1MGDD',

    # ciBuildId - Current git commit SHA
    ciBuildId='commit_sha',

    # branch - Current git branch 
    branchName='develop',

    # enableSoftAssert - Log errors instead of exceptions
    enableSoftAssert=False,
)

vrt = VisualRegressionTracker(config)

Or, as JSON config file vrt.json

{
    "apiUrl":"http://localhost:4200",
    "project":"Default project",
    "apiKey":"tXZVHX0EA4YQM1MGDD",
    "ciBuildId":"commit_sha",
    "branchName":"develop",
    "enableSoftAssert":false
}
vrt = VisualRegressionTracker()

Or, as environment variables

VRT_APIURL="http://localhost:4200" \
VRT_PROJECT="Default project" \
VRT_APIKEY="tXZVHX0EA4YQM1MGDD" \
VRT_CIBUILDID="commit_sha" \
VRT_BRANCHNAME="develop" \
VRT_ENABLESOFTASSERT=true \
    python
vrt = VisualRegressionTracker()

Setup / Teardown

As context manager:

with vrt:
    ...
    # track test runs
    ...

Without context manager:

vrt.start()
...
# track test runs
...
vrt.stop()

Assert

vrt.track(TestRun(
    # Name to be displayed
    # Required
    name='Image name',

    # Base64 encoded string
    # Required
    imageBase64=image,

    # Allowed mismatch tollerance in %
    # Optional
    # Default: 0%
    diffTollerancePercent=1,

    # Optional
    os='Mac',

    # Optional
    browser='Chrome',

    # Optional
    viewport='800x600',

    # Optional
    device='PC',

    # Array of areas to be ignored
    ignoreAreas=[
        IgnoreArea(
            # X-coordinate relative of left upper corner
            # Required
            x=10,
            # Y-coordinate relative of left upper corner
            # Required
            y=20,
            # Area width in px
            # Required
            width=300,
            # Height width in px
            # Required
            height=400
        )
    ],
))

Integration with Microsoft Playwright

Imports

from playwright import sync_playwright
from visual_regression_tracker import Config, TestRun
from visual_regression_tracker.p import PlaywrightVisualRegressionTracker

Start playwright and navigate to page

playwright = sync_playwright().start()
browserType = playwright.chromium
browser = browserType.launch(headless=False)
page = browser.newPage()
page.goto('https://www.python.org/')

Configure connection to VRT server

vrt = PlaywrightVisualRegressionTracker(browserType, config)

Setup / Tear down

As context manager:

with vrt:
    ...
    # track test runs
    ...

Without context manager:

vrt.start()
...
# track test runs
...
vrt.stop()

Track page

vrt.trackPage(page, imageName[, options])
  • page: Page Playwright page

  • imageName: str name for the taken screenshot image

  • options: PageTrackOptions optional configuration with:

    • diffTollerancePercent: float specify acceptable difference from baseline, between 0-100.

    • ignoreAreas: List[IgnoreArea]

      • x: int X-coordinate relative of left upper corner
      • y: int Y-coordinate relative of left upper corner
      • width: int area width in px
      • height: int area height in px
    • screenshotOptions: PageScreenshotOptions configuration for Playwrights screenshot method

      • full_page: bool When true, takes a screenshot of the full scrollable page, instead of the currently visibvle viewport. Defaults to false.

      • omit_background: bool Hides default white background and allows capturing screenshots with transparency. Defaults to false.

      • clip: FloatRect An object which specifies clipping of the resulting image. Should have the following fields:

        • x: float x-coordinate of top-left corner of clip area
        • y: float y-coordinate of top-left corner of clip area
        • width: float width of clipping area
        • height: float height of clipping area
      • timeout: float Maximum time in milliseconds, defaults to 30 seconds, pass 0 to disable timeout.

    • agent: Agent Additional information to mark baseline across agents that have different:

      • os: str operating system name, like Windows, Mac, etc.
      • device: str device name, PC identifier, mobile identifier etc.
      • viewport: str viewport size.

Track element handle

vrt.trackElementHandle(elementHandle, imageName[, options])
  • elementHandle: ElementHandle Playwright ElementHandle

  • imageName: str name for the taken screenshot image

  • options: ElementHandleTrackOptions optional configuration with:

    • diffTollerancePercent: float specify acceptable difference from baseline, between 0-100.

    • ignoreAreas: List[IgnoreArea]

      • x: int X-coordinate relative of left upper corner
      • y: int Y-coordinate relative of left upper corner
      • width: int area width in px
      • height: int area height in px
    • screenshotOptions: ElementHandleScreenshotOptions configuration for Playwrights screenshot method

      • omit_background: bool Hides default white background and allows capturing screenshots with transparency. Defaults to false.

      • timeout: float Maximum time in milliseconds, defaults to 30 seconds, pass 0 to disable timeout.

    • agent: Agent Additional information to mark baseline across agents that have different:

      • os: str operating system name, like Windows, Mac, etc.
      • device: str device name, PC identifier, mobile identifier etc.
      • viewport: str viewport size.

Release files for visual-regression-tracker 4.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for visual-regression-tracker 4.9.0
File Size Uploaded
visual_regression_tracker-4.9.0.tar.gz 12.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for visual-regression-tracker 4.9.0
File Interpreter ABI Platform
visual_regression_tracker-4.9.0-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 26.1 kB

Release files / visual_regression_tracker-4.9.0.tar.gz

Download URL visual_regression_tracker-4.9.0.tar.gz
Size 12.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b7937e9f6229623c14260d5a046a8e0c2d7ac9db0730442ea7ac507d531f97e4
BLAKE2b-256 checksum
How to use checksums
b43ae073f8b335b7c17a5f006fc0b84c20d35f1f4a1304f3edb41e766aaa446c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release files / visual_regression_tracker-4.9.0-py2.py3-none-any.whl

Download URL visual_regression_tracker-4.9.0-py2.py3-none-any.whl
Size 13.5 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
06d782d54c1b333bc1b204ce3c8a925c2505eda285a35c8856ed1782a8fa5d09
BLAKE2b-256 checksum
How to use checksums
b9df5c678290c43c6c1a4e488771fbaf5d70e3f0089f4dfee30358a9c5c7bb13
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

Release history Release notifications | RSS feed

This release

4.9.0 This release

2 release files

4.8.0

2 release files

4.7.0

2 release files

4.6.0

2 release files

4.5.0

2 release files

4.4.0

2 release files

4.3.0

2 release files

4.2.0

2 release files

4.1.0

2 release files

4.0.0

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page