How to use OpenStack Tempest to test my deployments
OpenStack Tempest is a tool that allows developers and users to test the Open Source Cloud platform, taking into account its specificities.
With a component architecture, testing OpenStack involves performing tests at different levels. For this, Tempest offers three different models, each with its own rules and best practices: API, Scenario and Unit.
The test on APIs is mostly about developers. It is designed to test the operation of the platform’s programming interfaces. The Scenario test, meanwhile, targets more complex tests with paths defined in OpenStack that involve several components of the platform. It guarantees that these are well integrated and work together. Finally, Unit is actually a test procedure of Tempest itself. He will check that the tool is working normally.
For each of these tests, OpenStack Tempest provides a dedicated client that eliminates Python clients for OpenStack. This allows the tool to provide features that are essential for testing, but are not included in the classic Python client – starting with data collection.
Test specific OpenStack workflows
Of the three tests, Scenario is the one most likely to appeal to OpenStack administrators . It allows them to test a typical OpenStack workflow, such as the different steps required to deploy a virtual machine. The process involves uploading an image (glance), deploying an instance from that image, connecting to the guest, and creating a snapshot of the VM.
OpenStack Tempest provides a framework to easily create such tests. However, it is necessary, upstream, to clearly define the scope of the tests in question.
The above example is an easy procedure to apply in a test because the OpenStack components that come into play are clearly identified and their interactions specified. But things can get more complicated if, for example, you have to run tests to see if a data center is fully operational. This form of testing will be difficult to implement with Tempest because the components involved are not identified.