Skip to content

Feature: run system tests #16

@mtojek

Description

@mtojek

Master issue: #14

System tests are end-to-end tests that involve multiple Elastic products and the real service (under tests) or collected log data (which could be mocked). They support multiple versions of the tested service (e.g. selected with environment variables).
The current design assumes that system tests only consist of configuration files and there are no test cases in Go language.

Input:
test-a-agent.yml: (possibly optional?) configuration file used to spawn a standalone instance of the agent
Dockerfile: Dockerfile definition that defines an instance of the tested service (might be single for entire integration)
docker-compose.yml: (optional) the manifest defines other properties of the tested service, e.g. scaling factor, volumes, exposed ports (might be single for entire integration)
supported-variants.yml: contains environment variables defining multiple versions of the product (might be single for entire integration)
test-a-input-file.log: (optional) other resources referenced in the configuration, e.g. log files to be harvested.
test-a-expected.json: contains a document expected to be present in Elasticsearch. The document format allows for defining basic matchers to verify non-exact values.

Execution:

The test runner (elastic-package) performs full end-to-end testing. It performs the following actions:

  1. Start the next variant of the tested service.
  2. Tear up the testing cluster (Elasticsearch, Kibana, Package Registry).
  3. Install the package using the Kibana API.
  4. Start the agent using the provided configuration file.
  5. Wait for logs/metrics and compare results with the document in the database.
  6. Verify that all fields in the document are documented.
  7. Tear down the testing cluster.

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions