{ "info": { "author": "Johanderson Mogollon", "author_email": "johanderson@mogollon.com.ve", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development" ], "description": "|build status| |coverage status| |pypi package|\n\nAIOload\n=======\n\nLoad test tool using aiosonic_ http client. for drawing charts we\nuse matplotlib and pandas.\n\nUsage of uvloop is highly recommended, it gave me between 20% and 25% of increased speed.\n\nRequirements\n============\n\n- python>=3.6\n\nInstallation\n============\n\n.. code:: bash\n\n pip install aioload\n # optional, highly recommended\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 > 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 > 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\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/sonic182/aioload", "keywords": "testing loadtest load", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "aioload", "package_url": "https://pypi.org/project/aioload/", "platform": "", "project_url": "https://pypi.org/project/aioload/", "project_urls": { "Homepage": "https://github.com/sonic182/aioload" }, "release_url": "https://pypi.org/project/aioload/0.3.0/", "requires_dist": [ "aiosonic (==0.1.0)", "cycler (==0.10.0)", "kiwisolver (==1.1.0)", "matplotlib (<=3.1.1)", "numpy (==1.17.0)", "pandas (==0.25.0)", "pyparsing (==2.4.2)", "python-dateutil (==2.8.0)", "pytz (==2019.2)", "six (==1.12.0)", "setuptools (==41.0.1)", "aiohttp (==3.5.4) ; extra == 'test'", "async-timeout (==3.0.1) ; extra == 'test'", "atomicwrites (==1.3.0) ; extra == 'test'", "attrs (==19.1.0) ; extra == 'test'", "certifi (==2019.6.16) ; extra == 'test'", "chardet (==3.0.4) ; extra == 'test'", "coverage (==4.5.3) ; extra == 'test'", "coveralls (==1.8.2) ; extra == 'test'", "docopt (==0.6.2) ; extra == 'test'", "entrypoints (==0.3) ; extra == 'test'", "flake8 (==3.7.8) ; extra == 'test'", "idna (==2.8) ; extra == 'test'", "importlib-metadata (==0.18) ; extra == 'test'", "mccabe (==0.6.1) ; extra == 'test'", "more-itertools (==7.1.0) ; extra == 'test'", "multidict (==4.5.2) ; extra == 'test'", "packaging (==19.0) ; extra == 'test'", "pluggy (==0.12.0) ; extra == 'test'", "py (==1.8.0) ; extra == 'test'", "pycodestyle (==2.5.0) ; extra == 'test'", "pyflakes (==2.1.1) ; extra == 'test'", "pyparsing (==2.4.0) ; extra == 'test'", "pytest-aiohttp (==0.3.0) ; extra == 'test'", "pytest-asyncio (==0.10.0) ; extra == 'test'", "pytest-cov (==2.7.1) ; extra == 'test'", "pytest-flake8 (==1.0.4) ; extra == 'test'", "pytest-mock (==1.10.4) ; extra == 'test'", "pytest (==5.0.1) ; extra == 'test'", "requests (==2.22.0) ; extra == 'test'", "six (==1.12.0) ; extra == 'test'", "urllib3 (==1.25.3) ; extra == 'test'", "uvloop (==0.12.2) ; extra == 'test'", "wcwidth (==0.1.7) ; extra == 'test'", "yarl (==1.3.0) ; extra == 'test'", "zipp (==0.5.2) ; extra == 'test'" ], "requires_python": "", "summary": "Load test tool", "version": "0.3.0" }, "last_serial": 5646685, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b25d4ecc44ec38b67105971ba9551032", "sha256": "a02f73e2583ec8113474d208641b3a7e556a499b2613560a52f123889d85829c" }, "downloads": -1, "filename": "aioload-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b25d4ecc44ec38b67105971ba9551032", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6134, "upload_time": "2019-06-04T11:01:28", "url": "https://files.pythonhosted.org/packages/d3/52/8912385ee13f522f866137d2d7c813102d00460eccada279b926818e0c05/aioload-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95cbe19df36022c946bd1e6c6a17f358", "sha256": "fe08afca1f8c8d704a73df71763cf5582c593800b4a8a32487b6a1b4331652f0" }, "downloads": -1, "filename": "aioload-0.1.0.tar.gz", "has_sig": false, "md5_digest": "95cbe19df36022c946bd1e6c6a17f358", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6543, "upload_time": "2019-06-04T11:01:30", "url": "https://files.pythonhosted.org/packages/6d/50/85d2dfadd62b9580aa2cec5f6b778d0b3709df170aee7c9487f5b6b94254/aioload-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "551ff791a7c724c79224d26670f0a0d3", "sha256": "a1beb46b3bb9c99cec54cc58e6360a03118c5c13094f1299d0a1dc4c001fefb9" }, "downloads": -1, "filename": "aioload-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "551ff791a7c724c79224d26670f0a0d3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6784, "upload_time": "2019-07-07T08:00:50", "url": "https://files.pythonhosted.org/packages/ee/82/7cd0671c4ec9ac569599b38005a5fabc508d6ad6341ab76faab1a1152565/aioload-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "601a00d313d9238062b199c234d79c6b", "sha256": "e82c1854237fb20365885d97a735e6163f67443685a18c6cca2e2dcf4343283f" }, "downloads": -1, "filename": "aioload-0.2.0.tar.gz", "has_sig": false, "md5_digest": "601a00d313d9238062b199c234d79c6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6911, "upload_time": "2019-07-07T08:00:55", "url": "https://files.pythonhosted.org/packages/3d/d1/6398f6f038e8ff35c8d4573e6b476da9cb735d8562c7c96737d829758dbd/aioload-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "4273f5cfc09ce6697da8d117b17fa1eb", "sha256": "a31e6ef076e0421b0a8f9ca700f4df1be63582e8576efa67dd2877fa9c498cca" }, "downloads": -1, "filename": "aioload-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4273f5cfc09ce6697da8d117b17fa1eb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6926, "upload_time": "2019-07-07T09:01:19", "url": "https://files.pythonhosted.org/packages/aa/ab/0e78ef04489cb3758e4adbf445a024fd378d04f26d66ce7b6d28b9a1014e/aioload-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a8f1af11930cf80b8fa0cbb63cd51471", "sha256": "a02a9072e7524533b645b1e54af73beea2757a9f30924390e681fe93614b7743" }, "downloads": -1, "filename": "aioload-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a8f1af11930cf80b8fa0cbb63cd51471", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7029, "upload_time": "2019-07-07T09:01:48", "url": "https://files.pythonhosted.org/packages/a2/e8/dde9e7e2dc5a74864611aced44f132dc734fb089f5947e4cb98fc4bb4e89/aioload-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "1b4c7effc1dd4d504f1f5ee24f401957", "sha256": "46ab61539aad2607b19ab63d424a4d1a78691ae1195ba64285fbd66a59189d92" }, "downloads": -1, "filename": "aioload-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1b4c7effc1dd4d504f1f5ee24f401957", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7054, "upload_time": "2019-07-08T19:21:33", "url": "https://files.pythonhosted.org/packages/0e/aa/3992655af1f279cfa4a9748f540ec49bfb7fa5a44d19a5020fc66dde6857/aioload-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e5912a923f274f19df5db5a962cc9600", "sha256": "b52ce8beb274fde914faac505de189a2475e960d808e1f225365dfeb7f101744" }, "downloads": -1, "filename": "aioload-0.2.2.tar.gz", "has_sig": false, "md5_digest": "e5912a923f274f19df5db5a962cc9600", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7125, "upload_time": "2019-07-08T19:21:37", "url": "https://files.pythonhosted.org/packages/da/3a/e8e690d355b20a93724323112497314b56c3a669fe504abd292e015a0831/aioload-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "ff69ee6b66f3c7e000fc6306c847ada4", "sha256": "53bbf4b560bad2de9a3fc14cdf498d4eb96a99b85aab2ae467c82b5ba76767ab" }, "downloads": -1, "filename": "aioload-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ff69ee6b66f3c7e000fc6306c847ada4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7072, "upload_time": "2019-07-09T18:15:07", "url": "https://files.pythonhosted.org/packages/a4/89/45374f1479cefc1390033987f0e60a4a2534e5d6e7a76f5466b30d4a188a/aioload-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a0c3a492453d339390da887a96be3c1", "sha256": "a53ab08e6d395e950e31b12b7a078317dc5badd64dec33b9f7497afcf5dc4c5d" }, "downloads": -1, "filename": "aioload-0.2.3.tar.gz", "has_sig": false, "md5_digest": "3a0c3a492453d339390da887a96be3c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7213, "upload_time": "2019-07-09T18:15:09", "url": "https://files.pythonhosted.org/packages/b7/1c/f2da34fd59d0e486230f1a23254c98a88a690857d7687a9e494418ffd72f/aioload-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "4cc713335d69e3dd6adcfa03608a11c7", "sha256": "c4ada10104e045f687c42f9d01fb91870a84aa18318f87196398db6f7e4dff91" }, "downloads": -1, "filename": "aioload-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4cc713335d69e3dd6adcfa03608a11c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7554, "upload_time": "2019-07-22T22:22:17", "url": "https://files.pythonhosted.org/packages/17/48/01908c39c15c537c709cf22969d77027c3d05a24a8a2c4d64bad901871b2/aioload-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b07334726fa2a222bab136ece57fba9c", "sha256": "6fd1b11c37f21f2d1880229d49b15c865f22be5ac7bc15cde8d410142952ffd0" }, "downloads": -1, "filename": "aioload-0.2.4.tar.gz", "has_sig": false, "md5_digest": "b07334726fa2a222bab136ece57fba9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7569, "upload_time": "2019-07-22T22:22:19", "url": "https://files.pythonhosted.org/packages/69/84/509dd94d377de4981198ece7634a0dc83afe1e87647e4904bede0aed05be/aioload-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "105dff0556ca0b1fbfbb4ad9f2c28783", "sha256": "0df7917a80110490ac293a5995b2299cf2d9779e56257203d52f7eb3b37c4ff3" }, "downloads": -1, "filename": "aioload-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "105dff0556ca0b1fbfbb4ad9f2c28783", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7242, "upload_time": "2019-08-07T19:38:54", "url": "https://files.pythonhosted.org/packages/09/1f/2329eb66cb70b25d1749410889c79e7f1e84977e048a32d0a5138f5a52ee/aioload-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aec2dec3eef5aac88c365ffd82742b91", "sha256": "19d98b433679f3c8f771d90d20d6bd612a324eebe9e135ca72f4aaaac89fb3b7" }, "downloads": -1, "filename": "aioload-0.3.0.tar.gz", "has_sig": false, "md5_digest": "aec2dec3eef5aac88c365ffd82742b91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7254, "upload_time": "2019-08-07T19:38:57", "url": "https://files.pythonhosted.org/packages/85/22/567afb85320cc00be497f4ee0d19e605fb3c0f77b7b3708c2943ce83b942/aioload-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "105dff0556ca0b1fbfbb4ad9f2c28783", "sha256": "0df7917a80110490ac293a5995b2299cf2d9779e56257203d52f7eb3b37c4ff3" }, "downloads": -1, "filename": "aioload-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "105dff0556ca0b1fbfbb4ad9f2c28783", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7242, "upload_time": "2019-08-07T19:38:54", "url": "https://files.pythonhosted.org/packages/09/1f/2329eb66cb70b25d1749410889c79e7f1e84977e048a32d0a5138f5a52ee/aioload-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aec2dec3eef5aac88c365ffd82742b91", "sha256": "19d98b433679f3c8f771d90d20d6bd612a324eebe9e135ca72f4aaaac89fb3b7" }, "downloads": -1, "filename": "aioload-0.3.0.tar.gz", "has_sig": false, "md5_digest": "aec2dec3eef5aac88c365ffd82742b91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7254, "upload_time": "2019-08-07T19:38:57", "url": "https://files.pythonhosted.org/packages/85/22/567afb85320cc00be497f4ee0d19e605fb3c0f77b7b3708c2943ce83b942/aioload-0.3.0.tar.gz" } ] }