V e s t e r V e s t e r

Vester

Automated visual testing of softwares

Vester is a software built with Rust, that performs automated visual testing of software programs. It's aimed to help software developers to keep their applications in check by testing their visuals, so to make sure that the changes to the code do not alter the resulting software's appearance. Not only its visual testings are precise to the pixel, but its high performance makes it way faster than a human being, it also comes with a GUI that makes it very easy and fast to create tasks with a set of actions/inputs to be performed on the software that's being tested, and customize the checks that evaluate the correctness of the software's visual response to the configured actions.

Vester

Overview

Automated actions execution Records, speeds-up and executes actions (keyboard/mouse input, paste text)
Checkpoints and reset Set checkpoints as fallback steps to restart from when an action's result fails to pass the visual check. Create reset actions to be executed when a visual check fails multiple times, so to restart from the previous checkpoint with a reset state of the testing environment
GitHub Actions integration Set up GitHub Actions to be triggered on specific events to download, compile, run and visually test the repository
Blazing fast performance It's made with Rust, with performance as a top priority, and _ing Vision as backbone for image recognition, so yes, its Fast

Quick demo

Visually testing a repository on GitHub

|

To test Vester's features and performance I've forked the egui reposoitory and configured a GitHub Action on my vester_visual_testing branch so that when a pull request is opened towards that branch an automatic HTTP request will be sent to the server hosting the Vester client, which will proceed to download the merging repository, compile the binaries, execute the egui demo app and visually test it, then send the results back, ending the Action. In case the test was successful it would be safe to assume that the merging branch's commits do not alter the visuals of the resulting application, therefore we can proceed to merge it and close the pull request.
An API webpage is available for sending HTTP calls to Vester, retrieve screenshots from the desktop environment it's operating on, and get debugging images of the visual checks that failed to pass.

Latest implementations

| |

As for the Graphical User Interface, Vester uses the egui GUI library for Rust.