The system consists of the following major components:
- The Application Under Test (AUT)
- A test suite that exercises the AUT and verifies its correctness
- The Eyes SDK, called in the test suite code to trigger screenshot capture and visual checking
- An application Driver, such as Selenium or Appium that provides a way for the test suite to send events to the AUT. The Eyes SDK also uses the Driver to capture the AUT screenshots
- The Eyes Server, receives and stores the AUT screenshots from the SDK, compares them to stored baseline images and reports the differences
- The Eyes Test Manager, allows users to review the test results, report bugs and manage the baseline images
The diagram below explains how the components interact to run a test, and to allow Testers to view and manage the test results.
The numbers below refer to the labeled arrows in the diagram.
- 1: Testers run the test suite and the code typically repeats the following steps for multiple application states:
- 2.1: Simulate user actions (e.g. mouse click, keyboard entry) by using a driver such as Selenium or Appium
- 2.2: Call an Eyes SDK API to perform a visual checkpoint
- 2.2a: Eyes SDK uses the Driver to obtain the screenshot
- 2.2b: Eyes SDK then sends the image to the Eyes Server where it, and the other checkpoint images, are compared to the baseline images previously stored on the Server
- 3:After the images in the test have been processed, the Eyes Server replies with information such as whether any differences were found and a link to the Eyes site where the results can be viewed.
- 4: Testers use the Eyes Test Manager to view the test results, update the baselines, mark bugs and annotate regions that need special handling. After having viewed all of the results, testers save the baseline which then becomes the basis for comparison in the next test run.
Applitools provides a set of SDKs that supports a wide variety of popular web, mobile and desktop test automation frameworks, with support for various application driver infrastructures, programming languages and for all common platforms, browsers, and operating systems. These SDKs do not interact directly with the AUT, so Eyes is totally independent of how the application is implemented and deployed.
Eyes services can be provided in different server configurations to meet your organization's needs, ranging from multi-tenant public cloud to a dedicated cloud or on-premises servers. The SDK/Server based architecture ensures that the Application and test suite code and deployment are totally independent and isolated from the Server. For example the application can sit behind a firewall, and the Eyes Server does not need direct access in order to obtain the screenshots.