mardi 24 juillet 2018

using docker for managing run time environments for tests

Does anyone have any experience using docker for managing run time environments for tests?

I am working on a test suite for an application which is made up of one GUI application and multiple servers. The system has a lot of configurations, but we have few customers. Roughly 20 customers. Due to this it is hard to ensure the system is working correctly for all customers all the time. Customers can have features enabled/disabled, different database implementation and in some cases different servers. Technically most of this is hidden behind interfaces of, but there are cases where actuall behavior is different. As an example, with one group of configurations, an invalid order should be canceled and deleted while with another setup the order should retry the next day before being put in an error backlog.

Because of this I am considering setting up each of the production environments in a docker container and run tests in an environment as close to production as possible. Today we run all test in one environment, and basically ignore things like the example above. We only test on configuration/path. Currently the database is not reset for each test run, so tests have to be written to handle this.

As for how tests are run, we have two systems:

  1. Automated GUI end to end tests

  2. Integration tests where we send a message to a server and validate the output. If the server has any external dependencies to others servers, we mock them.

Some ekstra info:

  1. Windows based

  2. Database heavy application.

  3. Currently the database is not reset for each test run, so tests have to be written to handle this.

Does anyone have any experience with using docker for cases like this?

Aucun commentaire:

Enregistrer un commentaire