Skip to content

SystemComponents

Maciej Laskowski edited this page Feb 9, 2018 · 6 revisions

System Components

The AET System consists of 7 core units:

  • The Client (AET Maven Plugin)
  • The Runner cluster
  • The Worker cluster
  • The JMS Server
  • The Database
  • The REST API
  • Reports web application

AET System architecture

aet-architecture

Client

The Client component has the following functions

  • sending request to the AET System.
  • checking the suite processing status.
  • downloading the Report after the Test Suite run is finished.

Test Executor

The Test Executor is an entry point of the test suite processing. It exposes endpoints which client applications can use to run the test suite and check the processing status by sending the simple HTTP requests.

Runner

The Runner is the heart of the system. It is responsible for consuming Client's request and dispatching it to Workers. It works similar to the Map-Reduce algorithm. During the execution of the suite, the Runner checks if the next phase can begin and when all the phases are finished the Runner informs the client about it.

Worker

The Worker is a single processing unit that can perform a specific task e.g. collect a screenshot using the Firefox browser in the Windows 7 environment, collect a page source, compare two screenshots, check if the source of a page is W3C-complaint and many others.

JMS Server

The JMS Server is a communication hub for the whole system. Workers, runners and the client communicate with one another using JMS messages.

Database

The Database serves as the system storage. It stores all the results, reports and patterns.

REST API

The REST API for the stored data; the user can download the Report, collected sources, view screenshots and comparison results via the REST API.

Third-party software used by system

AET uses the following third party software as parts of the system:

Software Used version Function
Apache Karaf 4.1.4 OSGi container for AET bundles and REST API.
Apache ActiveMQ 5.15.2 JMS Sever used for communication between system components.
MongoDB 3.2.3 System database.
Browsermob 2.1.4 Proxy server.
Firefox 38.6.0 ESR (en-US) Browser with Selenium (3.8.1).
Selenium Grid 3.8.1 Selenium Grid.
Clone this wiki locally