ETOS (Eiffel Test Orchestration System) is a new test orchestration system which takes away control of how to run and what to run from the system itself and places it into the hands of the relevant engineers.
The idea of having a system dictate what and how to run is finished. Let’s bring back control to the testers.
With ETOS we define how to run tests using recipes and we define what to run with collections of recipes.
|Test Engineer||Test Automation Engineer||System Engineer|
|Create collections||Create recipes||Deploy ETOS|
|Analyze results||Create tests||Infrastructure|
|What to run?||How to run?||Where to run?|
This means that only people who knows how and what to run decide these factors. ETOS will only receive the collection of recipes and execute it accordingly. You can also mix test suites. For instance, let’s say you want to run a “go” unittest and a “python” function test in the same suite, that’s easy to do; just add them to your collection.
This is the strength of ETOS. Relying on the humans to decide what to run, how to run and where to run.
ETOS is a collection of multiple services working together. This repository is a facilitator of versioning, Helm charts and documentation. The services are located in these repositories.
- ETOS Client
- ETOS API
- ETOS Suite Starter
- ETOS Suite Runner
- ETOS Test Runner
- ETOS Environment Provider
- ETOS Library
- ETOS Test Runner Containers
- Generic test suite execution based solely on JSON.
- Mix and match test suites, regardless of programming language.
- Separation of concerns between testers, test automation engineers and system engineers.
- Eiffel protocol implementation.
In order to install ETOS, you need to meet the following requirements.
- First we need to add the Helm repository where the ETOS Helm charts are stored
helm repo add Eiffel registry.nordix.org/eiffel
- Then simply install ETOS using Helm
helm install <name of the ETOS deployments> eiffel/etos --namespace <your kubernetes namespace>
Following the installation step will give you a default configured ETOS deployment. Chances are that the default deployment configuration of ETOS will not work for your Infrastructure. To tailor the deployment to your specific infrastructure you need to create a configuration file and tell Helm to use that file when installing ETOS.
Here is an example of a standard ETOS configuration file that should get most configurations up and running.
global: # This is the URL to the Eiffel Graphql API graphqlServerUrl: http://eiffel-graphql-api.my.cluster-url.com # This is the URL where the deployed ETOS Environment Provider will be available environmentProviderUrl: http://environment-provider.my.cluster-url.com # This is the URL where the deployed ETOS API will be available etosApiUrl: http://etos-api.my.cluster-url.com suite-starter: rabbitMQ: # this is the message queue where suite starter listens for Eiffel queue_name: suite_starter.queue # This is the configuration that should match your rabbitMQ deployment # ETOS needs a rabbitMQ service to be able to subscribe and publish Eiffel events rabbitmqHost: dev-rabbitmq.myhost.com rabbitmqExchange: my.eiffel.exchange rabbitmqPort: "5671" rabbitmqVhost: myvhost rabbitMQ: username: rabbit_user password: rabbit_password # This is the configuration that should match your redis deployment # ETOS uses redis for internal communication and data storage databaseHost: redis.redis.svc.cluster.local databasePort: "26379" redis: password: my_redis_password
If you are having issues, please let us know. There is a mailing list at: firstname.lastname@example.org or just write an Issue.
- Getting started
- Release process
- Code rules
- Code of conduct
- Version 1.23.0
- Version 1.22.0
- Version 1.21.0
- Version 1.20.0
- Version 1.19.0
- Version 1.18.0
- Version 1.17.0
- Version 1.16.2
- Version 1.15.0
- Version 1.14.0
- Version 1.13.0
- Version 1.12.0
- Version 1.11.0
- Version 1.10.0
- Version 1.9.0
- Version 1.8.0
- Version 1.7.0
- Version 1.6.0
- Version 1.5.0
- Version 1.4.0
- Version 1.3.1
- Version 1.3.0
- Version 1.2.0
- Version 1.1.1
- Version 1.1.0
- Version 1.0.0