Software under Test

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 deployed outside ElasTest: your software is already deployed somewhere.

When creating a new SuT you are able to defined what mode of deployment ElasTest should work with.

With Commands Container

Your SuT is packaged as a Docker image. You must write the Commands Container Image and the commands below. These commands will run like the docker image CMD.

Fields to declare:

  • Commands container images: name of the container image
  • Commands: commands to execute
  • Port: port that ElasTest should wait for to be available before running your TJobs
  • Protocol: protocol of the SuT url. Only Http and Https are available.

Furthermore you can choose between three options into With Commands Container:

SuT In Commands Container

You can start a SuT from commands. For example, you can clone and build maven project from GitHub and after start generated java jar file.

SuT In New Container

You can start a SuT from docker image. The difference with With Docker Image option is that you can generate a docker image in execution time. For example, you can clone a project from GitHub and after generate docker image and start it.

It's necessary sets on docker run command the --name parameter with the $ET_SUT_CONTAINER_NAME environment variable.

SuT In Docker Compose

You can start a SuT from docker compose. The difference with With Docker Compose option is that you can use a docker-compose file stored, for example, into GitHub instead of copy and paste it into ElasTest.

It's necessary sets on docker-compose up command the -p parameter with the $ET_SUT_CONTAINER_NAME environment variable.

With Docker image

Your SuT is packaged as a Docker image. ElasTest will pull it from DockerHub and run it as the Dockerfile states.

Fields to declare:

  • Docker image: name of the image (tagged or untagged)
  • Port: port that ElasTest should wait for to be available before running your TJobs
  • Protocol: protocol of the SuT url. Only Http and Https are available.

With docker-compose

Your SuT is declared as a docker-compose. ElasTest will pull all the necessary images from DockerHub and run them as the field Docker Compose states

Fields to declare:

  • Docker Compose: your docker-compose.yml file. Simply copy-paste its content here
  • Main Service Name: the name of the service that ElasTest should wait for to be up before running your TJobs (the specific port is declared in the next field Port)
  • Port: port that ElasTest should wait for to be available before running your TJobs (applied to the service declared in the previous field Main Service Name)
  • Protocol: protocol of the SuT url. Only Http and Https are available.

No instrumentation

Your SuT is already deployed on an external server and you don't want to send any logs or metrics to ElasTest.

Fields to declare:

  • SuT IP: IP or DNS of your SuT. Thanks to this field your TJobs may know how to reach your SuT through environment variable ET_SUT_HOST. Check Environment variables to learn more.
  • SuT Protocol: Protocol of your SuT. http is selected by default.

Optional Fields:

  • SuT Port: Port of your SuT.

Manual instrumentation

Your SuT is already deployed on an external server and you want to manually send its logs and metrics to ElasTest.

Fields to declare:

  • SuT IP: IP or DNS of your SuT. Thanks to this field your TJobs may know how to reach your SuT through environment variable ET_SUT_HOST. Check Environment variables to learn more.
  • SuT Protocol: Protocol of your SuT. http is selected by default.

Optional Fields:

  • SuT Port: Port of your SuT.

After filling SuT name and description fields, click on Save and get monitoring details button to get all the necessary fields to manually instrument your server following these instructions.

Instrumented by ElasTest

Your SuT is already deployed on an external server and you want to automatically send its logs and metrics to ElasTest. Elastest will be responsible for accessing your Sut to send monitoring traces, through the ElasTest Instrumentation Manager (EIM) service.

EIM is integrated with ElasTest and allows to instrumentalize and de-instrumentalize the deployed SuTs. TJobs can also executed to verify that the SuTs are successfully instrumentalized.

Fields to declare:

  • SuT IP: IP or DNS of your SuT. Thanks to this field your TJobs may know how to reach your SuT through environment variable ET_SUT_HOST. Check Environment variables to learn more.
  • SuT Protocol: Protocol of your SuT. http is selected by default.
  • User: The user for access to your SuT.
  • Private Key: The Private Key for access to your SuT.
  • Instrumentalize: If checked, it will be registered in the EIM so that the EIM can install Beats agents for SuT monitoring.
  • Sut Logs Path: Full path where the logs that you want to monitor are located. One or more routes can be indicated.

Optional Fields:

  • SuT Port: Port of your SuT.
  • Password: Password of your SuT.
  • Dockerized SuT: To indicate that your Sut consists of one or more Docker containers. You must indicate The path where docker writes the containers logs and the path of docker.sock.

Once the Sut is created, it can be associated with one or more TJobs of the same project. Each time a TJob is executed, ElasTest will install beat agents in the Sut to monitor the execution. The installed beats are:

IMPORTANT: For proper operation, there should not be more than one execution of the same TJob simultaneously.

Use external Elasticsearch

Your SuT is already deployed on an external server and you store your monitoring traces in your own Elasticsearch. Elastest will be responsible for accessing your Elasticsearch to get monitoring traces.

Fields to declare:

  • SuT IP: IP or DNS of your SuT. Thanks to this field your TJobs may know how to reach your SuT through environment variable ET_SUT_HOST. Check Environment variables to learn more.
  • SuT Protocol: Protocol of your SuT. http is selected by default.
  • Elasticsearch:
    • Protocol: Protocol of your Elasticsearch.
    • IP: IP or DNS of your Elasticsearch.
    • Port: Port of your Elasticsearch.
    • Stream Fields: field or fields used to sort the different logs. For each value a log card will be displayed in ElasTest. If more than one field is indicated (separated by commas) it will be sorted by combination of values of each field following the order indicated.
    • ES Indices: Elasticsearch indices where the Sut monitoring traces be stored. If there are more than one index, type them separated by commas.

Optional Fields:

  • SuT Port: Port of your SuT.
  • Elasticsearch:
    • Path: Path of your Elasticsearch if it is behind a proxy.
    • User: The User of your Elasticsearch.
    • Pass: The Password of your Elasticsearch.
    • Use Indices by Execution: If checked, a parameter with the indices will be added. For each TJob Execution, you can to indicate the inidices.