Open source, self hosted solution for visual testing and managing results of visual testing.
Project description
Python SDK for Visual Regression Tracker
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, between0-100
. -
ignoreAreas: List[IgnoreArea]
x: int
X-coordinate relative of left upper cornery: int
Y-coordinate relative of left upper cornerwidth: int
area width in pxheight: int
area height in px
-
screenshotOptions: PageScreenshotOptions
configuration for Playwrightsscreenshot
method-
full_page: bool
When true, takes a screenshot of the full scrollable page, instead of the currently visibvle viewport. Defaults tofalse
. -
omit_background: bool
Hides default white background and allows capturing screenshots with transparency. Defaults tofalse
. -
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 areay: float
y-coordinate of top-left corner of clip areawidth: float
width of clipping areaheight: 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, between0-100
. -
ignoreAreas: List[IgnoreArea]
x: int
X-coordinate relative of left upper cornery: int
Y-coordinate relative of left upper cornerwidth: int
area width in pxheight: int
area height in px
-
screenshotOptions: ElementHandleScreenshotOptions
configuration for Playwrightsscreenshot
method-
omit_background: bool
Hides default white background and allows capturing screenshots with transparency. Defaults tofalse
. -
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.
-
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file visual_regression_tracker-4.8.0.tar.gz
.
File metadata
- Download URL: visual_regression_tracker-4.8.0.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88c2f26adc29ffdac5b104d51c28f193fd815d262534a297feb1aebd0d87b6e5 |
|
MD5 | 5008708d8d589680a8ae18dbc9e2dfea |
|
BLAKE2b-256 | 808bb5810112886d26d4de9d116e603529345f5d5a8ac3cdd3135ef63788625e |
Provenance
File details
Details for the file visual_regression_tracker-4.8.0-py2.py3-none-any.whl
.
File metadata
- Download URL: visual_regression_tracker-4.8.0-py2.py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.0.post20200714 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 402d648b5e823b95842e29378d914700af3c44188f50b17e37e6c1fef84b3432 |
|
MD5 | 84348fdd6acfc49c10b2b7f55265fa21 |
|
BLAKE2b-256 | e08d36c9daaadfdac9e287d12e653db8f6564f95a118e37644ded5363b28fdf4 |