[openstack-dev] [qa] [api] [all] gabbi-tempest for integration tests

Chris Dent cdent+os at anticdent.org
Mon Oct 29 20:30:40 UTC 2018


Earlier this month I produced a blog post on something I was working
on to combine gabbi (the API tester used in placement, gnocchi,
heat, and a few other projects) with tempest to create a simple two
step process for having some purely YAML-driven and HTTP API-based
of any project that can test with tempest. That blog posting is at:

    https://anticdent.org/gabbi-in-the-gate.html

I've got it working now and the necessary patches have merged in
tempest and gabbi-tempest is now part of openstack's infra.

A pending patch in nova shows how it can work:

    https://review.openstack.org/#/c/613386/

The two steps are:

* Add a new job in .zuul.yaml with a parent of 'gabbi-tempest'
* Create some gabbi YAML files containing tests in a directory
   named in that zuul job.
* Profit.

There are a few different pieces that have come together to make
this possible:

* The magic of zuul v3, local job config and job inheritance.
* gabbi: https://gabbi.readthedocs.io/
* gabbi-tempest: https://gabbi-tempest.readthedocs.io/ and
   https://git.openstack.org/cgit/openstack/gabbi-tempest
   and the specific gabbi-tempest zuul job:
   https://git.openstack.org/cgit/openstack/gabbi-tempest/tree/.zuul.yaml#n11
* tempest plugins and other useful ways of getting placement to run
   in different ways

I hope this is useful for people. Using gabbi is a great way to make
sure that your HTTP API is usable with lots of different clients and
without maintaining a lot of state.

Let me know if you have any questions or if you are interested in
helping to make gabbi-tempest more complete and well documented.
I've been approving my own code the past few patches and that feels
a bit dirty.

-- 
Chris Dent                       ٩◔̯◔۶           https://anticdent.org/
freenode: cdent                                         tw: @anticdent


More information about the OpenStack-dev mailing list