{"id":25536497,"url":"https://github.com/sonic182/aioload","last_synced_at":"2025-07-31T12:06:20.628Z","repository":{"id":37617472,"uuid":"189037294","full_name":"sonic182/aioload","owner":"sonic182","description":"Utility to do some load tests","archived":false,"fork":false,"pushed_at":"2023-01-27T04:06:47.000Z","size":319,"stargazers_count":7,"open_issues_count":22,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-23T00:11:41.329Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sonic182.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-05-28T13:48:08.000Z","updated_at":"2023-08-24T08:35:14.000Z","dependencies_parsed_at":"2023-02-15T05:01:39.243Z","dependency_job_id":null,"html_url":"https://github.com/sonic182/aioload","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/sonic182/aioload","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonic182%2Faioload","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonic182%2Faioload/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonic182%2Faioload/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonic182%2Faioload/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonic182","download_url":"https://codeload.github.com/sonic182/aioload/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonic182%2Faioload/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268035792,"owners_count":24185099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-20T04:36:17.083Z","updated_at":"2025-07-31T12:06:19.371Z","avatar_url":"https://github.com/sonic182.png","language":"Python","funding_links":[],"categories":["Recursos para poner a pruebas sistemas"],"sub_categories":["Otras bibliotecas útiles"],"readme":"|Azure Build Status| |build status| |coverage status| |pypi package|\n\n\nAIOload\n=======\n\nhttps://blog.mogollon.com.ve/2020/01/10/load-testing-with-python/\n\nLoad test tool using aiosonic_ http client. For drawing charts we\nuse matplotlib and pandas.\n\nUsage of uvloop is highly recommended.\n\nRequirements\n============\n\n-  python\u003e=3.6\n\nInstallation\n============\n\n.. code:: bash\n\n  pip install aioload\n  # optional, highly recommended, doesn't work on Windows\n  pip install uvloop\n\nUsage\n=====\n\nyou need to specify your request in a settings file like **config.ini**\n\n.. code:: ini\n\n   [http]\n   sock_read = 30\n   sock_connect = 3\n\n\n   [test]\n   # target url for test\n   url = http://localhost:8080/api/v1/something\n   # methods: get, post, put, delete\n   method = post\n   #\n   # use body for send body in request\n   # if body is json, indicate correct header in headers section\n   # comment body line if you're doing a get request\n   body = '{\"foo\": \"bar\"}'\n\n   # query params if needed, this will transform url\n   # in something like http://localhost:8080/api/v1/something?token=something\n   [params]\n   token = something\n\n   # headers if needed\n   [headers]\n   content-type = application/json\n\nusage example\n\n.. code:: bash\n\n   \u003e aioload -h\n   usage: aioload [-h] [-d] [-v] [-n NUMBER_OF_REQUESTS] [-c CONCURRENCY]\n                  [--plot]\n                  testfile\n   \n   positional arguments:\n     testfile              Test file to be executed\n   \n   optional arguments:\n     -h, --help            show this help message and exit\n     -d, --debug           true if present\n     -v, --verbose         true if present\n     -n NUMBER_OF_REQUESTS, --number_of_requests NUMBER_OF_REQUESTS\n                           number of requests to be done, default: 100\n     -c CONCURRENCY, --concurrency CONCURRENCY\n                           concurrency (requests at the same time), default: 10\n     --plot                draw charts if present\n\n   \u003e aioload config.ini -n 3000 -c 100 --plot -v\n   2019-05-29 17:20:51,662 - __init__:135 - info - 8cf56ded860f41d8a86dab2aed05218f - starting script... -\n   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;\n\n.. figure:: ./charts.jpg\n\n\nYou 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``\n\n\n\nNote\n====\n\nPython has limits, if your applications is crazy fast like this_ crystal server, the test will be limited by aiosonic's client speed.\n\n\nContribute\n==========\n\n1. fork\n2. create a branch ``feature/your_feature``\n3. commit - push - pull request\n\nDependencies are handled with pip-tools_\n\nthanks :)\n\n.. _this: ./sample/server.cr\n.. _aiosonic: https://github.com/sonic182/aiosonic\n.. _here: https://github.com/sonic182/aioload/blob/master/sample/dynamic_test.py\n.. _pip-tools: https://github.com/jazzband/pip-tools\n.. |build status| image:: https://travis-ci.org/sonic182/aioload.svg?branch=master\n   :target: https://travis-ci.org/sonic182/aioload\n.. |coverage status| image:: https://coveralls.io/repos/github/sonic182/aioload/badge.svg?branch=master\n   :target: https://coveralls.io/github/sonic182/aioload?branch=master\n.. |pypi package| image:: https://badge.fury.io/py/aioload.svg\n    :target: https://badge.fury.io/py/aioload\n.. |Azure Build Status| image:: https://dev.azure.com/johander-182/aioload/_apis/build/status/sonic182.aioload?branchName=master\n   :target: https://dev.azure.com/johander-182/aioload/_build/latest?definitionId=3\u0026branchName=master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonic182%2Faioload","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonic182%2Faioload","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonic182%2Faioload/lists"}