The aim of Tempest has been from the start to provide a set of integration test for OpenStack; however Tempest scope have evolved in time: it used to be mostly targeted to devstack - now it is ran against OpenStack production deployment as well - often to validate interoperability as defined by DefCore. Tempest used to encompass tests for all of the OpenStack projects; since the “Big Tent” was introduced, it aims to cover only six core services, and it exposes external interfaces for all other projects. These changes have caused the code base to grow rather organically while it adapted to the new needs.
During the Liberty and Mitaka cycle we have defined stable interfaces in Tempest, so that maintainers of OpenStack projects may produce integration tests in a "Tempest plugin”.
This talk will cover the work which has been done on Tempest and Tempest-Lib to define stable interfaces. It will also provide examples on how to consume them to produce a plugin for Tempest.
This talk will provide an overview of the stable interfaces available, an understanding of what they can be used for and how they fit together. The talk won’t get into the details of the code, but it will provide references to existing implementations.