Skip to main content

Azure Build Status build status coverage status pypi package

AIOload

https://blog.mogollon.com.ve/2020/01/10/load-testing-with-python/

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

Usage of uvloop is highly recommended.

Requirements

  • python>=3.6

Installation

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

Usage

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

[http]
sock_read = 30
sock_connect = 3


[test]
# 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
[params]
token = something

# headers if needed
[headers]
content-type = application/json

usage example

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

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
  -c CONCURRENCY, --concurrency CONCURRENCY
                        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;
./charts.jpg

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

Note

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

Contribute

  1. fork

  2. create a branch feature/your_feature

  3. commit - push - pull request

Dependencies are handled with pip-tools

thanks :)

Download files

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

Source Distribution

aioload-0.4.0.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aioload-0.4.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file aioload-0.4.0.tar.gz.

File metadata

  • Download URL: aioload-0.4.0.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.25.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.7

File hashes

Hashes for aioload-0.4.0.tar.gz
Algorithm Hash digest
SHA256 830f12d010dd8e103098fbc0d8caa77965c83fff35c8723045825b12ca059f19
MD5 565f9b9db32fa5aa5a2372a9beb3af0c
BLAKE2b-256 0363d276408882e7c550884434957cea9249b281fb7a574bb7011474b3c5f740

See more details on using hashes here.

File details

Details for the file aioload-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: aioload-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.25.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.7

File hashes

Hashes for aioload-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 83a2d155379644db7739589ee1bec446f027036c2711f6981881cdc76911ecb3
MD5 7e408e27fbd7790116276736cd862966
BLAKE2b-256 a257dd9694cd3231e6b8689dd5fde025e090fb9bdefb8ea7cebb7a1a6f7c3f19

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 files

0.3.3

2 files

0.3.2

2 files

0.3.0

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page