Skip to main content

Run Gabbi Tests as Tempest Plugin

Project description

Gabbi-tempest is an experimental Tempest plugin that enables testing the APIs of running OpenStack services, integrated with tempest but without needing to write Python. Instead the YAML format provided by gabbi is used to write and evaluate HTTP requests and responses.

Tests are placed in YAML files in one or more directories. Those directories are added to a GABBI_TEMPEST_PATH environment variable. When that variable is passed into a tempest test runner that is aware of the gabbi plugin, the files on that path will be used to create tempests tests.

The test harness sets a series of enviornment variables that can be used in the YAML to reach the available services. The available variables may be extended in two ways:

  • Adding them to the environment that calls tempest if the values are known.

  • Setting them in a subclass of the plugin if the values need to be calculated from what tempest knows.

For each service in the service catalog there are <SERVICE_TYPE>_SERVICE and <SERVICE_TYPE>_BASE variables (e.g., PLACEMENT_SERVICE and PLACEMENT_BASE). A useful SERVICE_TOKEN, IMAGE_REF, FLAVOR_REF and FLAVOR_REF_ALT are also available.

For the time being the SERVICE_TOKEN is admin.

Trying It

To experiment with this you need a working tempest installation and configuration. One way to do that is to use devstack with the following added to the local.conf:

enable_service tempest
INSTALL_TEMPEST=True

in local.conf.

Once tempest is confirmed to be working, gabbi-tempest must be installed. Either install it from PyPI:

pip install gabbi-tempest

Or make a clone of this repo, cd into it, and do the equivalent of:

pip install -e .

If you are using virtualenvs or need sudo, your form will be different.

Create some gabbi tests that exercise the OpenStack services. There are sample files in the samples directory in the repo.

Go to the tempest directory (often /opt/stack/tempest) and run tempest as follows. Adding the regex will limit the test run to just gabbi related tests:

GABBI_TEMPEST_PATH=/path/one:/path/two tempest run --regex gabbi

This will run the tests described by the YAML files in /path/one and /path/two.

History

This code is based on the work of Mehdi Abaakouk who made a tempest plugin for gnocchi that worked with gabbi. He figured out the details of the plugin structure.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gabbi-tempest-0.1.1.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

gabbi_tempest-0.1.1-py2.py3-none-any.whl (9.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file gabbi-tempest-0.1.1.tar.gz.

File metadata

File hashes

Hashes for gabbi-tempest-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8de2205cd712b55d8cf46a0470f685dd89e174c68251cf72df66edd3e21db6a4
MD5 3c0d3b5fb0f143bb7d8d010cc27cf58f
BLAKE2b-256 f4c5cf3f2e1953fc62c7637ba876ad0e5c3a6af4f475e16019bf827870bc041d

See more details on using hashes here.

Provenance

File details

Details for the file gabbi_tempest-0.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for gabbi_tempest-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e0edf0ba63606e095e20a80b8e5dc88023eea4b0a15a9ab4775e1dc4ec3f7bfc
MD5 85fa11d7593a7e9577a2e6bcd78a31d2
BLAKE2b-256 9cbe9e88c6b61d1d5f20a3583879400815957f6287511be4e0bd107d26f7e1e9

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page