ElasTest has three execution modes. Normal mode (default mode), Experimental-lite and Experimental. Each of them increases the number of features offered by ElasTest from less to more.
The Normal mode has already been mentioned in this documentation as it is the default mode in which ElasTest works and offers users the following basic functionalities:
- Basic element Management. You can create Projects, TJobs and Suts.
- Web Browser provisión and Test Session Recording. You can ask ElasTest for a web browser instance to perform manual tests or use it in an automated test from a TJob. The browser provider is the EUS (ElasTest User Impersonation Service), a TSS that is provided by default in all mode.
- Log analysis. You can use the Log Analyzer tool for in-depth study of the logs generated by the TJobs, browser and Suts
- TestLink integration. If you already use Testlink in your test lifecycle, you can now integrate it with ElasTest to speed it up. You can use the browsers provided by ElasTest to perform the tests, store the necessary evidence as video recordings of the tests or the records generated by the tests and comment on the test results from the ElasTest GUI.
- Jenkins integration. You can use a Jenkins instance provided by ElasTest.
- ElasTest Instrumentation Manager (EIM). Service that controls and orchestrates the Instrumentation Agents that are deployed in ElasTest platform automatically. These agents will instrument the operating system kernel of the SuT. An interesting feature for monitoring external SUTs and not managed by ElasTest. The EIM will start the first time a Sut is instrumented.
All of these features are available in all three operating modes, except for manual provisioning of web browsers. The experimental modes are described below.
1. Experimental Lite
The Experimental lite mode adds components to ElasTest that give it new functionalities.
Test Support Services (TSSs). Conceived as services that are enabled on demand, they provide additional functionality that can be used during the execution of a TJob. One instance of these services will be created each time a job is executed.
- ElasTest Device Service (EDS). Emulates the behaviors of the sensors, actuators and smart devices you need to perform your tests.
- ElasTest Monitoring Service (EMS). Service that allows monitoring the execution of the TJobs and SUTs, in a similar way to the normal mode, but with a greater capacity of configuration.
- ElasTest Bigdata Service (EBS). Service that provides a computing engine based on Apache Spark to be utilized by tests inside ElasTest, as well as other ElasTest services. It is disposable, meaning that it can be commissioned/decommissioned on demand and scalable, meaning that it can be resized to provide capacity for faster/bigger calculations. EBS enables ElasTest to easily perform operations on huge datasets being stored locally, in distributed filesystems (HDFS) or remote ones (e.g. Amazon S3).
- ElasTest Security Service (ESS). Service that can be used to detect security vulnerabilities in the System Under Test (SuT).
- Test Engines(TEs). Similar to the TSSs with the difference that a single instance of a Test Engine will be used by all the TJobs configured in the platform.
- ElasTest Cost Engine (ECE). Service that provides to the users the information to consider the financial of using clouds. Using clouds cost money, in third party clouds you pay for the time and resources you use. As well as in on-premises clouds, you pay for the energy and the hardware resources utilization.
To start ElasTest in Experimental-lite mode execute this command from the shell:
docker run --rm -v ~/.elastest:/data -v /var/run/docker.sock:/var/run/docker.sock --rm elastest/platform:dev start -m=experimental-lite
And finally the Experimental mode, the heaviest of all, which like the previous one, increases the functionality offered by elastest. This mode adds three new components to the platform:
ElasTest Monitoring Platform (EMP). Service that will be used to primarily monitor the health of various componets of ElasTest platform and allows correlated queries aiding the fault location within the platform in an optimized manner.
ElasTest Data Manager (EDM). Service responsible for providing the different persistent services available to the ElasTest platform. The persistent services under the responsibility of EDM are the following:
- Relational database (MySQL)
- Persistance control service (API-including Alluxio, S3 & HDFS compatible)
- ElasticSearch (for both logs and metrics)
- API for exporting and importing data
- ElasTest Platform Manager (EPM). A very interesting component that makes the interface between the ElasTest testing components (e.g. ElasTest Test Manager, TSS, etc.) and the cloud infrastructure where ElasTest is deployed. Hence, this Platform Manager must abstract the cloud services so that ElasTest becomes fully agnostic to them and provide this abstraction via Software Development Toolkits (SDK) or REST APIs to the northbound consumers (i.e. ElasTest Test Manager).
To start ElasTest in Experimental mode it is necessary to first execute the following command to increase the virtual memory limit for Elasticsearch:
sysctl -w vm.max_map_count=262144
Once this is done, you can start ElasTest with the following command from the shell:
docker run --rm -v ~/.elastest:/data -v /var/run/docker.sock:/var/run/docker.sock --rm elastest/platform:dev start -m=experimental