molotov 2.6
Spiffy load testing tool.

=======
molotov
=======

.. image:: http://readthedocs.org/projects/molotov/badge/?version=latest
   :target: https://molotov.readthedocs.io

.. image:: https://img.shields.io/pypi/pyversions/molotov.svg
   :target: https://molotov.readthedocs.io

.. image:: https://github.com/tarekziade/molotov/actions/workflows/ci.yml/badge.svg?branch=main
   :target: https://github.com/tarekziade/molotov/actions/workflows/ci.yml?query=branch%3Amain



Simple Python 3.7+ tool to write load tests.

Based on `asyncio <https://docs.python.org/3/library/asyncio.html>`_,
Built with `aiohttp <http://aiohttp.readthedocs.io>`_ 3.x

`Full Documentation <https://molotov.readthedocs.io>`_



CHANGELOG
=========

2.6 - 2022-10-21
----------------

- Switch from multiprocessing_on_dill to multiprocess (#139)
- Switched to prompt_toolkit (#148)


2.5 - 2022-09-25
----------------

- Python 3.10 compatibility, drop support for 3.6
- Bump aiohttp from 2.3.10 to 3.7.4 (#132)


2.4 - 2022-01-25
----------------

- Removed aiomeasures (the project is gone). We use aiodogstatsd

2.3 - 2021-08-23
----------------

- Remove multiprocess support on win32 (#130)


2.2 - 2020-12-09
----------------

- now compatible with aiohttp 4.x (#125)
- dropped --disable-dns-resolver. This is aiohttp's job
- added the `get_context` API to attach data to a session
- add the scenario directory in the path (#128)

2.1 - 2020-11-18
----------------

-  Allow the usage of external streams

2.0 - 2020-10-23
----------------

- added the --disable-dns-resolve option (#119)
- fix multiprocessing pickling issues by using dill
- display the max worker in the sizing result (#123)
- add aiodogstatsd (#122)
- added the --single-run option (#124)
- added support for 3.8 & 3.9 in tox/travis-ci
- speed up tests
- dropped support for 3.5


1.6 - 2018-04-05
----------------

- works with aiohttp 2.x or 3.x so Python 3.5.1 can be used (#114)


1.5 - 2018-04-03
----------------

- now runs on aiohttp 3.x (#109)
- make sure we run a proper Python version (#9)
- each process needs to have its own statsd client (#98)
- fixed _run_in_fresh_loop and setup_session() error handling (#100)
- Adde --fail (#105)
- Added --force-shutdown (#107)
- Make internet-based tests optional (#104)

1.4 - 2017-09-26
----------------

- statsd: moved from aiostatsd to aiomeasures
- Added --sizing and --sizing-tolerance (#72)
- Refactored shared counters
- Implemented a shared console (#42)
- Improved shutdown process (#67)
- Refactored fmwk.py (#25)
- Add a way to record requests and responses (#80)
- added --use-extension
- added events
- published tests/examples*.py to the docs (#90)


1.3 - 2017-07-28
----------------

- fixed file-based requests with sessions -vvv option (#73)
- proper managment of the verbose option in moloslave
- added uvloop support (#68)
- added initial PyPy support (#47)
- Added name & @scenario_picker() options (#65)


1.2 - 2017-06-15
----------------

- improved docs
- added delay options (#48)
- added --ramp-up option (#61)
- fix a bug on response display (#62)


1.1 - 2017-06-09
----------------

- added request and json_request helpers (#50)
- added session setup and teardown fixtures (#52)
- added set_var & get_var helpers (#54)
- fixed thhe code generated by molostart (#55)


1.0 - 2017-03-23
----------------

- Initial stable release