What is ElasTest?

ElasTest is a platform aimed to ease end to end testing of distributed systems. The two key features of the platform are: 1) Provide an easy deployment process and easy access to the necessary services usually involved in an end to end test and 2) Provide easy-to-use tools to show and analyze logs and metrics of all elements involved in an end to end test.

For example, suppose a typical three tier web application with a database. A basic e2e test has the following components: the test itself, web browser, web application and database. All those elements have to be properly deployed, linked and executed, and all of them can generate logs and metrics of several types (CPU, memory, network packets…). A test being executed in ElasTest can make direct use of multiple integrated services (such as Web Browsers), and the tester can see all that monitoring information in the same graphical user interface and with advanced analysis features.

ElasTest is currently in active development. This means that new features are constantly being added and unexpected bugs may appear

An elastic platform to ease end to end testing

Test management

Build your testing environment with the tools offered by ElasTest

Easily connect all the components wherever they are and run your tests in a few clicks

Metrics monitoring

Get useful information from all your components

Every test, web browser, database, application... generates logs and consumes computing resources. And knowing when and how they change can give you a huge advantage as a tester

Web browsers

Any browser. Of any version

As testers we know how hard it is to ensure that our applications work properly in all browsers and versions. ElasTest makes this an easy task

Log analyzer

A powerful tool for finding what you want in the vast flood of logs

Gathering logs is only the first step. None of this would make sense if you couldn't dive into your logs with a powerful, intuitive and adaptative tool as ElasTest Log Analyzer

Jenkins integration

ElasTest and Jenkins work together with a marvelous integration

ElasTest provides a Jenkins plugin for you to use the platform in your CI environment. Thanks to this you can make use of some features provided by ElasTest, such as log analysis or the use of on-demand browsers.

ElasTest is built around 3 main elements:

The tested software itself. ElasTest supports two deployment modes of SuT:
  • SuT deployed by ElasTest: your software is packaged as Docker container/s. It can be a single Docker image or a docker-compose.
  • SuT outside ElasTest: your software is already deployed somewhere.
Test to be executed against your SuT. In a TJob several things have to be specified:
  • Environment to execute the tests: This is defined with a docker image that contains all tools used by the tests.
  • How to retrieve and execute the tests: Specified as a set of commands written in bash that will be executed inside the docker container defined as environment.
  • The SuT against which the tests are executed: That is, the SuT description. If the SuT is deployed by ElasTest, it only needs the Docker image or docker-compose. If the Sut is outside ElasTest, it is necessary to specify how to reach it (usually with its IP).

A TJob can be executed several times. That can be useful, for example, because SuT has changes and we want to verify that old features are still working. Or if we add more tests to the same TJob test repo, we can execute them against the SuT.
Services offered by ElasTest to ease the execution and analysis of TJobs. At the moment, ElasTest only provides Web Browser Service and Log Analyzer Service, but in the near future ElasTest will offer other services as mobile devices emulators, IoT devices, security services and Big Data services.

ElasTest technologies

ElasTest has different execution modes:

Over Docker
  • Mini (mini): This mode is intended for testing on a laptop or small server.
  • Single-Node (singlenode): This mode is intended for testing on servers with with better technical characteristics. The main differences with mini are:
    • Logs and metrics are stored in ElasticSearch and processed with Logstash, while in mini they are saved in MySQL.
    • Modular architecture based on containers (ESM)
    • The ElasTest Platform Monitoring service is available
Over Kubernetes
  • EK (ElasTest over Kubernetes): For elastic environments. Similar to ElasTest mini (Docker)
  • HEK (Highly Scalable ElasTest Kubernetes soon): ElasTest with high availability over Kubernetes. Similar to ElasTest single-node (Docker)

In the (Try ElasTest) section you can find out more about how to start a specific mode and what its technical features are.