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
ElasTest main features
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 core concepts
ElasTest is built around 3 main elements:
Software under Test (SuT)
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 Job (TJob)
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).
Services
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 modes
ElasTest has different execution modes:
Over Docker
- Mini (mini): This mode is intended for testing on a
laptop
orsmall server
. - Single-Node (singlenode): This mode is intended for testing on
servers
with with better technical characteristics. The main differences withmini
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.