OpenStack testing tools¶
With the rapid expansion of OpenStack, a variety of tools have emerged for testing different aspects of OpenStack. However there is currently no unified solution that can test availability, reliability, performance, and scalability of OpenStack infrastructure.
The aim of this SIG is to create self-healing infrastructure, and in order to move in to that direction there is a need for an automated destructive/extreme testing framework for OpenStack infrastructure. As there have already been several projects tackling various parts of the challenge, one goal is to avoid duplication of effort and see how we can take advantage of these already developed tools and come up with a unified solution.
Here is list of tools and the testing features that are provided by those (as of August 2019):
Tools/Features |
Control plane testing |
Data plane testing |
Storage plane testing |
Performance testing |
Scalability testing |
Concurrency testing |
Disruptions/ Failure injection |
OpenStack Deployment |
Report generation |
Active community 1 |
---|---|---|---|---|---|---|---|---|---|---|
Rally (Uses Tempest) |
X |
X |
X |
X |
X |
X |
X |
|||
X |
X |
X |
X |
X |
X |
X |
X |
|||
X |
X |
|||||||||
X |
X |
X |
X |
|||||||
X |
||||||||||
X |
X |
X |
X |
X |
||||||
HA-Failure-Test (Uses Tempest) |
X |
X |
||||||||
X |
X |
X |
X |
|||||||
Browbeat (Uses Rally and Shaker) |
X |
X |
X |
X |
X |
|||||
X |
X |
|||||||||
Enos (Uses Rally and Shaker) |
X |
X |
X |
X |
X |
|||||
X |
X |
|||||||||
Jepsen (not specific to OpenStack) |
X |
X |
||||||||
X |
||||||||||
Stepler (Uses OS-faults) |
X |
|||||||||
X |
X |
X |
X |
X |
||||||
X |
X |
X |
||||||||
Eris (In development) |
X |
X |
X |
X |
X |
X |
X |
- 1
Commits per month: Low<5, Medium<15, High=>15, NA=No Activity
Rally¶
Deployment of OpenStack
Verification of deployment
Benchmarking: Simulate real user load
Profiler for scaling and performance issues
Report generation: Processing and aggregation of results
De-facto control plane performance testing, allows to create different kind of tests including functional, concurrency, regression, load, scale capacity and chaos testing.
Yardstick¶
Deployment
Run compute, storage, network test scenarios using a runner
Report generation with the following metrics:
Performance/Speed
Capacity/Scale
Availability/Reliability
Inspired by Rally, was developed mainly from the prespective of VNF(Virtual Network Function), but is a generic framework for testing scenarios in OpenStack for performance, scalability and availability/reliability.
Tempest¶
Integration testing for live OpenStack
Test OpenStack publicly available API and scenarios that demonstrate a working cloud
Load testing possible as well
Mainly used for integration testing but non-functional testing possible as well.
Shaker¶
Deploy instances and network in different topologies or network configurations using Heat
Run network related test scenarios
Report generation
Network load generation, testing and benchmarking. Based on ‘iperf(3)’ and ‘netperf’ -> network testing topologies.
OS-Faults¶
Library for initiating or terminating service/node/container/network as a way for introducing fault injections.
Allows for both hardware and software level faults
Used by Rally to introduce faults.
KloudBuster¶
Benchmarking of data plane and storage services in OpenStack
A fully integrated framework which is easy to use with basic knowledge of OpenStack.
HA-Failure-Test¶
High Availability testing of OpenStack components
Set of Tempest scripts to test HA of components in HA cluster.
Stop service(s), perform sanity and verify
Cloud99¶
Monintoring: Nodes and services
Disruptions: in services, node, containers can be parallel, sequential or round robin
Runner: Perform actual tests with disruptions
All 3 runs as seperate threads and parallel
Makes use of Rally runner.
Browbeat¶
Performance and scalability testing
Create Rally work loads
Run Shaker for network configuration, benchmarking and testing
CI and deployment: Can be used for CI or deploying data analysis tools.
Harbinger¶
Manager for data plane testing frameworks in OpenStack
Can similtaneously execute multiple testing frameworks (Shaker, Yardstick)
Enos¶
Deployment of OpenStack on VMs or bare metal
Setup with different configurations
Benchmarking:
Rally scenario for control plane
Shaker scenario of data plane
Report generation: Get metrics/reports in Grafana
chaostoolkit-openstack¶
Driver to perform set of actions and probes.
A minimal chaostoolkit driver for OpenStack compute resources.
Jepsen¶
Introduction of disruptions/faults
Testing
Report generation
Checkers for analyzing history
Not specific to OpenStack but general library for distributed systems, written in Clojure.
OPNFV Doctor¶
Fault management and maintenance in VIM(Virtualized Infrastructure Manager) e.g OpenStack
Fault monitoring (Hardware, Hypervisor, Host OS faults)
Fault notification
Failure recovery (Switch to STBY config.)
Stepler¶
Destructive testing
Test the availability of OpenStack cluster incase of node/service failure(s)
Make use of os-faults.
NFVbench¶
Measure network performance in OpenStack
Data plane performance testing
Benchmarking NFVi platforms and packet paths that are critical for NFV workloads
Adjusted more for NFV workloads.