{ "info": { "author": "Christopher Lee", "author_email": "christopherlee2012@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "locust auto\n===========\nWhat is it?\n------------\nLocust.io is a load testing framework written in python. Usually to run locust you run a locustfile with your tests, and then go to a web gui to enter your parameters. Your results are then displayed on the page and you have the option to save the test results. Locust does not give you load over time. By using the commandline interface of locust we want to \n\n1. Find out the maximum number of users before reaching max load \n\n2. Run a load test for each increment of users. I.E. If the max number of users is 500 and we want to use 5 steps, a test for 100, 200, 300, 400 ,500 locust users would be run.\n\nwith a single command.\n\nSetup\n------------\nA config.yaml file is required for setting up auto_test script. In case your locustfile requires some environment variables, include them like below.\n\nExample config.yaml::\n\n BASIC_AUTH_USER:\n user\n BASIC_AUTH_PASSWORD:\n pass\n SINGLE_TEST:\n VideoSummaryList\n LARGE_COURSE_TEST:\n mongo\n VERBOSE:\n \"TRUE\"\n\nExample tree::\n\n Repo\n |----auto_test.py\n |----mobile_api\n | |----locustfile\n | |----config.yaml\n\nExample stdout\n--------------\nIn this example below, the commandline we use is::\n\n python auto_test.py --load_time 360 --ramp_up_time 300 --max_users 300 --max_user_hatch_rate 300 \n --steps 12 --directory mobile_api --host=\"http://url-of-the-load-test-env\"\n\nThis test will be using the file in the `directory` called mobile_api against the endpoint set in `host`\n \n`max_users`, along with `max_user_hatch_rate` will determine the point at which the load test will start seeing failures. For example, if the `max_users` is 1000 and `max_user_hatch_rate` is 2, locust will start creating 2 users per second until it either reaches 1000 users or when failures start to occur. In this particular case, by setting them equal to each other, we want the `max_users` to be set at 300. \n    After our `max_users` are determined, the series of tests will be divided into `steps`, 12 in this case. Starting with 25 users (300 `max_users` / 12 `steps`), the `ramp_up_time` determines how long the server should take to spawn the users in seconds. Since the user spawn rate is capped to no less than 1 per second, it the `ramp_up_time` is greater than the number of users, the number of users will be the determining factor. In the case of 25 users and a `ramp_up_time` of 300 seconds, the actual time taken will be 25 seconds. \n \nAfter our users have been spawned, `load_time` determines how long this test should run in seconds. After this test has been completed, the test will now start over with the next set of users which is 50 and so on until the `max_users` has been met. ::\n\n Estimated runtime in minutes: 132\n Current time: 01:10:57 03/16/15 UTC\n Find out the max # of users up to 300 users at a rate of 300 per second\n Status is returned every 2 seconds\n 300 900\n ================================================================\n No failures at max users: 300\n ****************************************************************\n Loadtesting in 12 steps of 25 for 360 seconds each\n Loadtesting with 25 users... All users spawned\n users: 25, RPS: 2.20, 50%: 2100, 66%: 2300, 75%: 2800, 80%: 2800, 90%: 2900, 95%: 2900, 98%: 3000, 99%: 3100, 100%: 3481,\n Loadtesting with 50 users... All users spawned\n users: 50, RPS: 3.90, 50%: 2200, 66%: 2300, 75%: 2900, 80%: 2900, 90%: 2900, 95%: 3000, 98%: 3100, 99%: 3100, 100%: 3271,\n Loadtesting with 75 users... All users spawned\n users: 75, RPS: 5.90, 50%: 2200, 66%: 2400, 75%: 2900, 80%: 2900, 90%: 3000, 95%: 3000, 98%: 3100, 99%: 3200, 100%: 3287,\n Loadtesting with 100 users... All users spawned\n users: 100, RPS: 7.80, 50%: 2400, 66%: 2500, 75%: 3000, 80%: 3000, 90%: 3100, 95%: 3200, 98%: 3300, 99%: 3400, 100%: 3612,\n Loadtesting with 125 users... All users spawned\n users: 125, RPS: 10.50, 50%: 2800, 66%: 3000, 75%: 3200, 80%: 3200, 90%: 3600, 95%: 3900, 98%: 4000, 99%: 4100, 100%: 4389,\n Loadtesting with 150 users... All users spawned\n users: 150, RPS: 12.60, 50%: 3000, 66%: 3200, 75%: 3300, 80%: 3400, 90%: 3700, 95%: 4000, 98%: 4300, 99%: 4400, 100%: 4712,\n Loadtesting with 175 users... All users spawned\n users: 175, RPS: 13.30, 50%: 3300, 66%: 3500, 75%: 3700, 80%: 3800, 90%: 4100, 95%: 4300, 98%: 4500, 99%: 4600, 100%: 5412,\n Loadtesting with 200 users... All users spawned\n users: 200, RPS: 13.90, 50%: 3700, 66%: 4000, 75%: 4200, 80%: 4400, 90%: 4600, 95%: 4800, 98%: 5000, 99%: 5200, 100%: 5850,\n Loadtesting with 225 users... All users spawned\n users: 225, RPS: 0.00, 50%: 4400, 66%: 4700, 75%: 4800, 80%: 4900, 90%: 5200, 95%: 5500, 98%: 5800, 99%: 6000, 100%: 203352,\n Loadtesting with 250 users... All users spawned\n users: 250, RPS: 11.70, 50%: 4650, 66%: 6050, 75%: 7050, 80%: 7550, 90%: 9050, 95%: 10050, 98%: 10550, 99%: 10550, 100%: 11532,\n Loadtesting with 275 users... All users spawned\n users: 275, RPS: 15.80, 50%: 6700, 66%: 8200, 75%: 9750, 80%: 10250, 90%: 11250, 95%: 12250, 98%: 13250, 99%: 13750, 100%: 14433,\n Loadtesting with 300 users... All users spawned\n users: 300, RPS: 11.60, 50%: 16000, 66%: 18500, 75%: 20000, 80%: 21000, 90%: 25500, 95%: 29500, 98%: 32500, 99%: 37000, 100%: 38646,\n ****************************RESULTS****************************\n Actual runtime in minutes: 104\n users, RPS, 50%, 66%, 75%, 80%, 90%, 95%, 98%, 99%, 100%\n 25, 2.20, 2100, 2300, 2800, 2800, 2900, 2900, 3000, 3100, 3481\n 50, 3.90, 2200, 2300, 2900, 2900, 2900, 3000, 3100, 3100, 3271\n 75, 5.90, 2200, 2400, 2900, 2900, 3000, 3000, 3100, 3200, 3287\n 100, 7.80, 2400, 2500, 3000, 3000, 3100, 3200, 3300, 3400, 3612\n 125, 10.50, 2800, 3000, 3200, 3200, 3600, 3900, 4000, 4100, 4389\n 150, 12.60, 3000, 3200, 3300, 3400, 3700, 4000, 4300, 4400, 4712\n 175, 13.30, 3300, 3500, 3700, 3800, 4100, 4300, 4500, 4600, 5412\n 200, 13.90, 3700, 4000, 4200, 4400, 4600, 4800, 5000, 5200, 5850\n 225, 0.00, 4400, 4700, 4800, 4900, 5200, 5500, 5800, 6000, 203352\n 250, 11.70, 4650, 6050, 7050, 7550, 9050, 10050, 10550, 10550, 11532\n 275, 15.80, 6700, 8200, 9750, 10250, 11250, 12250, 13250, 13750, 14433\n 300, 11.60, 16000, 18500, 20000, 21000, 25500, 29500, 32500, 37000, 38646", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/BenjiLee/locustauto", "keywords": null, "license": "Apache2", "maintainer": null, "maintainer_email": null, "name": "locustauto", "package_url": "https://pypi.org/project/locustauto/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/locustauto/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/BenjiLee/locustauto" }, "release_url": "https://pypi.org/project/locustauto/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "Automatically Test with Locust.io", "version": "0.2.1" }, "last_serial": 1555229, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "040a0e0aca96dd869c6e542d024e69e0", "sha256": "59941b0249a4422c169a90a052c48716c29aacaceff699ddc652e4c55fc7b102" }, "downloads": -1, "filename": "locustauto-0.1.0.tar.gz", "has_sig": false, "md5_digest": "040a0e0aca96dd869c6e542d024e69e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6821, "upload_time": "2015-03-26T18:47:25", "url": "https://files.pythonhosted.org/packages/84/6c/cbebbb7549c26c3a23791bf7b0886adc16528e6492c640d9809ca06d5145/locustauto-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ec55760613d443a61603cf6c41afabf2", "sha256": "4d00ef1ca308ce4b0163dd8310cb4c6f735cf5adabce80204c688279e8320fe6" }, "downloads": -1, "filename": "locustauto-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ec55760613d443a61603cf6c41afabf2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6826, "upload_time": "2015-05-20T17:09:33", "url": "https://files.pythonhosted.org/packages/5a/2b/d93529d73e40870e2b747452521b762d775133d03832c8998167725508e9/locustauto-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "feabb4457eab94adf1153e21254492ee", "sha256": "336826c074399b580594176711b371b86fc722f7cb00a59e1aa4ed45279ffded" }, "downloads": -1, "filename": "locustauto-0.2.1.tar.gz", "has_sig": false, "md5_digest": "feabb4457eab94adf1153e21254492ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6899, "upload_time": "2015-05-20T17:13:32", "url": "https://files.pythonhosted.org/packages/37/24/89b85175994928b2ef692ec887037e3e84304e553b89bc343b0b4f7f8e98/locustauto-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "feabb4457eab94adf1153e21254492ee", "sha256": "336826c074399b580594176711b371b86fc722f7cb00a59e1aa4ed45279ffded" }, "downloads": -1, "filename": "locustauto-0.2.1.tar.gz", "has_sig": false, "md5_digest": "feabb4457eab94adf1153e21254492ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6899, "upload_time": "2015-05-20T17:13:32", "url": "https://files.pythonhosted.org/packages/37/24/89b85175994928b2ef692ec887037e3e84304e553b89bc343b0b4f7f8e98/locustauto-0.2.1.tar.gz" } ] }