Skip to content

Latest commit

 

History

History
1834 lines (1459 loc) · 152 KB

CHANGELOG.md

File metadata and controls

1834 lines (1459 loc) · 152 KB

Changelog

1.6.0 (2021-06-26)

Full Changelog

Fixed bugs:

  • status "stopped" instead of "spawning", tick() method of LoadShape called only once #1762

Closed issues:

  • Allow master node to supply data to worker nodes directly #1780

Merged pull requests:

  • Add CORS functionality to Locust #1793 (KasimAhmic)
  • Make FastHttpUser use the same name for request_meta as HttpUser (no leading underscore) #1788 (cyberw)
  • Ensure that the exception dictionaries are not mutated when generating a html report #1784 (mboutet)
  • Allow cross process communication using custom messages #1782 (nathan-beam)
  • modified check_stopped condition #1769 (stanislawskwark)

1.5.3 (2021-05-17)

Full Changelog

Merged pull requests:

1.5.2 (2021-05-12)

Full Changelog

Fixed bugs:

  • Locust stopped working after Flast 2.0 got released #1759
  • GRPC compatibility : Locust load test throws greenlet.GreenletExit exception on reaching test time limit #1676

Merged pull requests:

1.5.1 (2021-05-04)

Full Changelog

Merged pull requests:

  • remove accidentally added start_time parameter to request event #1754 (cyberw)

1.5.0 (2021-05-04)

Full Changelog

Merged pull requests:

  • Add response object to request event #1752 (cyberw)
  • Updated request event with context and deprecate request_failure/success #1750 (DennisKrone)

1.4.4 (2021-04-04)

Full Changelog

Fixed bugs:

  • self.quit() fails test doesn't stop #1726
  • LoadTestShape run_time broken when using test_start and test_stop decorators #1718
  • Distributed test stopped despite workers running #1707
  • Charts not working well in version 1.4.2 #1690

Closed issues:

  • A simple TypeError(str + int) in runners.py #1737
  • Dwell-time based load shape testing #1715

Merged pull requests:

  • Fix test issue probably caused by updated configargparse version. #1739 (cyberw)
  • Call shape_class.reset_time() after test_start event so that tick time is correct #1738 (max-rocket-internet)
  • Ensure runner.quit finishes even when users are broken #1728 (cyberw)
  • make runner / user count available to LoadTestShape #1719 (msarahan)
  • Fix typo in ~examples/dynamic_user_credentials.py #1714 (luke-h1)
  • Fix automatic distributed test shutdown #1710 (enote-kane)
  • fix type hinting on Events #1705 (mrijken)
  • updated double wave load shape docs to reflect peak times #1698 (pranavgupta1234)
  • add LoadTestShape to __all__ in order to fix warning "'LoadTestShape'… #1696 (amitwer)

1.4.3 (2021-01-28)

Full Changelog

Merged pull requests:

  • fix stats values for chart tooltips #1691 (aek)

1.4.2 (2021-01-26)

Full Changelog

Fixed bugs:

  • Report charts plot data points after the test has ended #1677
  • SetConsoleMode throws an error when locust is run from Jenkins Powershell #1654
  • locust should exit when a load shape returns None in headless mode #1653
  • test_stop is fired twice when Locust is running in –master/worker mode #1638

Closed issues:

  • currently locust is supporting for stas, failures, stas history in csv format while running without web #1673
  • /swarm web endpoint should not require user_count and spawn_rate when shape_class is used #1670
  • Show legends on charts #1651

Merged pull requests:

  • Verify docker build & create PyPI releases through Github Actions when tags are pushed #1687 (heyman)
  • Use Github Actions for CI #1686 (heyman)
  • Shutdown workers when using LoadTestShape and headless mode #1683 (max-rocket-internet)
  • Stats charts data persistance #1681 (aek)
  • Fix issues with render_template #1680 (aek)
  • Improve stats data sharing from python to js #1679 (aek)
  • Feature chart sync #1678 (aek)
  • Feature stats exceptions csv #1674 (aek)
  • /swarm adjusted for tests with shape class #1671 (stanislawskwark)
  • Fix a typo #1665 (atktng)
  • Feature chart tooltip custom values - show user count #1658 (aek)
  • Check if running from a tty on windows #1657 (DennisKrone)
  • Bump Echarts version to show charts legends #1655 (aek)
  • Add example that manually adds stats entries #1645 (heyman)
  • Use SASS for CSS styling + UI improvements #1644 (heyman)
  • Fix bug causing test_stop event to be fired twice in master node #1641 (heyman)
  • Added --html option to save HTML report #1637 (rloomans)

1.4.1 (2020-11-16)

Full Changelog

Fixed bugs:

  • Locust docker version 1.4.0 using 100% CPU on idle #1629

Merged pull requests:

  • Fix 100% cpu usage when running in docker/non-tty terminal #1631 (DennisKrone)

1.4.0 (2020-11-13)

Full Changelog

Closed issues:

  • Control user count from terminal #1600
  • Introduce sensible default settings for run time #1598
  • Make wait_time default to zero (vote up/down for this ticket please :) #1308

Merged pull requests:

  • Improve logging about users spawned/stopped #1628 (cyberw)
  • Make zero wait time the default #1626 (cyberw)
  • Make infinite run time the default when running headless #1625 (cyberw)
  • issue-1571 : Added a logging line when workers connect #1617 (zdannar)
  • Add key commands for increasing and stopping users #1612 (DennisKrone)

1.3.2 (2020-11-03)

Full Changelog

Merged pull requests:

1.3.1 (2020-10-15)

Full Changelog

1.3.0 (2020-10-12)

Full Changelog

Fixed bugs:

  • After starting and then stopping a load test, master is updating state in a loop #1577
  • Misleading log message in distributed mode #1572
  • LoadTestShape.get_run_time is not relative to start of test #1557
  • On Stop causes the task to continue #1552

Closed issues:

  • Remove step load feature now that LoadTestShape is possible? #1575
  • Add ability to easily extend Locust web UI #1530
  • Type hinting for common functions #1260

Merged pull requests:

1.2.3 (2020-08-28)

Full Changelog

Fixed bugs:

  • Unable to install packages using pip #1548
  • Cant start: Werkzeug: TypeError: code() takes at least 14 arguments (13 given) #1545
  • use_as_lib.py example getting stuck when running #1542
  • Locust stuck in "Shape worker starting" when restarting a test from the webUI #1540

Closed issues:

  • Let's fix code to be PEP8 compliant? #1489

Merged pull requests:

1.2.2 (2020-08-22)

Full Changelog

Merged pull requests:

1.2.1 (2020-08-20)

Full Changelog

Fixed bugs:

  • ValueError: StatsEntry.use_response_times_cache must be set to True #1531

Merged pull requests:

1.2 (2020-08-19)

Full Changelog

Fixed bugs:

  • Excessive precision of metrics in losust csv stats #1501
  • WorkerRunner spawns heartbeat before setting worker_state #1500
  • Negative min_response_time shown in stats #1487
  • Unhandled exception: ConnectionResetError, Connection reset by peer (FastHttpUser) #1472

Closed issues:

  • Change the position of dividers in command line report #1514
  • Allow negative hatch rate for ramping down #1488
  • Missing URL to download full csv history #1468
  • Support for completely custom load pattern / shape #1432
  • rename "hatch rate" to "spawn rate" #1405

Merged pull requests:

1.1.1 (2020-07-07)

Full Changelog

Fixed bugs:

  • --run-time flag is not respected if there is an exception in a test_stop listener #1461
  • Unhandled exception: stream ended at an unexpected time #1457
  • Unhandled UnicodeDecodeError exception if response with status 400 and request contains binary payload (for FastHttpUser) #1447

Closed issues:

  • FastHttpUser: Show error codes on 'Failures' page for 'BadStatusCode' exception #1460

Merged pull requests:

1.1 (2020-06-28)

Full Changelog

Fixed bugs:

  • Charts are twice as high as they need to #1440
  • Master-host IP is not overrided by environment variable. #1424
  • Two test_stop events triggered when --run-time expires #1421
  • Locust Installation error on Ubuntu 16.04 and Debian Stretch #1418
  • locust doesn't escape the double quotes in the csv output #1417
  • on_master_stop_hatching is not triggered on master when hatching terminates #1295
  • Installing 0.12.1 requires "pipenv lock --pre" #1116

Closed issues:

  • Ability to run test_start on workers. #1408
  • Ability to Stop Locust Client from within the test script #1192

Merged pull requests:

  • Fixes a typo #1454 (Waples)
  • minor typos in docs #1453 (howardosborne)
  • fixed up environment.parsed_options #1450 (pentop)
  • Allow Users to stop the runner by calling self.environment.runner.quit() (without deadlocking sometimes) #1448 (cyberw)
  • Cut to only 5% free space on the top of the graphs #1443 (benallard)
  • Base Locust Docker image on non-alpine python image #1435 (heyman)
  • Quickstart documentation clarification. #1434 (JamesB41)
  • Use csv module to generate csv data #1428 (ajt89)
  • Add simple documentation with use case for init event #1415 (Zooce)
  • Simplify documentation of catch_response & add example of response time validation. #1414 (cyberw)

1.0.3 (2020-06-05)

Full Changelog

Fixed bugs:

  • Search is broken on readthedocs #1391

Closed issues:

  • Custom Request/sec exit code #587

Merged pull requests:

1.0.2 (2020-05-25)

Full Changelog

Fixed bugs:

  • Update flask version #1394
  • Got "unknown user exception" when use --step-load and --step-clients #1385
  • SequentialTaskSet is broken when using local class members (headless mode) #1379
  • FastHttpLocust + SNI #1369

Closed issues:

  • We should check limits (ulimit) and warn if they are too low #1368
  • Run locust as a job but still have access to the API. #1305
  • error: argument --master-port: invalid int value bug #1226

Merged pull requests:

  • Update flask requirement. Fixes #1394 #1395 (cyberw)
  • Bump geventhttpclient and switch back to use its original repo + fix windows issue with resource module #1388 (cyberw)
  • Rework quickstart documentation and update some documentation for 1.0 #1384 (cyberw)
  • Make TaskSet .user and .parent read only properties, avoids / fixes #1379 #1380 (cyberw)
  • Fixed typo #1378 (rahulrai-in)
  • Try to increase open files limit and warn if it is still too low afterwards #1375 (cyberw)

1.0.1 (2020-05-16)

Full Changelog

Merged pull requests:

  • Add metadata for the locust PyPI package that marks the locustio package as obsolete #1377 (heyman)

1.0 (2020-05-16)

Full Changelog

Fixed bugs:

  • FastHttpUser doesn't use the SNI TLS extension #1360
  • DEBUG output in docker is not working #1337
  • Can't run Locust distributed with --csv-full-history #1315
  • [Nested TaskSet] Child TaskSet's on_stop method is not called when GreenletExit #1206

Closed issues:

  • Add @only decorator to TaskSets #1275
  • resp.failure() shouldnt immediately log a failed request, just mark it a such #1335
  • Change CSV column names #1317
  • Remove @seq_task and instead add a SequentialTaskSet class #1286
  • Change how logging is handled #1285
  • Remove the Locust.setup and Locust.teardown hooks in favour of adding test_start and test_stop events #1284
  • Rename Locust to User/LocustUser #1283
  • Clean up among the command line arguments #1282
  • Docker image should not require TARGET_URL #1247
  • Duplicate/confusing entry in pypi #817
  • How to run test programatically #222
  • Alternative terminology for "slave" #220

Merged pull requests:

1.0b2 (2020-05-01)

Full Changelog

Closed issues:

  • Add --config parameter #1334
  • clean up core.py & __init__.py #1328

Merged pull requests:

1.0b1 (2020-04-29)

Full Changelog

Fixed bugs:

  • Docker image: worker mode not starting correctly #1322
  • Exception throws on attempt to report request results to master #1293
  • Can't access web interface #1288
  • Web page is confused when I shutdown the only slave #1279
  • [Documentation] Bleeding Edge link is broken #1278
  • Locust Web Dashboard Charts, Slaves sections not working after certain time #1276
  • Connection pool is full, discarding connection | 'Connection aborted.', RemoteDisconnected('Remote end closed connection without response #1263

Closed issues:

  • Retrieving response time on Master while execution is going on through custom code in no-web mode #1351
  • "Order of events" clarification #1349
  • More information in csv reports #1292
  • Rename and restructure Locust/TaskSet #1264
  • Add allow_redirects option to FastHttpSession.request #1238
  • Retrieve failures.csv in --no-web mode #1237
  • command line arguments for clients and spawn rate should populate ui in the same way as url #1186

Merged pull requests:

  • Environment variable configuration changes #1355 (heyman)
  • Add CLI params for TLS cert and key - serves over HTTPS #1354 (mattdodge)
  • Add allow_redirects parameter to FastHttpLocust.client.request(). Fixes #1238 #1344 (cyberw)
  • Give better error message when kubernetes env vars collide with locust's #1343 (cyberw)
  • Fix web options #1340 (Trouv)
  • Populate UI fields with -c, -r, --step-clients, and --step-time options #1339 (Trouv)
  • Remove docker_start.sh and set locust as entrypoint for official Docker image #1338 (heyman)
  • Allow multiple calls to response.failure() or response.success() within the same with block #1336 (heyman)
  • Removed double consideration of same timestamp #1332 (Oribow)
  • Make all LocustRunners aware of their target_user_count, not just MasterLocustRunner #1331 (cyberw)
  • Import wait functions from locust instead of locust.wait_time #1330 (cyberw)
  • Stop exposing exceptions on locust module, remove old wait api (step 1 of fixing #1328) #1329 (cyberw)
  • Add Runners, WebUI and Environment to the public API #1327 (heyman)
  • Update main.py about gevent.signal() #1326 (test-bai-cpu)
  • Improve how we do logging #1325 (heyman)
  • Worker quitting then stopping via web UI bug fix #1324 (Trouv)
  • Fixed some spelling/grammar on docstrings in core.py #1323 (Trouv)
  • Add basic auth for webui #1313 (anuj-ssharma)
  • Group related command line options together #1311 (heyman)
  • Replace TaskSequence and @seq_task with SequentialTaskSet #1310 (heyman)
  • Replace locust setup teardown with events #1309 (heyman)
  • Decouple Runner and Locust code by introducing Locust.start and Locust.stop methods #1306 (heyman)
  • Allow tasks to be declared directly under Locust classes #1304 (heyman)
  • Rename slave to worker (except changelog) #1303 (anuj-ssharma)
  • Support parametrization of FastHttpLocust #1299 (cyberw)
  • Fix typo in running-locust-in-step-load-mode.rst #1298 (sgajjar)
  • Add reference to LocustRunner instance and WebUI instance on Environment #1291 (heyman)
  • Give a more descriptive error when the Locust or TaskSet has no tasks. #1287 (cyberw)
  • ensure the connection between master and slave in heartbeat #1280 (delulu)
  • Fix simple typo: betwen -> between #1269 (timgates42)
  • Work towards 1.0. Refactoring of runners/events/web ui. Getting rid of global state. #1266 (heyman)

0.14.6 (2020-02-25)

Full Changelog

Closed issues:

  • Fix simple typo: betwen -> between #1268

0.14.5 (2020-02-25)

Full Changelog

Fixed bugs:

  • Code blocks in docs not rendered #1258
  • Unable to install on windows #1254

Closed issues:

  • Remove support for Python 2.7 & 3.5 #1120

Merged pull requests:

  • add json() method to FastHttpLocust (to match regular HttpLocust) #1259 (cyberw)
  • docs: remove the description of port 5558 #1255 (orisano)
  • Remove six and other 2.7 compatibility code #1253 (cyberw)

0.14.4 (2020-02-03)

Full Changelog

Fixed bugs:

  • FastHttpLocust times out when HttpLocust does not #1246

0.14.3 (2020-02-03)

Full Changelog

0.14.2 (2020-02-03)

Full Changelog

0.14.1 (2020-02-03)

Full Changelog

0.14.0 (2020-02-03)

Full Changelog

Fixed bugs:

  • FastHttpLocust gives error when using valid url. #1222
  • Error generating request statistics CSV in master–slave mode #1191
  • Stats are reset when re-balancing users across slave nodes #1168
  • Slave count stuck at 3 instead of decreasing to 1 due to "missing" #1158

Closed issues:

  • scale clients up and down during a run #1185
  • Locust should warn if CPU usage is too high #1161
  • Support Step Load Pattern (up & down) #1001
  • Provide a way to specify locust counts and hatch rate per locust class #683

Merged pull requests:

  • Save failures.csv in --no-web mode #1245 (ajt89)
  • Drop support for pre 3.6 Python versions (give error during installation) #1243 (cyberw)
  • Warn if CPU usage is too high (>90%) #1161 #1236 (cyberw)
  • Update docs for running locust in Step Load Mode #1235 (delulu)
  • allow 1 percent codecov degradation before failing build (because it is flaky) #1230 (cyberw)
  • Disable codecov patch analysis, because it fails all the time #1229 (cyberw)
  • Relax host checking for FastHttpLocust to be more in line with HttpLocust. Fixes #1222 #1227 (cyberw)
  • Add "Running Locust with Docker" to the TOC #1221 (TBBle)
  • Fix link formatting for the Helm chart #1219 (TBBle)
  • fix: change typo UserBehavior to UserBehaviour #1218 (aasmpro)
  • Fix 'd rop-in' typo to 'drop-in' #1215 (jenglamlow)
  • Update running-locust-distributed.rst #1212 (Neamar)
  • Warn if spawn rate is too high. Adresses bug #1174 for example. #1211 (cyberw)
  • Allow users to override encoding when decoding requests (maybe using chardet, as was the default before) #1204 (cyberw)
  • Allow min_wait and max_wait times of 0 #1199 (Aresius423)

0.13.5 (2019-12-17)

Full Changelog

Fixed bugs:

  • Fix percentiles printed in _stats.csv file #1198
  • set default Accept-Encoding to "gzip, deflate" in FastHttpLocust to match HttpLocust behaviour #1195
  • FastHttpLocust is very slow at returning the response text #1193

Merged pull requests:

  • Use response_time_percentile for <name>_stats.csv file instead of current_response_time_percentile #1197 (mehta-ankit)
  • Send Accept-Encoding: gzip, deflate as default in FastHttpLocust. #1196 (cyberw)
  • Get encoding from content-type header instead of autodetecting using chardet (which is slow) #1194 (cyberw)

0.13.4 (2019-12-16)

Full Changelog

0.13.3 (2019-12-13)

Full Changelog

Fixed bugs:

  • Time response graph is not working on master/slave configuration #1182
  • Unable to properly connect multiple slaves, master #1176
  • Zero exit code on exception #1172
  • --stop-timeout is not respected when changing number of running Users in distributed mode #1162

Closed issues:

  • "Percentage of the requests.." table has missing column headers #1180
  • Set locust parameters via env vars & config file #1166

Merged pull requests:

  • Use ConfigArgParse instead of argparse, to support getting parameters from config file and/or env vars. #1167 (cyberw)
  • Add toolbox control for for downloading chart as png #1165 (skivis)
  • Allow locust to get SIGTERM(aka Ctrl+C) messages. #1159 (turgayozgur)
  • Stats: New argument "--csv-full-history" appends stats entries every interval in a new "_stats_history.csv" File #1146 (mehta-ankit)
  • Support Step Load Pattern #1002 (delulu)

0.13.2 (2019-11-18)

Full Changelog

Fixed bugs:

  • Response Times graph broken (drops to 0 after a while) #1157
  • TaskSet min_wait and max_wait are ignored #891

Closed issues:

  • Add charts for number of failures in the Web UI #952

0.13.1 (2019-11-16)

Full Changelog

Fixed bugs:

  • Web UI doesn't start on Python 3.8.0 #1154
  • When locust exits the current RPS is outputted instead of the total RPS #1152
  • Missing headline columns in response time percentile stats printed to console #1151

Closed issues:

  • Be able to install pip packages using the docker image #1149

Merged pull requests:

0.13.0 (2019-11-14)

Full Changelog

Fixed bugs:

  • autoscaling slaves resets users #1143
  • Repeated secure requests with FastHttpLocust crashes in cookie management #1138
  • FastHttpLocust gives ssl error with let's encrypt certs #1137
  • stop_timeout defined in Locust class takes precedence over --run-time option #1117
  • Test metrics are not preserved on Stop click in the UI #883
  • locust stuck in hatching state #146

Closed issues:

  • To improve build_url method in Locust HttpSession #1133
  • Duplicate API section in navigation of document #1132
  • Locust with custom clients only displays maximum response time #1084
  • Stop locusts graceful #1062
  • could we report 99.9% percentile in CSV file? #1040
  • Provide an official Docker image #849
  • Number of Users Dependent on Number of slaves ? #724
  • Allow a fixed RPS rate #646
  • Unique task id available ? #349
  • nitpick: "# requests" should be "# successful requests"? #145
  • Display percentiles in the UI instead of just min, max and average #140

Merged pull requests:

  • Add response_length to request_failure event #1144 (cyberw)
  • Add failure per seconds as a series in the chart #1140 (alercunha)
  • Fix AttributeError: 'CompatRequest' object has no attribute 'type' in Cookiejar #1139 (cyberw)
  • update build_url function in Locust HttpSession #1134 (vstepanov-lohika-tix)
  • Fix and add test for when locusts fail to exit at end of iteration during stop timeout. #1127 (cyberw)
  • Let's stop calling the package beta! #1126 (cyberw)
  • Add p99.9 and p99.99 to request stats distribution csv #1125 (cyberw)
  • New API for specifying wait time #1118 (heyman)
  • Add errors grouping for dynamic endpoint #993 (dduleba)
  • add 90th %ile to the stats page #945 (myzhan)
  • Make stdout/stderr wrappers identify themselves as not being a tty #929 (michaelboulton)
  • Specify host in web ui #523 (PayscaleNateW)
  • make sure the current working dir is in the sys.path #484 (pwnage101)

0.12.2 (2019-10-26)

Full Changelog

Fixed bugs:

  • Strange behavior of "Total Requests per Second" chart #889
  • Response time graph seems to be an average of all data #667
  • Totals Clarity in Web Results #629
  • on_request_xxx checks exiting condition against the wrong number #399
  • [0.7.3] Total fails percentage calculated wrong on console #384
  • URL names in dashboard are not HTML escaped #374
  • Percentage of fails in Total line is greater than 100% #357
  • Exceptions tab not working for on_start method #269
  • Percentile response time anomalies at 100% #254
  • log.py's StdErrWrapper swallows fatal stacktraces #163
  • Slave count doesn't get updated in the UI if no more slaves are alive #62

Closed issues:

  • 0.12 released on GitHub but not on PyPI #1109
  • Samples with response_time None crashes stats.py #1087
  • Requests Per Second Plot Breaks When There are too Many Unique URLs #1059
  • UI 'stop' button does not stop test #1047
  • Performance degradation for constant wait time #1042
  • Locust decorators #1036
  • Failure percentage being reported incorrectly #1006
  • Start on_stop not before on_start has finished #969
  • Locust slaves are never become ready and get null responce (locust 0.9.0) #950
  • Possible typo in docs #946
  • New release to PyPi for gevent 1.3 compatibility #793
  • Control time window for RPS calculation #792
  • 500 URL limit #786
  • Save responses to a file #774
  • custom client from locust documentation doesn't work at all #771
  • separate charts for requests per second and average response time #688
  • schedule_task and data driven load test methodology #633
  • stop/interrupt weighting/logic for nested tasks that execute a single task #632
  • self interrupt for inline nested TaskSets? #631
  • Add new members to Committers Team in the Locust.io Organization #628
  • locust's statistic collect N/A records #626
  • how to make all locust users wait after executing on_start method ? #611
  • Adding name argument in the http post call with catch response argument #608
  • EventHook() fired when locust user has stopped #604
  • Is there a way to de-register slave with master on a slave node shutdown? #603
  • Unable to Stop locust from Web interface occasionally #602
  • no-web performance data saved #601
  • Can you add or can I create a Pull Request to accept a command line option that would enable ALL events (http requests) to be logged to a file/location? #576
  • Median response times off #565
  • Dedicated Vuser for each API #564
  • 'module' object has no attribute 'NSIG' #518
  • running-locust-distributed missing information on worker model #492
  • locust executes more number of times than I expected #455
  • Cannot pass the arguments to the tasks #380
  • Some uncertain for RPS #367
  • Support for distributing arbitrary arguments to Locust [Proposal] #345
  • Error running distributed mode on Fedora and CentOS #271
  • RPS for Total shows the instant RPS #262
  • grouping requests after redirect #251
  • Locust can not run distributed with the web interface disabled #189
  • Documentation on how to best configure a (linux) machine to run locust #128
  • See what request generated a failure #103
  • Support for plugins #34

Merged pull requests:

  • fix self.client call in code examples #1123 (cyberw)
  • Escape HTML entities in endpoint names #374 #1119 (peterdemin)
  • Table layout fix to use available space better #1114 (heyman)
  • Fix rounding error when spawning users from multiple locust classes #1113 (heyman)
  • Add __main__.py file #1112 (jdufresne)
  • Remove 'dist: xenial' from Travis configuration #1111 (jdufresne)
  • Add Python 3.8 to the test matrix #1110 (jdufresne)
  • Fix empty bytearray(b'') returned when using catch_response=True #1105 (skivis)
  • Add an option (--stop-timeout) to allow tasks to finish running their iteration before exiting #1099 (cyberw)
  • Allow None response time for requests #1088 (cyberw)
  • Fixed issue with Total Requests Per Second plot #1060 (williamlhunter)
  • Tox: Add flake8 tests to find Python syntax errors and undefined names #1039 (cclauss)
  • Fix frontend bugs. #822 (omittones)
  • Switch from using optparse to argparse for command line arguments #769 (jdufresne)
  • Allow skipping the logging setup #738 (Exide)
  • Added link to an Ansible role as a 3rd party tool. #704 (tinx)

0.12.1 (2019-10-18)

Full Changelog

Fixed bugs:

  • AttributeError: 'module' object has no attribute 'sleep' #1023

Closed issues:

Merged pull requests:

  • Remove concurrency from coverage #1102 (mbeacom)
  • Adding TCP Keep Alive to guarantee master-slave communication after i… #1101 (albertowar)
  • Resolve time import error in exception_handler #1095 (ajt89)

0.12.0 (2019-10-01)

Full Changelog

Fixed bugs:

  • response time has too many decimal places in the web statistics page #1081
  • Fail ratio calculation for individual requests is incorrect #991

Closed issues:

  • Distributed load test k8s and openshift #1100
  • Official docker image does not actually exist #1092
  • Connection Refused for http://localhost:8089/stats/requests in Locust non web UI mode #1086
  • Sequence does not get past first nested sequence. #1080
  • Support for asynchronous requests #1079
  • Monitoring of server system information being tested #1076
  • Logged stats show incorrect failure percentage #1074
  • Identical exceptions are not aggregated and counted together #1073
  • --no-web -r 1 -c 10 -t 5s --expect-slaves=1 #1071
  • Is it possible to start all tests in locust immediately? #1070
  • UI stops updating stats/charts when connection is interupted #1068
  • When running distributed, stop the test if certain condition is met #1067
  • Is it possible to autoscale slaves? #1066
  • docs.locust.io out of date #1064
  • unable to load testing of webmethod (.asmx) #1061
  • Distributed master hangs #1058
  • locust swarm can not control the machine over internet #1056
  • Total Requests per Second not plotting #1055
  • No module named 'HTTPLocust' #1054
  • Call wait function in on_start #1053
  • The locust interface does not start #1050
  • why drop the "-n "prameter after version 0.8 #1048
  • Looking for proxy settings will slow down the default http client #1044
  • Does the statistic data use int type? #1043
  • simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0) #1041
  • Locust load testing for websites #1034
  • Failure Control #1033
  • Number of users reduce after running for 1min #1031
  • Even with min_wait and max_wait == 0, I cannot break 100 requests per second. Why is that? #1030
  • some Strongly expectation of Locust as a Senior performance test engineer #1029
  • The “FAILURES” show on Web UI is error #1028
  • Is there any approach to share a file among hatched users? #1022
  • Does the web UI has authentication? #1021
  • what dose total number means in distribution csv? #1019
  • What does hatch_rate mean? #1018
  • Multi tenancy? #1017
  • 500 RPS per client limit? #1015
  • locustfile as configmap -> Could not find any locustfile! Ensure file ends in '.py' #1012
  • Add easy way to use FastHttpLocust #1011
  • Allow custom options to be passed to locust test #1010
  • How to custom the Web UI #1009
  • Run results show tasks action ratio may be incomprehensible。 #1003
  • Start on stop bugged #998
  • RPS always lower than User counts #997
  • springboot restapi HTTPError 500 #996
  • help: I think my result is False? #995
  • Website: broken links to ESN and Younited #988
  • Request: automatic RPS \ max workers #986
  • Multi-threading Tasks? #985
  • When time to run (-t) timed out, pending requests seems to be aborted, and the (latest) responses get lost #984
  • error: no commands supplied ....!!!!! #983
  • Unable to stop load from web UI with 0.11.0 #981
  • Failure events not being recorded #979
  • RPS will become to 0 in distributed mode #971
  • Stddev and SEM #959
  • ERROR: manifest for locustio/locust:latest not found #958
  • support async tasks? #924
  • Web UI does not stop slave servers #911
  • Request template #879
  • Reset failures and/or exceptions #826
  • Add support for downloading all failures to a CSV #675
  • Locust exits with 1 on timeouts / errors #560
  • Why the "RPS" generated by locust is much fewer than other performance testing tools ? #277

Merged pull requests:

0.11.1 (2019-03-19)

Full Changelog

Closed issues:

  • locust master crashes on Python 3.7: AttributeError: 'bytes' object has no attribute 'encode' #980
  • Locust can not run in distributed mode in v0.10.0 #978

Merged pull requests:

0.11.0 (2019-03-14)

Full Changelog

Merged pull requests:

0.10.0 (2019-03-13)

Full Changelog

Fixed bugs:

  • filenames with several dots fails #940
  • Percentiles rounding error #331

Closed issues:

  • Installed in virtualenv but locust command not found (macOS Mojave 10.14) #976
  • how can I send https request with locust when I already have been authentication.. #966
  • How to understand -c when I run locust with no-web mode? #965
  • FunctionNotFound('random_uuid is not found.',) #964
  • add users 1 time per minute #961
  • HttpLocust class instance variable not set for all users during setup #957
  • locust.runners.MasterLocustRunner failed with ExtraData #956
  • Time limit reached,but test does not stop,throw GreenletExit exception #953
  • Bug: Locust master doesn't remove killed slave #951
  • How to pass multiple request under same @task. Eg: If I need to pass diferrent key for same get, how to do that? Is parameterization exist? #948
  • multiple user behaviour #947
  • seq_task does not work #937
  • locust no-web mode #933
  • reqs/sec is much lower than expected #931
  • --only-summary does not show the summary results #922
  • locust http request size #921
  • Retrieving/saving current number of users #920
  • OpenVAS - ERROR: ('Connection aborted.', BadStatusLine("''",)) #918
  • git changelog page on v0.9.0 return 404 #913
  • locust: error: no such option: -n #912
  • Next version plans #907
  • Need a way for "Device" Locust class to pass a value to the TaskSet #906
  • --only-summary does not show the summary results #905
  • Locust Report Ui Last column is not displaying #903
  • mogul,help me,when i use “sudo pip install locustio”to install, after i use“locust --help”,What should I do if I give an error #902
  • Unable to Get Statistics with --csv or Web Mode when running distributed. #901
  • Locust slave will not start when attempting to start via Node.js SSH2 connection. #900
  • Changelog page in github referenced from docs.locust.io returns a 404 #898
  • slave client_id collisions in large environments #894
  • Put a big sign "you must reload this page before any stats are displayed" somewhere on the web interface #893
  • Wrong statistic of total request count with 0.9.0 #892
  • Questions: #890
  • Strange behavior of "Total Requests per Second" chart #888
  • Locust 0.9.0 slave TypeError: __init__() takes exactly 1 argument (2 given) #887
  • KeyError on weighted tasks #886
  • How do I view the maximum concurrency in 1 second during runtime? #880
  • locust command is not found on parrot security, even when it is successfully installed #878
  • use the FastHttpLocust,how to get cookies ? #861
  • Immediate crash under python 3.7 #852
  • Release 0.9.0 and document release steps #842
  • Extended socket protocol #776
  • Feature request: on_quit() #248

Merged pull requests:

0.9.0 (2018-09-01)

Full Changelog

Fixed bugs:

  • About displays improperly #696
  • Unclear how to interpret numbers #303

Closed issues:

  • a crash bug for master #869
  • I started 50 users, but i found there are 100 tomcat connections established at that time, why.... #866
  • Error is raised: AttributeError: 'RequestStats' object has no attribute 'log_request' #865
  • Two locust packages in pypi #863
  • Locust "ConnectionError(ProtocolError('Connection aborted.', error(111, 'Connection refused')),)" #862
  • Comparison of performance test results between locust and jmeter #859
  • Locust fails to execute from Windows 10 #854
  • Assign Locust Behavior Programmatically -- Code Example #847
  • Wrong statistic of total request count #846
  • Locust freezes after a while (python 3.7) #843
  • how to send post reqeusts body type is raw #840
  • Segmentation Fault (core dumped) under python 3.7 #839
  • Don't rely on obsolete msgpack-python #837
  • how to install locust 0.8 instead locust 0.8.1 hand #834
  • does have url to get the response time distribution? #833
  • stats with all zeros for clients > 1 #832
  • setup() should always run after __init__() #829
  • How locust calculate average response time and R/S for users #828
  • Please check my contribution. #824
  • Synthetic monitoring #821
  • Locust slaves eat all available memory when working with a failing service #816
  • Using Python's multiprocessing on Master #812
  • How to perform basic authentication? #811
  • No module named pkg_resources #810
  • Locust does not work because gevent has been updated to 1.3.2 #809
  • IndexError: Cannot choose from an empty sequence #803
  • self.locust.drop_current_runner() #802
  • Scraping google search result #800
  • branch geventhttpclient need a update #795
  • locust inactivity after reaching 9000 user issue #791
  • Include LICENSE file in sdist #788
  • How to have Locust Master dynamically allocate users to slaves #787
  • slave run in docker didn't work. #784
  • How to call on_start before each testcase, like setup in unittest? #781
  • Locust clusters, but workers never hatch #780
  • When maximum num=1 this will raise exception "Maximum number of requests reached" #778
  • 100% number smaller than 99% in Percentage of the requests completed within given times #777
  • Can't define unique characteristics for each locust #775
  • invaild Locust(HttpLocust) class attribute: host #773
  • URL requests containing “/#/” are all seen as “/” then failing when running on Locust.io #768
  • Docker image and Kubernetes chart out of date at 0.7.5 #767
  • Wrong tasks weight calculation over several TaskSet's #766
  • Need multi level rampup pattern #765
  • Documentation link at https://docs.locust.io doesn't point to current release docs #764
  • website down #763
  • TypeError: must be string or buffer, not None #754
  • Does POST request create a entry in the DB? #752
  • SSL Error when using Http Request #751
  • print statements are not appearing on console when -n is 1 #750
  • Error - Get_next_task return random.choice(self.tasks) and Random.py choice raise IndexError('Cannot choose from an empty sequence') from None) #748
  • Default implementation of on_request_success and _failure lacks **kwargs declaration #745
  • Question: https://pypi.python.org/pypi/locust/0.8 #744
  • Not able to record failures in report #739
  • Tested website unresponsive #737
  • New Connection in locust #736
  • Does locust creates a new instance/thread per locust user of httplocust class ? #734
  • How I share auth cookie with the rest of tasks only for current locust user? #733
  • how to run the master branch #732
  • On the same server,jmeter can run 20000rps,but locust only 5000rps #727
  • Connect slave nodes from remote server to master node on local machine #726
  • a report plugin.Anyone interested? #723
  • Severe difference in RPS when adding more than two URLs #722
  • Start distributed test with multiple slaves with one command. #721
  • Logo changes #716
  • Locust does not count RPS if all requests fails #715
  • Looking for a different flavor of on_start() behavior #714
  • Option to Print Failure to Console? #711
  • Reach to 3k RPS #710
  • Rename RPS #709
  • AWS locust sitting idle #707
  • Couldn't pass 200 request / second #705
  • Preparing a Linux server for Locust load tests #700
  • When a slave process crashes and restarts, the master counts and waits for input from both #699
  • SQL Locust adapter #691
  • Unusual behavior from graphs #690
  • Chart is wrong #689
  • ioerror cannot watch more than 1024 sockets #684
  • Locust distributed noweb does not honour --num-request option #682
  • Locust pure python RPC not working in distributed mode (this makes, message seem confusing) #680
  • Limit of 500 requests in /stats/requests end-point #679
  • No users count send in hatch_complete #678
  • --no-reset-stats should be on by default #672
  • 'Response' object has no attribute 'failure' in python3.5.3 #671
  • Sometimes the rps is 0 #670
  • Install breaks on Win7 Py3.3 Locust 0.8.1 #668
  • Inaccurate response time? #663
  • all tests results suddenly turned to all 0 #662
  • How do we control the Clients in Locust? #659
  • failure to install the latest version locust #648
  • Always get errors when I run testing. #645
  • Locust test results #639
  • memory issue #636
  • Stderr connection error ( python3.6), but no failures on UI #625
  • Ability to disable SSL certificate verify #619
  • tasks are not shown in locust UI statistics #591
  • Installation failure on Mac OS 10.12.4 #582
  • Specify host header and send request against IP #581
  • Ability to set a specific number of simulated users per Locust class #575
  • Slave hangs when started before master #571
  • Is there a way to setup/teardown before running the load tests #553
  • Never loads? #302
  • Retrieving stats when running with --no-web #290
  • In distributed mode, not all stats are collected/displayed in the 'main' UI #217
  • URL_PREFIX feature for web UI? #149
  • (libev) select: Invalid argument when trying to go past 1k users #121
  • Command line option to specify the duration to run #71
  • Setup/teardown hooks #59
  • Define wait times by function instead of variable #18

Merged pull requests:

v0.8.1 (2017-09-19)

Full Changelog

Closed issues:

  • Release new Locust version #657
  • make test is failing on 0.7 tags due to Flask 0.12 #637
  • num-requests bug #512
  • Run the tests for the specified time #196
  • Remove support for plain sockets for master/slave communication #14

v0.8 (2017-09-19)

Full Changelog

Closed issues:

  • Infinite recursion error when testing https sites #655
  • website SSL #644
  • Using locust to query Cassandra #569

Merged pull requests:

v0.8a3 (2017-09-15)

Full Changelog

Fixed bugs:

  • Web UI bug when url is very long #555
  • gevent.hub.LoopExit exeption, python threading and twisted reactor #397
  • OpenSSL handshake error #396
  • sending POST image in client.post() never receives Request.FILES #364
  • Some of the requets total stats are missing when printing them to console #350
  • Web UI Freezing #309
  • Template request name too long #263
  • Test file can not be named locust.py (or any other name that is the same as an existing python package) #138
  • Prohibits the locustfile from being named 'locust.py' #546 (cgoldberg)
  • Truncate number of errors displayed in the web UI #532 (justiniso)

Closed issues:

  • Move Locust to the Erlang BEAM #653
  • Libev over libevent and gevent suggested wsgi? #649
  • How to filter certain requests when generating reports? #647
  • Can't find new charts in v0.8a2 #643
  • Have anyone tried setting up locust on Azure scale set ? #642
  • Issue with indendation on a PUT request (Newbie) #641
  • How to know why the server is down ? #640
  • Locust throwing connection error failures #638
  • Can't run test via locust command line #635
  • ImportError if there is a "core" module in project #630
  • ModuleNotFoundError in Python 3.6 OSX 10.12 #627
  • the edit has bugs in distributed mode #623
  • No Locust class found #621
  • Display website on dashboard #620
  • Latest 0.8a2 version build doesn't meet changelog #618
  • locust doesn't record all the requests #615
  • Question: debugging in pycharm (or other arbitrary IDE) #613
  • Summary shows 0 when request(num_request) completed before all users get hatched #610
  • Unable to run the locustfile example #607
  • How many locust-workers can I add to a locust-master? #605
  • Distributed mode question/concern #600
  • bump gevent version #598
  • unlimited users #597
  • Windows Authentication support? #595
  • Non-200 i.e. 202 status codes are note logged as successes #594
  • Running locust tests as a list of scenarios #590
  • Port locust.io to HTTPS #589
  • reqs/sec is lower than other tools result #586
  • Inform users about unsuccessful POST requests #585
  • HttpSession can't handle HTTP 301 with Location: https,https:// #584
  • Not have option --no-reset-stats #583
  • ModuleNotFoundError: No module named 'cobra.core.model' in python3 #580
  • Summary result #578
  • OSX limited to running ~200 users #574
  • How to create multiple task_set in http locust class? #573
  • ImportError: No module named 'core - Python 3.5.0, 3.5.2 #572
  • Successfully installed but locust command not found on macOS Sierra 10.12 #568
  • How to stop once a user finishes it's set of Tasks. #567
  • rendezvous implementation of Locust? #563
  • Missing not reset stats option. #562
  • Is there a way to share data among emmulated users? #561
  • locust run in windows 10 ,error: failed to create process #559
  • 【Question】"Address family not supported by protocol" when start the test #556
  • Where to find the RPS chart? #554
  • request: bandwidth consumption #551
  • self._sleep() should not be private. #550
  • MQTT with python over proxy #548
  • "Connection reset by peer" failure When doing local test with lost ( >1000) concurent users #545
  • How to monitor cpu and memory? #544
  • Stress test with probobuf format? #543
  • Setting a CookieJar #542
  • Bugs in show_task_ratio and show_task_ratio_json #540
  • Incorrect calculation of avg_response_time and current_rps in no_web mode #538
  • Release for 0.8.0 #533
  • No module named 'core' error #531
  • on_start function calls for every hatch #529
  • Add Python 3.6 to build pipeline #527
  • Python v2 exception on import ipdb - StdOutWrapper has no attribute 'flush' #526
  • SSL error:self signed certificate #524
  • How to use locust? #522
  • Sending multipart/form-data #521
  • How to display QOS metrics ? #520
  • Allow importing swagger files #519
  • stats & counters are reset during test #513
  • slack channel for locust dev #511
  • Variance/Standard Dev. or something #508
  • RPS value drops after a long run #507
  • raise an error in Python3 #506
  • Function result does not get saved into variable if function call spans two lines #505
  • calling taskset and tasks on if else conditions #504
  • pip install old version #502
  • Documentation for directory structure and working directory for complex locust projects #500
  • pydoc.locate breaks after importing locust #499
  • How to build locust on local machine #498
  • Secure data transfer between master/slave in different geographical regions #491
  • Closing old issues and PRs #490
  • Proposal: apdex in reports #489
  • Problem with nested dictionary #488
  • [question] how do you quantify your master/slave need #486
  • user spawn too slow #482
  • Overly strict dependency on gevent==1.1.1 #479
  • Unique user id per locust #476
  • Random Resets and Invalid Stats #446
  • SSL errors when testing certain HTTPS sites #417
  • How to get more info from the load test? #413
  • Export exceptions to CSV didn't work #412
  • Replaying access pattern #411
  • Make logging timestamps etc optional #405
  • The pycurl client #393
  • Working with long running user flows #386
  • cookies #373
  • How to understand the requests in main webui? #370
  • Test performance of predictionio #369
  • Reviewing PRs #355
  • Optional HTTP Request failure step down #344
  • Unix timestamp in stats/requests #332
  • Web UI Freezing #307
  • Inconsistent stats resetting #299
  • Don't warn about pure Python socket when not using distributed mode #276
  • Web UI should show what host is being used #270
  • locust support testing against HTTP/2 servers ? #264
  • Error to login to webapp in Locust #246
  • Support for custom time metrics #243
  • recommended AWS EC2 instance types? #242
  • how to deploy it in heroku or aws ? #241
  • How to retrieve host argument for custom client #238
  • Extra / at start of request paths #235
  • SSL broken on Python 2.7.9 #234
  • Parameterizing each Locust on a distributed load test #233
  • Suggest Python version #231
  • Be able to define bursty traffic #225
  • How to serve templates for custom routes ? #224
  • Changing locustfile.py on master via UI and having master / slave replication #209
  • Option to prevent stats from being reset when all locusts are hatched #205
  • PUT requests are shown as GET #204
  • Cannot simulate one single user #178
  • Feature request: Stepped hatch rate #168
  • Having a locust "die" or stop after one task #161
  • Request: support concurrent and hatch for web-based startups #153
  • Run individual tasks at the same time #151
  • Graphical interface to see individual request level graph #144
  • Configure target host from web interface #135
  • Fixed seed, non-random chance #127
  • any objection to making task take a float as opposed to an int? #119
  • Feature request: "run through" each test once. #98
  • Add Timer / Timers to Web Interface #78
  • Recording of rps over time #32
  • Add date when test started to run #30
  • Make the table header in the web interface sticky #2

Merged pull requests:

v0.8a1 (2016-11-24)

Full Changelog

Closed issues:

  • Header not entirely on camel case #503
  • Locust starts throwing failures when users > 130 (OS X) #496
  • Multiple Locust swarms override each-others stats #493
  • loop() got unexpected keyword argument #485
  • Problems installing on Mac 10.11.6 #483
  • Cannot decode 502 #481
  • Locust can not count failure request number in WEB GUI #480
  • 【Question】How locust allocate the user number with distributed mode? #478
  • Python v3 error: 'StdOutWrapper' object has no attribute 'flush' #475
  • [Question] How can I set up a thousand concurrent http server as soon as possible with python? #473
  • [Question] How can I control the speed of sending requests? #472
  • Get exception during simulating 5000 users on one mechine #471
  • 【Question】Can I make request with python requests lib? #469
  • 【Question】How can I send https request with locust? #468
  • 401 Unauthorized Error using HTTPLocust #466
  • Import issue when the locustfile.py contains importing self-defined class sentence #465
  • Embedded html resources #464
  • Could not find any locustfile! Ensure file ends in '.py' #463
  • Contradiction on supported versions #461
  • How do I set cookies #458
  • Preserve Locust Stats? #457
  • locust RPS too low #454
  • Python 3.4,run locust error:No module named 'core' #453
  • Failure grouping in UI #452
  • TypeError: 'str' object is not callable #450
  • ERROR/locust.main: No Locust class found! #449
  • Locust won't run http request and instead just, skips ahead to the next line in the code??? #444
  • add an ability for click actions such as video play button #442
  • access to locust frontend from another computer #441
  • how can i add some methods to test but don't want restart locust #440
  • selenium web driver giving error 'Fire fox has stopped working' while opening firefox window #439
  • Location #437
  • Locust web interface not starting on Windows #436
  • aborting task in on_start #435
  • Can I use locust for live streaming load testing #434
  • URLs with # in them are not evaluated #433
  • In light of #431, is it ok to migrate to pytest? #432
  • AttributeError: 'NoneType' object has no attribute 'replace' #431
  • Missing tags for versions above v0.7.2 #428
  • using interrupt while respecting the min_time #427
  • Locust, NTLM, & Requests Sessions #426
  • Is their any plan to support python 3.x? #425
  • TypeError: __init__() got an unexpected keyword argument 'server_hostname' #424
  • Test failures #422
  • Automate validation of locust #420
  • Unable to install on Mac OS X due to errors with greenlet #404
  • Factor out remote execution engine #403
  • requests library uses "wheel" file #134

Merged pull requests:

  • Match min/max_weight equal sign style across project #497 (alimony)
  • Use super() for HttpSession init call #494 (detzgk)
  • Update gevent==1.1.2 #462 (di)
  • Fix document bug concerning '--host' option. #460 (d6e)
  • Python 3 compatibility with --no-web option #456 (mrsanders)
  • Changes to consolidate errors #451 (schuSF)
  • Typo fix in locust API documentation #448 (frntn)
  • Python 3 compatibility for slave mode. (Fixes 'locust --slave') #443 (mrsanders)
  • Python 3 support #363 (pmdarrow)

v0.7.5 (2016-05-31)

Full Changelog

Closed issues:

  • SSO on different site support #423
  • Mac install locust by pip in error of gevent #421
  • can someone help me to build a http request content header #419
  • v0.7.4 #407
  • Python 3 support #279

v0.7.4 (2016-05-17)

Full Changelog

Fixed bugs:

  • requests.exceptions.ConnectionError: ('Connection aborted.', ResponseNotReady('Request-sent',)) #273

Closed issues:

  • locust not making any request when deployed on docker #415
  • Simulating multiple independent user web behaviour #409
  • Webclient authentication #406
  • Install error on ubuntu 14.04 #402
  • Python 3 support needed. #398
  • Quick start example using l for a variable name #392
  • Could you give me some examples of the schedule tasks? #390
  • The data between the different locusts #389
  • Rich report format #388
  • Pinging and benchmarking utilities #387
  • Integration with CI and test frameworks #385
  • Does locust support DB connection? #383
  • multisession confusion #382
  • why used the requests module #378
  • Have you compared the Locust with the Tsung? #377
  • Web GUI can't handle many unique URLs - Is it possible to aggregate stats entries? #375
  • Gevent gcc error. Unable to install locust #368
  • pip install failed mac el capitan #366
  • Error during installation #362
  • does not work in python 3.4 virtualenv #359
  • How do I start a new session #356
  • Integrating Locust API with python requests #353
  • ar #342
  • Unable to install locust on OS X #340
  • Simulate chunk upload #339
  • Locust 0.7.3: TypeError trying to run test #338
  • Unable to install locusio #336
  • Separate TCP connection for each virtual user #334
  • url of this command /web/{var} should have one final output in browser #327
  • Load testing a site whose domain name is not pointed/registered . #326
  • Load Testing multiple sites on a single VPS. #325
  • Python3 support #324
  • Support for websockets? #323
  • step through locust source #322
  • rps degradation when using https. #320
  • Status reports only shown in terminal, not on the Web interface. #319
  • percentiles in /stats/requests? #318
  • real-time graphing #317
  • locust google group #316
  • unlikely response times #315
  • rps bottleneck #313
  • Are requests asynchronous? #312
  • run each task in sequence #311
  • ImportError: No module named 'core' #310
  • ConnectionError(ProtocolError('Connection aborted.', BadStatusLine("''",)),) #308
  • Support multiple test files #304
  • Tasks running, no stats collected. #301
  • OpenSSL errors when testing HTTPS #300
  • Web UI freezes #297
  • 250 users on single machine fails #296
  • slave not connecting to master and no error reported #294
  • Can't start swarming when in master/slave mode on Ubuntu 14.04 #293
  • How to interpret RPS on distributed setup? #292
  • problem with select library #274
  • Slaves can't connect to Master #265
  • list supported Python versions in README and setup.py. #260
  • Getting import requests.packages.urllib3 error in Google App Engine #259
  • Documentation on retrieving real-time stats #230
  • Support for scenarios #171
  • Would love a swarm_complete event #26

Merged pull requests:

v0.7.3 (2015-05-30)

Full Changelog

Closed issues:

  • Rounding of percentiles (premature optimization?) #255
  • Feature request: initiate a test without entering the browser #253
  • Environment Variables for Locust playbooks #244
  • Failures not detected when web server is shutdown #240
  • client.post is not working for https #239
  • confused by multiple requests in on_start #236
  • Empty stats on get aggregated stats #232
  • return_response a valid request argument #229
  • Allow developer to reduce unique URLs to their paths for reporting purposes #228
  • Locust never gets past 10 req/s, despite the server being much quicker than that #223
  • How to send Ajax requestes ? #219
  • Trigger UI events #218
  • Clients support gzip / deflate ? #215
  • nodequery api integration & charting ? #214
  • Test run time number of requests / rps ? #213
  • Clients support keepalive connections ? #212
  • master slave config, master not doing any work ? #211
  • multiple slaves of different server specs ? #210
  • multiple url tests ? #208
  • how to get the recorded data #206
  • http proxy support #203
  • error report is not included in --logfile nor is it available for download as a csv #202
  • Stats get corrupted when the number of swarm users reaches the objective #201
  • API for invoking load #191
  • Locust slaves slowing dying and then coming back to life? #190
  • IndexError: list index out of range #166
  • Post with JSON data #157
  • Python Crash when running with slaves #156

Merged pull requests:

v0.7.2 (2014-09-25)

Full Changelog

Closed issues:

  • Parallel tasks? #198
  • Ability to schedule a call #197
  • Execution order? task lifetime? #195
  • CPU bound from locust vs CPU bound from the web app? #188
  • testing single page application #187
  • failed with AttributeError #185
  • Problem running tests #184
  • Web UI doesn't work in Firefox #179
  • Request name not pertinent in case of redirection #174
  • Reuse the code #173
  • RPS droping to 0 at the end of the user ramp-up period #172
  • Recorder and script generator #170
  • got AttributeError while using "with client.get(...) as response" #165
  • Request time doesn't include download time. #162
  • Error for requests version 2.2.1 #154
  • Request: non-zero exit when running --no-web and errors found #152
  • Support for tests that use multiple hosts #150
  • ImportError: No module named packages.urllib3.response #148
  • Slaves not closing the TCP connections properly #137
  • Locust support for SNI #136
  • User numbers going up and down #131
  • Automatically fork into multiple processes when running in --slave mode #12

Merged pull requests:

v0.7.1 (2014-04-29)

Full Changelog

Closed issues:

  • Min response time after reset is always 0 #147
  • locust shell client does not work in zsh #142
  • should catch exceptions by default #141
  • question about putting a delay #139
  • web ui uses a lot of mem and is quite sluggish at times #133
  • Add ability to select which Task to run #130
  • Move the download links to the top and make sticky #129
  • locust.weight supported, just undocumented? #123
  • Support for custom clients #83

Merged pull requests:

v0.7 (2014-01-20)

Full Changelog

Fixed bugs:

  • gc refcount related crash when loading web UI under Python 2.6.6 #49

Closed issues:

  • Different Users #126
  • doc updates for main class change from Locust to HttpLocust #116
  • collection of exceptions broken since 4ca0eef5 #114
  • number locusts must be a multiple of the number of slaves #112
  • changing port for distributed zeromq mode #111
  • error when running in master mode #110
  • python3 compatibility? #107
  • ramping.py calls RequestStats.sum_stats() which is no longer a valid call #104
  • line endings #101
  • Multiple Hosts, Host Function #99
  • Sorting does not work on # requests column #97
  • Issues with localhost and domain configured in hosts file #96
  • Allow self.interrupt() inside on_start #95
  • hooking locust and graphite together as a plugin #94
  • Serve static files in web.app.route? #93
  • Error: Too many files open #92
  • stats reset after hatch completes #91
  • locust/test/test_average.py present but never run #85
  • Add detailed request failure information to the web UI #84
  • remove _send_request_safe_mode #82
  • Enable different sessions for different users #81
  • Does locust support ‘CSV Data Set Config‘ feature like jmeter #79
  • fatal error: 'event.h' file not found while installing in virtualenv on OSX 10.8.3 #77
  • Testing "Any" system #75
  • Custom http_code stats #73
  • Need Clarification #70
  • It'd be nice to include the machine that a logging message came from #67
  • Allowing custom options to passed into tests? #65
  • requests >1.0 #61
  • pyzmq 13.0.0 breaks distribution #58
  • Locust web interface not starting on Windows #57
  • Web interface doesn't work #56
  • Unit tests LocustRunner(s) and distributed mode #20
  • Proclaim Locust HTTP only #17

Merged pull requests:

  • fix typo #117 (sanga)
  • fix module and variable name clash (traceback refers to a mod so it's a ... #115 (sanga)
  • Removes duplicate attribute documentation #106 (djoume)
  • Fixes typo in example code #105 (djoume)
  • fix typo in downloadable CSV #100 (sghill)
  • Documented more 0.7 changes #90 (EnTeQuAk)
  • include hostname in log messages #89 (sanga)
  • Cleanups (deprecated code, unused imports) #88 (EnTeQuAk)
  • Merged gevent/zmq updates, ported to requests >= 1.2 #87 (EnTeQuAk)
  • Added option '--only-summary' for only printing stats at the end. #80 (dougblack)
  • bump requests dependency to most recent pre 1.0 version (i.e. most recen... #76 (sanga)
  • Stats refactoring #74 (heyman)
  • Enhancement/url error #72 (krallin)
  • Include method name in command line logging #66 (amandasaurus)
  • use correct python special method name #64 (amandasaurus)
  • Small fixes #63 (sanga)
  • Use shutdown function when num_requests are done #60 (afajl)
  • Update docs/api.rst #55 (cbrinley)
  • Added argument to options parser indicating on which port to run the web UI #54 (manova)

v0.6.2 (2013-01-10)

Full Changelog

Closed issues:

  • greenlet error when used distributed locust under Python2.6 #53
  • Get fails in clean install on Ubuntu: KeyError: 'start_time' #52

Merged pull requests:

  • add docs: Installing Locust on Mac OS #51 (yurtaev)
  • Add parent to TaskSet to enable state sharing among hierarchical TaskSets #50 (daubman)

v0.6.1 (2012-12-04)

Full Changelog

Closed issues:

  • Locust throwing error when reaching NUM_REQUESTS parameter #47

v0.6 (2012-11-29)

Full Changelog

Fixed bugs:

  • Master node fails to start if a slave node is still running #15

Closed issues:

  • Drop the require_once decorator #42
  • Improve catch_response feature (was previous: Remove catch_response feature from HttpBrowser) #39
  • RPS count drops when master and slaves drift in time #38
  • FEAT: add stat support for chunked transfer-encoding #33
  • Date or timer for automatic shutdown of test #31
  • Option to ignore query parameters on stats #29
  • Remove SubLocust and merge into Locust class #16
  • Add support for shutting down slaves without restarting master #6

Merged pull requests:

v0.5.1 (2012-07-01)

Full Changelog

Closed issues:

  • loglevel and logfile don't seem to work #25

v0.5 (2012-07-01)

Full Changelog

Closed issues:

  • Remove Confluence specific task ratio formatter #13
  • Add HTTP request method (GET/POST/PUT, etc) to statistics table #3

Merged pull requests:

  • Refactoring (separation) of ramping code; Added tooltips for ramping form in ui #28 (HeyHugo)
  • Support Basic HTTP Authorization for https requests #27 (corbinbs)
  • Add content-disposition with a filename. Fix missing import (warnings). #24 (benjaminws)
  • Fixed CSV stats export order #23 (quosa)
  • request timing csv endpoint was returning Internal Error #22 (pedronis)
  • fix continuous resetting on of stats in master+slaves mode #19 (pedronis)

v0.4 (2011-12-05)

Full Changelog

Fixed bugs:

  • Total RPS counter does not work #9
  • Total median value is zero in the web interface #7
  • Wrong failure percentage in statistics #5
  • Raising InterruptLocust within with statement + catch_response causes failure #4

Closed issues:

  • Add sorting capabilities in web UI #8
  • Add/improve support for running Locust distributed #1

Merged pull requests:

  • optional ramping feature; sorting stats by column #11 (HeyHugo)
  • Dynamic changing of locust count #10 (HeyHugo)

* This Changelog was automatically generated by github_changelog_generator