Skip to content

Latest commit

Β 

History

History
1860 lines (1239 loc) Β· 135 KB

CHANGELOG.md

File metadata and controls

1860 lines (1239 loc) Β· 135 KB

Detailed changelog

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

2.31.6 (2024-09-15)

Full Changelog

Fixed bugs:

  • RPS vs Total Running Users #2895
  • Overwriting weight by config-users may lead to crash #2852
  • FastHttpSession requests typing for the json argument should support lists #2842
  • Dockerfile warning #2811

Closed issues:

  • Cleaning up the build process #2857
  • Simplify GitHub Actions using install-poetry #2822

Merged pull requests:

2.31.5 (2024-08-30)

Full Changelog

Fixed bugs:

  • Pressure testing is over, but RPS and Users still have data #2870

Merged pull requests:

2.31.4 (2024-08-26)

Full Changelog

Merged pull requests:

2.31.3 (2024-08-15)

Full Changelog

Fixed bugs:

  • Brew installed locust missing UI assets #2831
  • response avg time is NaN #2829
  • Windows Action Runs Wrong Version of Locust #2796

Merged pull requests:

2.31.2 (2024-08-06)

Full Changelog

Merged pull requests:

  • Prebuild UI in PyPi publish steps so that even source distributions contain web UI code #2839 (mquinnfd)
  • Add Tests for Web UI Line Chart #2838 (andrewbaldwin44)
  • Documentation: Configure html_baseurl and jinja on RTD #2837 (plaindocs)

2.31.1 (2024-08-05)

Full Changelog

Merged pull requests:

  • Fix issue with downloading HTML report, update package.json for webui build #2834 (andrewbaldwin44)

2.31.0 (2024-08-05)

Full Changelog

Merged pull requests:

2.30.0 (2024-07-31)

Full Changelog

Fixed bugs:

  • Locust / pypy fails with "AttributeError: module 'gc' has no attribute 'freeze'" error. #2818
  • Worker sometimes fails to send heartbeat after upgrade to urllib3>=1.26.16 #2812
  • Web UI lacking asset #2781

Closed issues:

  • Charts Update Is Delayed #2771
  • Use itertools.cycle in SequentialTaskSet #2740
  • SequentialTaskSet handles task weights in an inconsistent way #2739

Merged pull requests:

  • Update poetry windows tests #2821 (mquinnfd)
  • Fix pypy gc.freeze() AttributeError #2819 (jimoleary)
  • Fix Dockerfile style warning #2814 (mehrdadbn9)
  • Avoid deadlock in gevent/urllib3 connection pool (fixes occasional worker heartbeat timeouts) #2813 (tdadela)
  • Replace total avg response time with 50 percentile (avg was broken) #2806 (andrewbaldwin44)
  • Add example of a bottlenecked server and use that test to make a new graph for the docs #2805 (cyberw)
  • Fix tests on windows #2803 (mquinnfd)
  • Provide warning for local installs where yarn is not present #2801 (mquinnfd)
  • Fix Extend Webui Example #2800 (andrewbaldwin44)
  • Correctly set version from Poetry in published builds #2791 (mquinnfd)
  • Fix StatsEntry docstring #2784 (tdadela)
  • dispatch benchmark test improvements #2780 (tdadela)
  • Typing: strict optional in dispatch.py #2779 (tdadela)
  • new events for heartbeat and usage monitor #2777 (mgor)
  • FastHttpSession requests typing #2775 (tdadela)
  • Remove Line Chart Default Zoom #2774 (andrewbaldwin44)
  • FastHttpSession: Enable passing json as a positional argument for post() and stop converting response times to int #2772 (tdadela)
  • SequentialTaskSet: Allow weighted tasks and dict in .tasks #2742 (bakhtos)
  • Implement Poetry build system (mainly so we don't have to commit dynamically generated front end bundles to git) #2725 (mquinnfd)

2.29.1 (2024-06-25)

Full Changelog

Fixed bugs:

  • locust/webui/dist/index.html script errors. #2753

Merged pull requests:

2.29.0 (2024-06-07)

Full Changelog

Fixed bugs:

  • The time of the downloaded html report is not correct #2691
  • Event spawning_complete fires every time a user is created #2671
  • Delay at startup and high cpu usage on Windows in Python 3.12 #2555

Closed issues:

  • Log a warning if getting locustfile from master takes more than 60s #2748
  • Show the reset button even after stopping a test #2723
  • Add date to charts in web UI #2678

Merged pull requests:

2.28.0 (2024-05-23)

Full Changelog

Fixed bugs:

  • The Charts presentation in the report downloaded by locust is problematic #2706
  • Locust insists on using IPv6 despite being in an IPv4 stack. #2689
  • When there is an error in the FAILURES of the front-end page when there is a worker, there is no escape. #2674

Closed issues:

  • Pin the headers and aggregated row to the top and bottom of the window #2688
  • Remove legacy UI #2673
  • TaskSet's _task_queue should be a collections.deque? #2653

Merged pull requests:

  • Pin the headers to the top of the window #2717 (JavierUhagon)
  • Dont enable ipv6 for zmq if no ipv6 stack exists #2715 (cyberw)
  • Give better error message if User subclass doesnt call base constructor #2713 (cyberw)
  • Stop quoting error messages an extra time in distributed mode #2712 (cyberw)
  • Lower log levels for exceptions in flask #2711 (cyberw)
  • Stop HTML escaping errors for /stats/requests endpoint #2710 (cyberw)
  • Update Stats History on HTML Report #2709 (andrewbaldwin44)
  • Logging: Only print hostname instead of FQDN #2705 (cyberw)
  • Remove legacy UI #2703 (andrewbaldwin44)
  • WebUI: update users, spawn_rate, host and run_time in parsed_options (for LoadShapes that might access it) #2656 (raulparada)

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