Stress Testing of existing cloud using Tempest
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
ghanshyam 7009882d59 add config files path options 5 years ago
doc/source Initial commit for stress framework from tempest 5 years ago
tempest_stress add config files path options 5 years ago
.gitignore Initial commit 6 years ago
AUTHORS add config files path options 5 years ago
CONTRIBUTING.rst Initial commit for stress framework from tempest 5 years ago
ChangeLog add config files path options 5 years ago
HACKING.rst Initial commit for stress framework from tempest 5 years ago
LICENSE Initial commit for stress framework from tempest 5 years ago
MANIFEST.in Initial commit for stress framework from tempest 5 years ago
README.rst Update README.rst 5 years ago
babel.cfg Initial commit for stress framework from tempest 5 years ago
requirements.txt Fix more import 5 years ago
setup.cfg Fix config optins registration 5 years ago
setup.py Initial commit for stress framework from tempest 5 years ago
test-requirements.txt Initial commit for stress framework from tempest 5 years ago
tox.ini Initial commit for stress framework from tempest 5 years ago

README.rst

Tempest Field Guide to Stress Tests

OpenStack is a distributed, asynchronous system that is prone to race condition bugs. These bugs will not be easily found during functional testing but will be encountered by users in large deployments in a way that is hard to debug. The stress test tries to cause these bugs to happen in a more controlled environment.

Stress tests are designed to stress an OpenStack environment by running a high workload against it and seeing what breaks. The stress test framework runs several test jobs in parallel and can run any existing test in Tempest as a stress job.

Environment

This particular framework assumes your working Nova cluster understands Nova API 2.0. The stress tests can read the logs from the cluster. To enable this you have to provide the hostname to call 'nova-manage' and the private key and user name for ssh to the cluster in the [stress] section of tempest.conf. You also need to provide the location of the log files:

target_logfiles = "regexp to all log files to be checked for errors" target_private_key_path = "private ssh key for controller and log file nodes" target_ssh_user = "username for controller and log file nodes" target_controller = "hostname or ip of controller node (for nova-manage) log_check_interval = "time between checking logs for errors (default 60s)"

To activate logging on your console please make sure that you activate use_stderr in tempest.conf or use the default logging.conf.sample file.

Running default stress test set

Configuration

To Run stress tests, two configuration files are needed:

  1. tempest.conf - As per Tempest configuration guidlines
  2. stress_tests.conf - same location as tempest.conf

later one is being used to define all config options specific to stress tests.

Run:

The stress test framework can automatically discover test inside the tempest test suite. All test flag with the @stresstest decorator will be executed. In order to use this discovery you have to install tempest CLI, be in the tempest root directory and execute the following:

tempest run-stress -a -d 30

Running the sample test

To test installation, do the following:

tempest run-stress -t tempest/stress/etc/server-create-destroy-test.json -d 30

This sample test tries to create a few VMs and kill a few VMs.

Additional Tools

Sometimes the tests don't finish, or there are failures. In these cases, you may want to clean out the nova cluster. We have provided some scripts to do this in the tools subdirectory. You can use the following script to destroy any keypairs, floating ips, and servers:

tempest/stress/tools/cleanup.py