Metadata-Version: 2.4
Name: rally
Version: 5.2.0
Summary: Generic Testing Framework & Tool that unifies all types of testing
Author-email: OpenStack <openstack-discuss@lists.openstack.org>
License: Apache License, Version 2.0
Project-URL: Homepage, https://rally.readthedocs.io/
Project-URL: Issues, https://bugs.launchpad.net/rally
Project-URL: Source, https://opendev.org/openstack/rally
Project-URL: Github, https://github.com/openstack/rally
Project-URL: Changelog, https://github.com/openstack/rally/blob/master/CHANGELOG.rst
Classifier: Environment :: OpenStack
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.11
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: alembic!=1.2.0,!=1.6.3
Requires-Dist: Jinja2
Requires-Dist: jsonschema
Requires-Dist: markupsafe
Requires-Dist: oslo.config!=4.3.0,!=4.4.0
Requires-Dist: oslo.db
Requires-Dist: oslo.log!=3.44.2,!=4.1.2,!=4.2.0,!=5.0.1,!=5.0.2,!=5.1.0
Requires-Dist: packaging!=20.5,!=20.6,!=20.7
Requires-Dist: paramiko>=4.0.0
Requires-Dist: pbr!=2.1.0
Requires-Dist: PrettyTable>=3.12.0
Requires-Dist: pyOpenSSL
Requires-Dist: PyYAML
Requires-Dist: python-subunit
Requires-Dist: requests!=2.20.0,!=2.24.0
Requires-Dist: SQLAlchemy>=2
Requires-Dist: typer>=0.26.0
Requires-Dist: urllib3
Requires-Dist: virtualenv!=16.3.0
Provides-Extra: mysql
Requires-Dist: PyMySQL>=0.9.0; extra == "mysql"
Provides-Extra: postgres
Requires-Dist: psycopg[binary]>=3; extra == "postgres"
Dynamic: license-file

=====
Rally
=====

.. image:: https://img.shields.io/pypi/v/rally.svg
    :target: https://pypi.org/project/rally/
    :alt: Latest Version

.. image:: https://img.shields.io/github/license/openstack/rally.svg
    :target: https://www.apache.org/licenses/LICENSE-2.0
    :alt: Apache License, Version 2.0

Rally is a tool for testing how a system behaves under load. You describe
what to do, how hard to push and what counts as success in a task file.
Rally runs it, measures every iteration, keeps the results and turns them
into reports.

The Rally core has no code for any particular system; plugins connect it to
one. OpenStack support comes from the `rally-openstack`_ package, a few
generic plugins (for example, HTTP requests) ship with Rally itself, and you
can write plugins for your own services.

Features
========

* Load tests with clear pass or fail criteria (SLA), so a task can gate a
  CI pipeline.
* Verification: runs an existing test suite such as Tempest against an
  environment and compares the results with earlier runs.
* History: every result is kept in a `database`_.
* Reports: interactive HTML, trends across many runs, JSON, JUnit XML and
  Elasticsearch export.
* Plugins for everything: platforms, scenarios, runners, contexts, SLA
  criteria, hooks, exporters and verifiers. Write your own or install a
  plugin package.

Quick start
===========

No cloud needed: this task sends HTTP requests to a website and checks that
every response is successful and fast enough.

.. code-block:: console

    $ pip install rally
    $ rally db create
    $ rally env create --name local
    $ cat > task.yaml << EOF
    ---
    version: 2
    title: My first task
    subtasks:
      - title: Check that example.com responds
        scenario:
          HttpRequests.check_request:
            url: https://www.example.com
            method: GET
            status_code: 200
        runner:
          constant:
            times: 20
            concurrency: 4
        sla:
          failure_rate:
            max: 0
          max_seconds_per_iteration: 2
    EOF
    $ rally task start task.yaml
    $ rally task report --out report.html

To test an OpenStack cloud, install ``rally-openstack`` and follow the
`tutorial`_.

Links
=====

* Documentation: https://rally.readthedocs.io/latest/ (also published at
  https://docs.openstack.org/rally/latest/)
* Release notes:
  https://opendev.org/openstack/rally/src/branch/master/CHANGELOG.rst
* Source: https://opendev.org/openstack/rally
* Bugs: https://bugs.launchpad.net/rally
* Contributing:
  https://opendev.org/openstack/rally/src/branch/master/CONTRIBUTING.rst
* OpenStack plugins: https://opendev.org/openstack/rally-openstack
* License: Apache License, Version 2.0

.. _rally-openstack: https://pypi.org/project/rally-openstack/
.. _database: https://rally.readthedocs.io/latest/install.html#database
.. _tutorial: https://rally.readthedocs.io/latest/quick_start/tutorial.html
