Skip to main content

Load test tool

Project description

Azure Build Status build status coverage status pypi package


Load test tool using aiosonic http client. For drawing charts we use matplotlib and pandas.

Usage of uvloop is highly recommended.


  • python>=3.6


pip install aioload
# optional, highly recommended, doesn't work on Windows
pip install uvloop


you need to specify your request in a settings file like config.ini

sock_read = 30
sock_connect = 3

# target url for test
url = http://localhost:8080/api/v1/something
# methods: get, post, put, delete
method = post
# use body for send body in request
# if body is json, indicate correct header in headers section
# comment body line if you're doing a get request
body = '{"foo": "bar"}'

# query params if needed, this will transform url
# in something like http://localhost:8080/api/v1/something?token=something
token = something

# headers if needed
content-type = application/json

usage example

> aioload -h
usage: aioload [-h] [-d] [-v] [-n NUMBER_OF_REQUESTS] [-c CONCURRENCY]

positional arguments:
  testfile              Test file to be executed

optional arguments:
  -h, --help            show this help message and exit
  -d, --debug           true if present
  -v, --verbose         true if present
  -n NUMBER_OF_REQUESTS, --number_of_requests NUMBER_OF_REQUESTS
                        number of requests to be done, default: 100
                        concurrency (requests at the same time), default: 10
  --plot                draw charts if present

> aioload config.ini -n 3000 -c 100 --plot -v
2019-05-29 17:20:51,662 - __init__:135 - info - 8cf56ded860f41d8a86dab2aed05218f - starting script... -
2019-05-29 17:20:55,301 - __init__:102 - info - 8cf56ded860f41d8a86dab2aed05218f - done - min=14.54ms; max=212.21ms; mean=109.36ms; req/s=600.0; req/q_std=333.7; stdev=24.65; codes.200=3000; concurrency=100; requests=3000;

You can override aioload runner methods, here is an example. Then you should execute the script you made, in this example: python sample/ conf.ini -v


Python has limits, if your applications is crazy fast like this crystal server, the test will be limited by aiosonic’s client speed.


  1. fork
  2. create a branch feature/your_feature
  3. commit - push - pull request

Dependencies are handled with pip-tools

thanks :)

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for aioload, version 0.4.0
Filename, size File type Python version Upload date Hashes
Filename, size aioload-0.4.0-py3-none-any.whl (7.5 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size aioload-0.4.0.tar.gz (7.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page