Skip to content

Latest commit

 

History

History
1621 lines (1066 loc) · 115 KB

CHANGELOG.md

File metadata and controls

1621 lines (1066 loc) · 115 KB

Detailed changelog

The most important changes can also be found in the documentation.

2.27.0 (2024-05-06)

Full Changelog

Fixed bugs:

  • User Classes with Empty Tasks Results in TypeError: 'NoneType' object is not iterable #2694

Closed issues:

  • Why defining run_time on worker node raises an error #2683

Merged pull requests:

  • annotate return types of a few functions to enable more mypy check #2702 (tdadela)
  • refactor(WindowsKeyPoller): change implementation of captured_chars #2701 (tdadela)
  • refactor: replace deprecated utcfromtimestamp function #2700 (tdadela)
  • Use deque for tasks in taskset instead of plain list #2698 (cyberw)
  • fix: Ensure locust does not crash when an User class has no task #2696 (hangonlyra)
  • Fix various spelling errors using codespell #2687 (cyberw)
  • Dispatch/user distribution calculation using Kullback-Leibler divergence. Allow float weights. #2686 (tdadela)
  • Allow worker process to run with --run-time specified, just log a warning about it being ignored #2685 (Sawiq)
  • Small cleanup: mypy type-ignore and dev deps #2684 (tdadela)
  • Simplify how locustfiles are found (using -f). Don’t automatically append .py #2655 (DennisKrone)

2.26.0 (2024-04-18)

Full Changelog

Merged pull requests:

  • Reformat and lint stuff. And pin gevenhttpclient version #2682 (cyberw)
  • Add ruff pre commit hook #2680 (cyberw)
  • Remove python 3.8 compatibility code #2679 (cyberw)
  • Drop support for Python 3.8 #2677 (cyberw)
  • Update geventhttpclient and adjust FastHttpUser max_retries / max_redirects #2676 (cyberw)

2.25.0 (2024-04-14)

Full Changelog

Fixed bugs:

  • Wrong distribution of virtual users by user classes #2662
  • Monkey patching error #2661
  • cannot specify task of UserClass when locust run on distributed mode #2657
  • [ModernUI] HTML entities are incorrectly escaped in generated report #2635
  • Bug / Feature request: Time intensive custom_messages functions trigger heartbeat timeout #2608

Closed issues:

  • Add an UI extension exemple that display proxy cache hit/miss #2644

Merged pull requests:

  • Log deprecation warning for --legacy-ui #2670 (cyberw)
  • Add an example that displays cache stats using the new UI. #2669 (obriat)
  • Update User Classes in Distributed Mode #2666 (andrewbaldwin44)
  • fix(dispatch): UserClasses weight distribution with gcd #2663 (llirrikk)
  • Fix issue with concurrent custom messages and docs #2654 (cyberw)
  • Add functionality to run listener functions for custom_messages concurrently #2650 (samuelspagl)
  • [Modern UI] Escape HTML Entities correctly in Exceptions Table #2648 (andrewbaldwin44)

2.24.1 (2024-03-20)

Full Changelog

Fixed bugs:

  • 'NoneType' object has no attribute 'get' when stream=True in FastHttpSession.request #2640
  • Locust --processes argument generating multiple html reports #2639
  • cannot open dashboard and console error shows 'the server responded with a MIME type of "text/plain".' #2632
  • extend web ui not working since 2.22.0 #2629
  • Custom parameters incomplete display #2628

Closed issues:

  • pyproject.toml support for locust configuration #2298

Merged pull requests:

  • Do not call blocking content property and lazily load response #2643 (neiser)
  • Dont throw an exception in FastHttpUser if a request is made with stream=True and the connection fails #2642 (cyberw)
  • [Modern UI] Modal Can Extend Beyond Screen Limits #2631 (andrewbaldwin44)
  • chore: remove repetitive words #2625 (tgolang)
  • Add documentation about manually closing TCP/HTTP connections #2623 (DennisKrone)
  • Update ruff to 0.3.0 #2619 (cyberw)

2.24.0 (2024-02-29)

Full Changelog

Fixed bugs:

  • Blank page when accessing Locust Web UI via reverse proxy with subpath #2614
  • [Report][Modern-UI] HTML report is blank #2603

Closed issues:

  • SocketIOUser send method supports specific subscribe request #2616
  • "Sticky" user types on workers #2522

Merged pull requests:

2.23.1 (2024-02-11)

Full Changelog

Fixed bugs:

  • Modern UI: Average Response Time and 95th percentile have the same color #2598

Closed issues:

  • Modern UI: Add exception message column on the Exception Statistics #2597

Merged pull requests:

2.23.0 (2024-02-11)

Full Changelog

Closed issues:

  • Modern UI: ability to sort tables by column specific column #2593
  • Modern UI - User class picker - add option to enable/disable everything. #2585
  • [LocustLineChart] Implement an option/configuration for users to customize the color of the LocustLineChart. #2578

Merged pull requests:

  • Tables are Sortable by Default #2596 (andrewbaldwin44)
  • Allow getting locust files from http urls #2595 (DennisKrone)
  • Fixed typos in documentation #2592 (dorin131)
  • Remove no longer relevant documentation and (already not working?) checks for not loading locustfiles named locust.py #2591 (cyberw)
  • Add Select All / None Checkbox to User Class Picker #2590 (andrewbaldwin44)
  • Add New Colors for the Locust Charts #2589 (andrewbaldwin44)
  • Work around issue with locustfiles named "locust.py" #2587 (cyberw)
  • Update writing-a-locustfile.rst #2584 (KaushikPathak90)
  • Locustfile distribution from master to worker #2583 (cyberw)
  • Gh actions: Run tests on MacOS #2580 (cyberw)
  • Use defaultdict:s for stats dictionaries instead of setdefault #2579 (cyberw)
  • DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead #2576 (mgor)
  • docs(running-distributed): cores -> logical cores #2570 (tdadela)

2.22.0 (2024-02-04)

Full Changelog

Fixed bugs:

  • Modern UI - new test modal not scrollable #2574

Merged pull requests:

2.21.0 (2024-01-27)

Full Changelog

Fixed bugs:

  • 95th percentile line chart does not display correctly on the Response Times (ms) graph #2540
  • ValueError: greenlet.greenlet size changed, may indicate binary incompatibility. Expected 152 from C header, got 40 from PyObject #2539
  • TaskSet missing _cp_last_run attribute #2532
  • Modern UI "forgets" the selected user count and ramp up rate when starting a new test or editing a running one #2531
  • Update dependency or remove support for Basic Auth for the Web UI #2517

Closed issues:

  • Unifying percentile displays in Locust's statistics screens #2546
  • Improve the Class Picker #2545
  • Add response.ok support to FastHttpUser's FastResponse, ala HttpUser/requests #2520

Merged pull requests:

  • Optimize memory usage when using --processes #2564 (cyberw)
  • docs: update developing-locust.rst (black, flake8) -> ruff #2562 (tdadela)
  • Allow User weight adjustment (and task selection) in UI when running with --class-picker, or on command line with --config-users argument #2559 (andrewbaldwin44)
  • Ruff enable isort (with custom sections) #2556 (tdadela)
  • update readthedocs-sphinx-search #2553 (cyberw)
  • Fix pedantic typo in the index.html template #2552 (marcelofern)
  • Ruff set python version and enable more rules #2551 (tdadela)
  • Customization Feature for Percentile Display on Statistics Page #2550 (FooQoo)
  • Use ruff instead of flake8 and black for linting and formatting #2549 (cyberw)
  • Fix mypy configuration & upgrade typing #2548 (tdadela)
  • Fix Web UI Chart History #2544 (andrewbaldwin44)
  • Web UI Modern Auth #2538 (andrewbaldwin44)
  • Modern UI: Fix Default Values for Edit / Start New Test #2537 (andrewbaldwin44)
  • Added response.ok support to FastHttpUser's FastResponse class similar to HttpUser's Response #2535 (PankajKhanwani)
  • Update shape class' runner when Web UI picker is used #2534 (wiatrak2)
  • setting initial _cp_last_run on TaskSet in order to allow constant_pacing wait time strategy #2533 (ionutab)

2.20.1 (2024-01-03)

Full Changelog

Fixed bugs:

  • Vite-version needs to be updated #2528
  • Issue of 100% CPU usage when closing WebSocket connections. #2516

Merged pull requests:

  • Update Vite to 4.5.1 #2530 (cyberw)
  • Bump vite from 4.4.9 to 4.4.12 in /locust/webui #2527 (dependabot[bot])
  • update docker actions to get rid of node12 deprecation warnings #2524 (mgor)
  • Support IPv6 for zmq connection between master and worker #2521 (simonwu-sn)
  • run_single_user improvements #2519 (cyberw)
  • Bump Requests to 2.26.0, remove explicit dependency on charset_normalizer #2518 (cyberw)

2.20.0 (2023-12-13)

Full Changelog

Fixed bugs:

  • har2locust KeyError: '_resourceType' #2503
  • FastHTTPUser determines StatusCode 304 as Failed #2500
  • FastHttpUser is stricter than HttpUser about the host attribute #2492
  • Unable to modify custom parameters from UI using modern UI #2489
  • Exception 'LookupError: unknown encoding:' when response contains content-type not handled by requests.utils.get_encoding_from_headers #2482

Merged pull requests:

2.19.1 (2023-11-27)

Full Changelog

Closed issues:

  • SocketIOUser not support send BINARY data #2457

Merged pull requests:

  • Change logging of call to sys.exit() to info level #2490 (cyberw)
  • fix(typing): typing.DefaultDict in test_interruptable_task.py #2488 (tdadela)
  • Dont suppress StopUser or GreenletExit in on_stop #2486 (ALagierski)
  • FastResponse: Detect response text encoding when no information is present on the response headers. #2485 (MiltiadisKoutsokeras)
  • Fix an edge case when no directory is part of csv-prefix #2483 (sillydan1)
  • Create any directories as part of the CSV Prefix #2481 (sillydan1)

2.19.0 (2023-11-21)

Full Changelog

Merged pull requests:

  • Fix issue with --processes: Stop parent process from trying to kill children too fast #2478 (cyberw)
  • Update command line argument descriptions and docs #2477 (cyberw)
  • Update minimum version of various dependencies #2476 (cyberw)
  • Stop worker from automatically quitting if connected to an older version master that doesnt send heartbeats #2475 (cyberw)
  • Shut down workers if master goes missing for too long #2474 (cyberw)
  • Add --processes parameter to automatically fork worker processes #2472 (cyberw)

2.18.4 (2023-11-19)

Full Changelog

Fixed bugs:

  • Total RPS Charts | Failures line chart does not display current number of failures #2469
  • Modern UI: Lack of information about time and user count in charts #2467
  • Modern UI: Wrong chart's legend for overridden percentiles values #2463
  • Modern UI: Can't sort columns on statistics page and downloaded report #2449
  • Incorrect RPS when decreasing the number of users #2399

Closed issues:

  • Improve UI of Sorting Columns #2466

Merged pull requests:

2.18.3 (2023-11-12)

Full Changelog

Closed issues:

  • Add Modern UI HTML Report to --html Option #2458

Merged pull requests:

2.18.2 (2023-11-10)

Full Changelog

Fixed bugs:

  • 2.18 - fasthttp error for no content response #2450
  • Segmentation fault running the locust command #2447

Merged pull requests:

2.18.1 (2023-11-01)

Full Changelog

Fixed bugs:

  • Modern UI shows wrong (old) hostname when setting hostname in start dialog #2435
  • Unable to load multiple custom shape classes in web UI from --class-picker #2412

Closed issues:

  • Add Log Viewer to Modern UI #2437

Merged pull requests:

2.18.0 (2023-10-26)

Full Changelog

Fixed bugs:

  • Pacing and RPS trouble #2427
  • Content-Type with version information is not properly parsed #2415

Closed issues:

  • Modernize the report.html when using the --modern-ui Flag #2419
  • Proposal for Re-Writing the Web UI #2396

Merged pull requests:

2.17.0 (2023-10-05)

Full Changelog

Fixed bugs:

  • Cannot stop locust in case of exceptions in on_stop() #2401

Closed issues:

  • Dropdown menu in web UI for custom arguments #2371

Merged pull requests:

2.16.1 (2023-08-07)

Full Changelog

Merged pull requests:

  • Delay importing locust-plugins to prevent circular import #2380 (cyberw)
  • Import locust_plugins if available to give access to its custom arguments #2379 (cyberw)
  • Deprecate LOCUST_PLAYWRIGHT env var #2378 (cyberw)

2.16.0 (2023-08-04)

Full Changelog

Fixed bugs:

  • Bug in StagesShapeWithCustomUsers #2358
  • Fail to spawn fixed users when run with DoubleWave load shape #2345
  • KeyboardInterrupt does not gracefully exit custom load shape #1910

Merged pull requests:

2.15.1 (2023-03-14)

Full Changelog

Closed issues:

  • Ability to specify percentiles you need for response time chart #2311
  • locust k8s operator #2188

Merged pull requests:

  • Update helper text #2317 (rafaelhdr)
  • Add PERCENTILES_TO_CHART param in stats.py to make the Response Time Chart configurable #2313 (A1BOCO)

2.15.0 (2023-02-28)

Full Changelog

Fixed bugs:

  • "Download as PNG" text gets cut off #2307
  • New worker fails to connect until master restart #2302

Merged pull requests:

2.14.2 (2023-01-04)

Full Changelog

Fixed bugs:

  • 2.14.1 release missing py.typed file #2282

2.14.1 (2023-01-03)

Full Changelog

Fixed bugs:

  • SetuptoolsDeprecationWarning when building with setuptools/65.5.0 #2279
  • Error installing locust using pipenv as a -- #2277

Merged pull requests:

2.14.0 (2022-12-13)

Full Changelog

Merged pull requests:

2.13.2 (2022-12-09)

Full Changelog

Fixed bugs:

  • docs: Small errors in docs #2253

Closed issues:

  • UnboundLocalError after receiving ZMQ corrupted message #2260

Merged pull requests:

  • Fix: Ask worker to reconnect if master gets a broken RPC message #2271 (marcinh)

2.13.1 (2022-12-01)

Full Changelog

Fixed bugs:

  • locust.io is down #2265
  • locust 2.13.0 failed to run #2263
  • Issue installing on M1 Mac #2249
  • 'Namespace' object has no attribute 'stop_timeout' in version 2.13.0 #2243

Closed issues:

  • locust test flask application #2255

Merged pull requests:

  • Dont reset connection to worker if master receives a corrupted zmq message #2266 (marcinh)
  • auto generated locustfiles from browser recordings using har2locust (documentation) #2259 (cyberw)
  • Small fixes to documentation #2254 (jscanlannyc)
  • Added a better working docker command for Windows users #2248 (MagnusNordboe)
  • Update documentation for Environment.parsed_options #2247 (klazuka)
  • Use C-style (percent) string formatting for all debug logging statements (improves performance) #2245 (cyberw)
  • Replace datetime.utcnow() with datetime.now(tz=timezone.utc), as it is kind of an antipattern #2244 (cyberw)
  • Tiny performance enhancements #2240 (cyberw)

2.13.0 (2022-10-28)

Full Changelog

Fixed bugs:

  • LoadTestShape not included in the API docs #2232
  • ImportError: cannot import name 'OrderedDict' from 'typing' #2223

Merged pull requests:

  • Fix issue with --stop timeout parsing time strings #2239 (cyberw)
  • Make LoadTestShape a proper abstract class #2233 (cyberw)
  • Add the ability to set default_headers on FastHttpUser #2231 (cyberw)
  • URL link on the host name for fast navigation to the API #2228 (JonanOribe)

2.12.2 (2022-10-14)

Full Changelog

Fixed bugs:

  • Class picker incorrectly populates Parsed Options #2192

Closed issues:

  • Run time input for web-ui #2198

Merged pull requests:

  • Run unit tests on Python 3.11 (and explicitly support it) #2225 (cyberw)
  • Fix exception when someone sets both --headless and --autostart #2224 (cyberw)
  • Delete the CustomMessageListener class for type consistency #2221 (samuelspagl)
  • Output install location and version info when called with -V #2213 (cyberw)

2.12.1 (2022-09-21)

Full Changelog

Fixed bugs:

  • Editing a running test in the Web UI with class-picker restarts user count back at 0 #2204

Closed issues:

  • Add logger when worker is waiting for master to connect #2199
  • Python 3.10 available for the latest docker hub hosted image #2196

Merged pull requests:

2.12.0 (2022-09-07)

Full Changelog

Fixed bugs:

  • WebUI Edit running load test not carried user_classes when enabled --class-picker #2170

Merged pull requests:

  • Log warning if tag filtering gets rid of all tasks #2186 (cyberw)
  • GitHub Workflows security hardening #2184 (sashashura)
  • ft: LoadTestShapes with custom user classes #2181 (samuelspagl)
  • Bump FastHttpUser/geventhttpclient dependency to 2.0.2 #2180 (cyberw)
  • Allow more recent versions of pyzmq (it was only 23.0.0 that was broken) #2179 (cyberw)
  • Bump default concurrency for fast http user to 10 #2177 (cyberw)
  • Web UI style fixes: about dialog cannot be opened in the startup page #2173 (alterhu2020)

2.11.1 (2022-08-25)

Full Changelog

Merged pull requests:

  • Use more clear wording in --run-time reached stopping log message. #2172 (cyberw)
  • fix: edit load test missing the userclasses data #2171 (alterhu2020)
  • Fix custom message example in documentation #2165 (aathan)
  • Fix broken link in cpu warning message. #2164 (conghuiw)
  • Allow multiple definitions of same user class name if they come from the same place #2160 (cyberw)
  • Include worker_index in worker connection logging, and stop using the word "client" for what is actually a worker #2159 (cyberw)
  • Upgrade GitHub Actions #2158 (cclauss)
  • Fix typo #2157 (cclauss)

2.11.0 (2022-08-12)

Full Changelog

Fixed bugs:

  • Not able to achieve high RPS (3000 users, 20 workers, 32 vcpu-64 GB RAM) #2154
  • Flask 2.2.0 Update breaks request_stats_full_history_csv in web.py #2147
  • "New test" with different number of users #2135

Closed issues:

  • Use of different LoadTestShape classes in the same locust file #2151

Merged pull requests:

  • Add example launch.json for debugging the whole Locust runtime in vscode #2156 (SamPosh)
  • feat: add 'worker_index' to WorkerRunner #2155 (gdm85)
  • chore: Remove misleading docstring in test #2153 (mboutet)
  • fix: Ensure new test starts with specified number of users after previous test has been stopped #2152 (mboutet)
  • Pass multiple Locustfiles and allow selecting User and Shape class from the WebUI #2137 (mikenester)

2.10.2 (2022-08-03)

Full Changelog

Fixed bugs:

  • [SocketIOUser] - I have provided the code to turn off the SSL certification but still, I'm getting an SSL certification error #2144
  • HTML Report does not correctly escape statistics data #2126
  • "Stop" hang on "stopping" state when there are more than one workers in distributed mode. #2111

Closed issues:

  • Html report: table should be sortable #2132
  • Funny resource URL prefix disallows using locust behind nginx proxy #2030

Merged pull requests:

2.10.1 (2022-06-28)

Full Changelog

Merged pull requests:

  • Increase CONNECT_RETRY_COUNT to avoid workers giving up too soon if master is not up yet #2125 (cyberw)

2.10.0 (2022-06-27)

Full Changelog

Closed issues:

  • Add ACK for worker connection #2044

Merged pull requests:

2.9.0 (2022-05-19)

Full Changelog

Fixed bugs:

  • Locust is not starting with pyzmq 23.0.0 #2099
  • Users with fixed_count not being relocated after rebalance #2091
  • jinja2.exceptions.TemplateAssertionError: no test named 'boolean' when attempting to visit UI #2087
  • Output is not saved to CSV when using LoadTestShape #2075
  • New jinja2 pinning makes it impossible to build our codebase #2061
  • test_start event triggered multiple times on workers #1986

Merged pull requests:

  • avoid using pyzmq 23. Fixes #2099 #2100 (cyberw)
  • dispatch: rebalance users with a fixed count #2093 (andydunstall)
  • Remove explicit version requirement for jinja2 #2090 (cyberw)
  • print_stats table width fix for #2084 #2088 (mgor)
  • Move CSV stats printer gevent spawn up a few lines #2085 (max-rocket-internet)
  • uniform style of stats/report ascii tables #2084 (mgor)
  • FastHttpUser improvements (including a rename of parameter "url" to "path") #2083 (mgor)
  • Add table linkage, you can see the data of the three tables at the sa… #2082 (helloNice)
  • Drop support for Python 3.6 #2080 (cyberw)
  • Ensure test_start is run to completion on worker #2072 (mboutet)
  • modernized build #2070 (mgor)

2.8.6 (2022-04-07)

Full Changelog

Merged pull requests:

2.8.5 (2022-03-28)

Full Changelog

Merged pull requests:

2.8.4 (2022-03-15)

Full Changelog

Fixed bugs:

  • Locust while running as library with grpc client not outputting stats #1969
  • Locust does not stop all users #1947

Closed issues:

  • Introduce test_stopping event #2031

Merged pull requests:

2.8.3 (2022-02-25)

Full Changelog

Merged pull requests:

  • Ran pyupgrade on the code base, removing various "Python2-isms". #2032 (cyberw)
  • Ensure users are distributed evently across hosts during ramp up #2025 (cyberw)
  • Bump minimum required gevent version to 20.12.1 #2023 (cyberw)
  • Fix typos #2022 (kianmeng)

2.8.2 (2022-02-14)

Full Changelog

Fixed bugs:

  • Issue to install python libraries inside locust container when using the locust docker image version 2.8.1 #2015

Merged pull requests:

  • Dockerfile: Fix permissions in venv to allow installing packages in derived images #2016 (cyberw)
  • Fix locust version in docker image (lose the .dev0) #2014 (cyberw)

2.8.1 (2022-02-13)

Full Changelog

Fixed bugs:

  • Load being distributed to missing workers too Version 2.7.4.dev14 #2008

Merged pull requests:

  • Dockerfile: use a builder image to further optimize image size #2013 (cyberw)

2.8.0 (2022-02-13)

Full Changelog

Closed issues:

  • Add type hints #2000
  • 'Tasks' section remains empty for html on v 2.7.0 #1994

Merged pull requests:

  • Dockerfile: only install build dependencies on arm64 (everyone else has pre-built wheels) #2011 (cyberw)
  • Shrink docker image, mainly by switching base image to python3.9-slim #2009 (cyberw)
  • Fix link to distributed load generation documentation in CPU log warning #2007 (mayaCostantini)
  • Mark package as being typed and add some missing type hints #2003 (RobertCraigie)
  • Fix empty tasks section in UI and static report bug #2001 (EzR1d3r)

2.7.3 (2022-02-06)

Full Changelog

Merged pull requests:

  • Support locust-plugin's Playwright User: Import trio before gevent patching if LOCUST_PLAYWRIGHT is set #1999 (cyberw)
  • #1994 Fixing to fallback in case of local execution #1997 (tyge68)

2.7.2 (2022-02-03)

Full Changelog

Fixed bugs:

  • locust:2.7.1 exits when clicking "Stop Tests" in the UI #1995

Merged pull requests:

2.7.1 (2022-02-02)

Full Changelog

Fixed bugs:

  • --html doesnt work in web mode #1944

Merged pull requests:

2.7.0 (2022-01-29)

Full Changelog

Closed issues:

  • I hope to add a column of 99%ile on the Web UI #1966

Merged pull requests:

  • Fix "socket operation on non-socket" at shutdown, by reverting #1935 #1991 (cyberw)
  • unit tests: add extra validations in integration tests #1990 (cyberw)
  • Add 99%ile for Web UI #1989 (FooQoo)
  • Add run_single_user and documentation on how to debug Users/locustfiles #1985 (cyberw)
  • hardening Environment.shape_class for distinct usage #1983 (uddmorningsun)
  • Fixing issue #1961 with incorrect "All users spawned" log messages wh… #1977 (EzR1d3r)

2.6.1 (2022-01-26)

Full Changelog

Merged pull requests:

2.6.0 (2022-01-23)

Full Changelog

Fixed bugs:

  • Docs: Missing locustfile.py in code structure example #1959
  • Error when setting multiple host values #1957

Closed issues:

  • Possibility to set the exact number of users to spawn (instead weight) #1939

Merged pull requests:

  • Pass tags and exclude-tags to workers. #1976 (cyberw)
  • WorkerRunner: read --expect-workers from job parameters #1975 (cyberw)
  • Update README.md #1974 (eltociear)
  • Clean up some logging messages #1973 (cyberw)
  • Ensure heartbeat_worker doesnt try to re-establish connection to workers when quit has been called #1972 (cyberw)
  • fixed_count: ability to spawn a specific number of users (as opposed to just using weights) #1964 (EzR1d3r)
  • Update running-cloud-integration.rst #1958 (DieBauer)
  • fix master runner not close rpc server #1935 (lizhaode)

2.5.1 (2021-12-09)

Full Changelog

Fixed bugs:

  • User distribution should happen when new workers comes in #1884

Merged pull requests:

  • Fix running the web UI with class defined hosts #1956 (chaen)
  • Throw exception when calling response.success()/.failure() if with-block has not been entered #1955 (cyberw)
  • Gracefully fail to resize stats command line output if terminal doesnt support it, instead of crashing #1951 (cyberw)
  • Stop declaring "fake" class level variables in Environment, User and StatsEntry #1948 (cyberw)
  • fix misspellings in doc (mostly "it's") #1945 (deronnax)
  • Fixed typo in writing-a-locustfile.rst #1943 (Maffey)
  • Fix docs issues from distributed execution with IaC #1934 (marcosborges)
  • New Provisioning Example for Distributed Execution Using IaC - Terraform/AWS/EC2 #1933 (marcosborges)
  • Ensure terminal is restored at exit #1932 (cyberw)
  • Fix issue #1915 #1916 (EzR1d3r)

2.5.0 (2021-11-05)

Full Changelog

Merged pull requests:

  • Change request event url field to contain absolute URL not just path. #1927 (cyberw)
  • Suppress warnings for patch version mismatch between master and worker (and make them debug level instead) #1926 (cyberw)

2.4.3 (2021-11-02)

Full Changelog

Fixed bugs:

  • module 'signal' has no attribute 'SIGWINCH' on 2.4.2 #1924

2.4.2 (2021-11-01)

Full Changelog

Fixed bugs:

  • the report cant show the right time #1909
  • cant show html chart version locust 2.4.0 #1908

Closed issues:

  • Update locustio/locust Docker image to Python 3.9.6 #1821

Merged pull requests:

2.4.1 (2021-10-19)

Full Changelog

Fixed bugs:

  • No longer logging interval stats when using LoadTestShape after 2.1.x #1906

Merged pull requests:

2.4.0 (2021-10-11)

Full Changelog

Fixed bugs:

  • Locust will not work, if there is a custom 'run' @task / function #1893
  • MasterRunner target_user_count no longer set for test_start event listeners #1883

Merged pull requests:

  • Missing colons after else keyword in Event Hooks doc #1902 (TatchNicolas)
  • Support (and test) Python 3.10 #1901 (cyberw)
  • Add start_time and url parameters to request event. #1900 (cyberw)
  • Make User.run/TaskSet.run final and raise an exception if someone marks it with @task #1895 (cyberw)
  • Ensure target_user_count is set before test_start event is fired #1894 (mboutet)
  • Ensure target_user_count is set before ramping-up or down #1891 (mboutet)
  • Release docker image for arm64. #1889 (odidev)
  • #1884 User distribution should happen when new workers comes in #1886 (tyge68)

2.2.3 (2021-09-20)

Full Changelog

Merged pull requests:

  • Fix issue with custom arguments in config file when not running headless #1888 (cyberw)

2.2.2 (2021-09-15)

Full Changelog

Fixed bugs:

  • Version information in Docker image is incorrect #1885

Closed issues:

  • Ability to explicitly set which arguments will be exposed/visible in the web ui #1876

Merged pull requests:

  • Ability to hide extra args from web ui #1881 (fabito)
  • Refactor (remove duplication) headless/autostart mechanism. #1880 (cyberw)
  • Wait for --expect-workers when running --autostart #1879 (cyberw)
  • Dont launch autostart greenlet on workers, even if they happened to get the --autostart flag #1878 (cyberw)
  • Added documentation for start_shape #1874 (daniel135790)
  • Fix Regression in Full History CSV Percentiles #1873 (TaylorSMarks)
  • Ability to inject custom html elements in the head element #1872 (fabito)

2.2.1 (2021-09-02)

Full Changelog

Fixed bugs:

  • Importing any locust plugin breaks the UI and distributed load generation. #1870

Merged pull requests:

  • Disable setting custom parameters of None or boolean type in web UI. Fixes #1870 #1871 (cyberw)

2.2.0 (2021-09-01)

Full Changelog

2.2.0b0 (2021-09-01)

Full Changelog

Fixed bugs:

  • time display in live charts switches to the local time upon refresh #1835
  • Part of response times chart lines are missing #1702

Closed issues:

  • Response times get graphed as zero before first request is made #1852
  • Add flag to run with uniform weights #1838
  • Starting load test from the cli but monitoring from the web UI #831

Merged pull requests:

  • #1832 Displaying locustfile and tasks ratio information on index.html #1868 (tyge68)
  • Add --autostart and --autoquit parameters, fixes #831 #1864 (cyberw)
  • Add constant_throughput wait time (the inverse of constant_pacing) #1863 (cyberw)
  • Improve some of the doc issues that were missed from the previous PR #1861 (Serhiy1)
  • Handle user classes with weight = 0 #1860 (mboutet)
  • fix(examples): fix multiple_hosts.py example #1859 (obradovichv)
  • Alternative grouping #1858 (Serhiy1)
  • HttpUser: Unpack known exceptions #1855 (cyberw)
  • fix(charts): prevent displaying stats before requests are made #1853 (obradovichv)
  • Use UTC time for server stats history, localize times on the client #1851 (obradovichv)
  • FastHttpUser: Add it directly under locust package, make the documentation less scary. #1849 (cyberw)
  • Adjust github actions #1848 (cyberw)
  • Auto-generate version number using setuptools_scm and git tags #1847 (cyberw)
  • Add equal weights flag #1842 (shekar-stripe)
  • Show custom arguments in web ui and forward them to worker #1841 (cyberw)
  • Return the new users on Runner.spawn_users #1791 (pappacena)

2.1.0 (2021-08-08)

Full Changelog

Fixed bugs:

  • OOM error with master/slaves setup (zeromq, windows) #1372

Closed issues:

  • locust should add extending blocks to index.html to change the start test and edit test options #1822

Merged pull requests:

  • Fix docker builds #1845 (cyberw)
  • Bump dependency on pyzmq to fix #1372 (OOM on windows) #1839 (cyberw)
  • Use 1 as default in web UI start form + lots of documentation updates #1836 (cyberw)

2.0.0 (2021-08-01)

Full Changelog

Fixed bugs:

  • User Count Drops when Worker Abruptly Leaves The Test In Distributed Mode #1766

Merged pull requests:

  • update grpc example, because grpc gevent issue has been fixed #1834 (cyberw)
  • Speed up tests #1831 (mboutet)
  • Allow workers to bypass version check by sending -1 as version #1830 (cyberw)

2.0.0b4 (2021-07-28)

Full Changelog

Merged pull requests:

  • Improve logging messages and clean up code after dispatch refactoring (#1809) #1826 (mboutet)
  • Remove user_classes_count from heartbeat payload #1825 (mboutet)

2.0.0b3 (2021-07-16)

Full Changelog

Fixed bugs:

  • FastHttpUser requests are blocking #1810

Closed issues:

  • Restore locust_start_hatching functionality #1776

Merged pull requests:

  • Add option to set concurrency of FastHttpUser/Session #1812 (soitinj)
  • Fire test_start and test_stop events on worker nodes #1777 (nathan-beam)

2.0.0b2 (2021-07-12)

Full Changelog

Merged pull requests:

  • Auto shrink request stats table to fit terminal #1811 (cyberw)
  • Refactoring of the dispatch logic to improve performance #1809 (mboutet)

2.0.0b1 (2021-07-05)

Full Changelog

Merged pull requests:

  • Check version of workers when they connect. Warn if there is a mismatch, refuse 1.x workers to connect #1805 (cyberw)
  • Change the default User weight to 1 instead of 10. #1803 (cyberw)
  • Upgrade to flask 2 #1764 (corenting)

2.0.0b0 (2021-07-05)

Full Changelog

Fixed bugs:

  • Distribution of user classes is not respected and some user classes are just never spawned #1618

Closed issues:

  • Hatch rate in distributed mode spawns users in batches equal to number of slaves #896

Merged pull requests:

  • Move User selection responsibility from worker to master in order to fix unbalanced distribution of users and uneven ramp-up #1621 (mboutet)

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 (atkei)
  • 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)

* This Changelog was automatically generated by github_changelog_generator