OpenStack Testing (Tempest) of an existing cloud
Go to file
Balazs Gibizer dfb304355b Introduce @serial test execution decorator
Tempest provides a LockFixture to avoid two potentially interfering
tests to run in parallel. However, this solution does not scale when
we want to separate a set of tests from many other test cases. For
example, host aggregate and availability zone testing needs compute
hosts without any nova servers to be able to test moving computes
between aggregates but a lot of other tests are creating nova
servers. To fully separate these aggregate tests from the rest of
the tempest test cases, this patch proposes a @serial class decorator
to mark a test class to be run totally independently of any other test
classes.

Under the hood, the @serial decorator is implemented with a tempest-wide
interprocess read-write lock. The serial test classes always take the
write lock, while the non-serial classes take the read lock. The lock
allows in many readers OR a single writer. So the serial tests are run
independently from the rest.

To minimize the time a serial test blocks other tempest tests run in
parallel, this patch also introduced a serial_tests test directory to
store the serial tests. The current test ordering in a fresh env
uses alphabetical order so the serial tests will run at the end of
the execution not randomly in the middle. The gate uses fresh VMs
for every run so we can rely on this optimization there. In local
envs where tests are re-run, the subsequent runs will be ordered at
runtime by stestr. Therfore, a longer runtime might be observed due to
locking, but the correctness of the test execution is still kept.

Related-Bug: #821732
Change-Id: I0181517edab75f586464a38c4811417f888783b1
2023-01-18 02:45:43 +00:00
doc Introduce @serial test execution decorator 2023-01-18 02:45:43 +00:00
etc Merge "Inclusive jargon" 2021-02-09 22:33:47 +00:00
playbooks Add support for ecdsa keys 2022-01-18 15:25:38 +00:00
releasenotes Add release notes page for version 33.0.0 2022-12-27 01:47:18 +00:00
roles Remove references to 'all-plugin' tox environment 2022-10-10 14:01:49 +02:00
tempest Introduce @serial test execution decorator 2023-01-18 02:45:43 +00:00
tools Add LUKS v2 tests 2022-06-29 22:42:22 +00:00
zuul.d Merge "zuul: Increase timeout for c9s-fips job" 2023-01-05 13:44:41 +00:00
.coveragerc Remove the NegativeAutoTest Framework 2016-10-13 10:32:53 +02:00
.gitignore Add index page for plugins documents 2020-05-05 02:12:05 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:29:35 +00:00
.mailmap Update .mailmap for ghanshyam emails 2018-09-05 08:45:46 +00:00
.stestr.conf Switch Tempest CLI commands from testrepository to stestr 2018-02-13 08:16:33 +00:00
CONTRIBUTING.rst [ussuri][goal] Update contributor documentation 2020-04-19 17:44:59 -05:00
HACKING.rst Introduce @serial test execution decorator 2023-01-18 02:45:43 +00:00
LICENSE Add License to Tempest. 2012-04-12 16:04:36 +02:00
README.rst Add PDF building 2019-09-11 16:42:28 +09:00
REVIEWING.rst Change Review merge policy from two +2 to single +2 requirement 2021-02-03 16:50:34 -06:00
bindep.txt Add py310 job in gate 2022-06-03 14:56:50 -05:00
requirements.txt Introduce @serial test execution decorator 2023-01-18 02:45:43 +00:00
setup.cfg Fix python classifier for py39 2022-11-23 14:33:00 -06:00
setup.py [ussuri][goal] Drop python 2.7 support and testing 2020-02-12 00:11:31 +00:00
test-requirements.txt Use unittest.mock instead of third party mock 2020-05-17 17:22:58 +00:00
tox.ini Introduce @serial test execution decorator 2023-01-18 02:45:43 +00:00

README.rst

Team and repository tags

image

Tempest - The OpenStack Integration Test Suite

This is a set of integration tests to be run against a live OpenStack cluster. Tempest has batteries of tests for OpenStack API validation, scenarios, and other specific tests useful in validating an OpenStack deployment.

Get in touch via email. Use [tempest] in your subject.