The most important changes can also be found in the documentation.
2.31.6 (2024-09-15)
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:
Merged pull requests:
- Add Error Message for Accessing Login Manager without --web-login #2902 (andrewbaldwin44)
- Update Webui README #2901 (andrewbaldwin44)
- fix: Add worker_count = 1 to LocalRunner for parity with MasterRunner #2900 (tarkatronic)
- Remove redundant None in Any | None annotations #2892 (tdadela)
- Fix _kl_generator by filtering nonpositive User weights #2891 (tdadela)
- Update README.md #2889 (JonanOribe)
- Filename from URL Should Strip Query Params #2887 (andrewbaldwin44)
- Simplify Generator annotations - PEP 696 #2886 (tdadela)
- Fix FastHttpSession.request json typing #2885 (tdadela)
2.31.5 (2024-08-30)
Fixed bugs:
- Pressure testing is over, but RPS and Users still have data #2870
Merged pull requests:
- Ensure we don't accidentally hide errors while importing in locust-cloud or locust-plugins #2881 (cyberw)
- Add publishing dependency on build package step #2880 (mquinnfd)
- Build pipeline tweaks - docker tagging #2879 (mquinnfd)
- Webui Remove chart initial data fetch #2878 (andrewbaldwin44)
- Document use with uvx and remove openssl version from --version output #2877 (cyberw)
- Web UI Remove Scroll to Zoom #2876 (andrewbaldwin44)
- Cleaning and improvements in the Build Pipeline #2873 (mquinnfd)
- WebUI: Correct types for form select #2872 (andrewbaldwin44)
2.31.4 (2024-08-26)
Merged pull requests:
- Webui Allow changing select input size #2871 (andrewbaldwin44)
- Webui Replace Logo SVG #2867 (andrewbaldwin44)
- Add favicon that looks good in light color theme #2866 (heyman)
- Webui Add build lib command to package.json #2865 (andrewbaldwin44)
- Web UI Github Action Publish steps must Build lib #2864 (andrewbaldwin44)
- Fix npm publish issue #2863 (cyberw)
- GH actions: Update names of publish steps. Don't run prerelease steps when no prerelease is actually going to be published #2862 (cyberw)
- Webui Fix Version Tag in NPM Prerelease Step #2861 (andrewbaldwin44)
- Webui Fix NPM Publish Step #2860 (andrewbaldwin44)
- Web UI as a Library NPM Release #2858 (andrewbaldwin44)
- Add PostgresUser to examples #2836 (guel-codes)
2.31.3 (2024-08-15)
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:
- Web UI Remove Echarts startValue #2855 (andrewbaldwin44)
- Update GitHub action versions #2853 (cyberw)
- Improve docs for --class-picker/--config-users and give better error messages if json is bad #2851 (cyberw)
- Add missing margin between Logo and Host in Navbar #2850 (heyman)
- Web UI Should use Built-In Echarts Time Axis #2847 (andrewbaldwin44)
- Webui Notification Improvements #2846 (andrewbaldwin44)
- Use new logo in web UI + some minor improvements #2844 (andrewbaldwin44)
- Webui Add Scatterplot Support #2840 (andrewbaldwin44)
2.31.2 (2024-08-06)
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)
Merged pull requests:
- Fix issue with downloading HTML report, update package.json for webui build #2834 (andrewbaldwin44)
2.31.0 (2024-08-05)
Merged pull requests:
- Fix docker build for release #2830 (cyberw)
- Github Actions: Use node 20.x (fix PyPI Release and pre-Release Steps) #2828 (andrewbaldwin44)
- Improve Echarts and Expose Line and Axis Configuration #2826 (andrewbaldwin44)
- Bump Node #2825 (andrewbaldwin44)
- Integrations for Locust Cloud #2824 (andrewbaldwin44)
- Fix HTML Report Stats Table #2817 (andrewbaldwin44)
- Locust UI Charts Should Change Color Based on Theme #2815 (andrewbaldwin44)
- Locust UI as a Module #2804 (andrewbaldwin44)
- Log a message if total fixed_count is higher than number of users to spawn #2793 (cyberw)
- Simplify fixed_count Users generation in UsersDispatcher._user_gen #2783 (tdadela)
- URL Directory, and Multi-File Support for Locustfile Distribution #2766 (andrewbaldwin44)
2.30.0 (2024-07-31)
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
inSequentialTaskSet
#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)
Fixed bugs:
- locust/webui/dist/index.html script errors. #2753
Merged pull requests:
- Option to Skip Monkey Patching with LOCUST_SKIP_MONKEY_PATCH #2765 (andrewbaldwin44)
- HttpSession: Improve error message when someone forgot to pass catch_response=True + small optimization #2762 (cyberw)
- Add JavaScript to MIME types for Windows Operating Systems #2759 (andrewbaldwin44)
- Add proxy support for FastHttpUser #2758 (NicoAdrian)
- Httpsession requests typing #2699 (tdadela)
2.29.0 (2024-06-07)
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:
- Send logs from workers to master and improve log viewer tab in the Web UI #2750 (andrewbaldwin44)
- Add Logging to download_locustfile_from_master #2749 (andrewbaldwin44)
- Modify timestamp generation to remove deprecation warning #2738 (JavierUhagon)
- Docs: Fix API TOC #2737 (plaindocs)
- Docs: Fix sphinx and theme upgrade #2736 (plaindocs)
- Docs: Fix theme #2735 (plaindocs)
- Docs: Import wiki to docs #2734 (plaindocs)
- Mention installing Locust in Building the Docs #2733 (plaindocs)
- Docs: Upgrade Sphinx to latest version (7.3.7) #2732 (plaindocs)
- Add date and zoom to charts in web UI #2731 (andrewbaldwin44)
- Use requests 2.32.2 or higher for Python 3.12 #2730 (cyberw)
- The time of the downloaded HTML report is not correct #2729 (andrewbaldwin44)
- Ensure spawning_complete only happens once on workers #2728 (cyberw)
- Improve confusing log messages if someone accidentally accesses the Web UI over HTTPS #2727 (cyberw)
- Show Reset Button when Test is Stopped #2726 (andrewbaldwin44)
2.28.0 (2024-05-23)
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 acollections.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)
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)
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)
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)
Fixed bugs:
'NoneType' object has no attribute 'get'
whenstream=True
inFastHttpSession.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)
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:
- Modern UI - Fix logo asset #2618 (andrewbaldwin44)
- Bugfix/2614 relative assets and stats links #2615 (skyanth)
- [Modern UI] Refactor and Add Tests for Entrypoints #2613 (andrewbaldwin44)
- Implement pyproject.toml support for Locust configuration #2612 (alzex3)
- Update Header Logo to Higher Resolution for the Modern UI #2611 (FooQoo)
- [Report][Modern-UI] HTML report is blank #2609 (andrewbaldwin44)
- pluggable dispatcher logic #2606 (mgor)
- Modern UI: Change Footer to Static Positioning #2605 (andrewbaldwin44)
- Check that locustfile downloaded from URL is valid Python code #2604 (DennisKrone)
2.23.1 (2024-02-11)
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:
- Modern UI: Add exception message column on the Exception Table #2601 (andrewbaldwin44)
- Modern UI: Wrong chart's legend for overridden percentiles values #2600 (andrewbaldwin44)
- Change download-from-master to use temp file dir #2599 (cyberw)
2.23.0 (2024-02-11)
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)
Fixed bugs:
- Modern UI - new test modal not scrollable #2574
Merged pull requests:
- Fix Modern UI - new test modal not scrollable #2577 (andrewbaldwin44)
- Fix Spawning State Never Updates to Running #2573 (andrewbaldwin44)
- Update README.md Screenshots for Modern UI #2572 (andrewbaldwin44)
- Use Modern UI by default #2569 (andrewbaldwin44)
- GH Actions: Run tests on windows #2567 (cyberw)
2.21.0 (2024-01-27)
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 toFastHttpUser
'sFastResponse
, alaHttpUser
/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)
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)
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:
- Fix useSwarmUi Test with Mock Timers #2514 (andrewbaldwin44)
- Custom messages: Throw an exception if someone tries to register twice for the same event #2513 (cyberw)
- Fixed response failure for unsupported encoding #2512 (prince-melvin)
- Add event.measure context manager for simpler firing of request event #2511 (cyberw)
- Update Web UI About box #2510 (cyberw)
- Chart Average Response Time in Modern UI #2509 (andrewbaldwin44)
- Update the About Section #2508 (andrewbaldwin44)
- Allow Boolean and Null Values to be Set from the Web UI #2507 (andrewbaldwin44)
- custom messages: Support sending datetimes and bson.ObjectId #2504 (cyberw)
- Add Notifications for Log Viewer #2502 (andrewbaldwin44)
- FastHttpUser: Treat response code 304 as OK #2501 (cyberw)
- Fix Warnings from the Web UI Tests #2499 (andrewbaldwin44)
- Adjust "Starting web interface at"-output #2498 (cyberw)
- Update mypy, some type hints, and some tiny updates to Runner classes #2497 (cyberw)
- Remove Typecheck from Web UI Build Process and Update Github Actions #2496 (andrewbaldwin44)
- Replace Vitest canvas mock library #2495 (andrewbaldwin44)
- Implement Modern Web UI Tests #2494 (andrewbaldwin44)
- Further relax FastHttpUser's host checking to match HttpUser's #2493 (pjenvey)
- Unable to modify custom parameters from the modern UI #2491 (andrewbaldwin44)
2.19.1 (2023-11-27)
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)
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)
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:
- Log deprecation warning in python 3.8 #2473 (cyberw)
- Modern UI - Failures line chart does not display current number of failures #2471 (andrewbaldwin44)
- Tiny optimization of StatsEntry._log_response_time #2470 (lailongwei)
- Modern UI: Add Time to Chart Tooltips #2468 (andrewbaldwin44)
- Ensure to wait a second before next
tick()
#2465 (wiatrak2) - Modern UI: Wrong chart's legend for Response Times #2464 (andrewbaldwin44)
- Replace Updating Stats useEffect Hook with useInterval #2462 (andrewbaldwin44)
2.18.3 (2023-11-12)
Closed issues:
- Add Modern UI HTML Report to --html Option #2458
Merged pull requests:
- List Andrew as maintainer of the Modern web UI #2460 (cyberw)
- Add Modern UI HTML Report to --html Option #2459 (andrewbaldwin44)
- Modern UI: Add sorting to columns on statistics page and downloaded report #2453 (andrewbaldwin44)
2.18.2 (2023-11-10)
Fixed bugs:
- 2.18 - fasthttp error for no content response #2450
- Segmentation fault running the locust command #2447
Merged pull requests:
- Add terraform variables #2455 (sdarwin)
- FastHttpUser: encoding return str when response is empty #2451 (scottARob)
- Fix docs: modern UI developing guide #2446 (zifter)
2.18.1 (2023-11-01)
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:
- Log unhandled exceptions thrown in User.on_start #2442 (cyberw)
- Fix for UserClass picker not loading all available Shape Classes #2441 (mikenester)
- Add Log Viewer to Modern UI #2440 (andrewbaldwin44)
- Modern UI shows wrong (old) hostname when setting hostname in start dialog #2436 (andrewbaldwin44)
2.18.0 (2023-10-26)
Fixed bugs:
Closed issues:
- Modernize the report.html when using the --modern-ui Flag #2419
- Proposal for Re-Writing the Web UI #2396
Merged pull requests:
- Revert support for argcomplete #2434 (cyberw)
- refactor(MasterRunner): simplify condition in check_stopped #2432 (tdadela)
- Fix too long first wait time for constant_pacing (and constant_throughput) #2428 (cyberw)
- Support argcomplete as an optional dependency #2423 (singingwolfboy)
- Stop supporting Python 3.7 #2421 (cyberw)
- [Feature/2419] Modernize the report.html when using the --modern-ui Flag #2420 (andrewbaldwin44)
- Add run_single_user to __all__ variable #2417 (tdadela)
- Make FastHttpUser use requests encoding detection #2416 (cyberw)
- Add a modern web UI based on React, MaterialUI and Vite #2405 (andrewbaldwin44)
2.17.0 (2023-10-05)
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:
- Test and explicitly support Python 3.12 #2411 (cyberw)
- Improve performance for statistics handling #2410 (cyberw)
- Log a deprecation warning in Python 3.7 #2403 (cyberw)
- Catch exceptions in on_stop #2402 (cyberw)
- Allow LoadTestShapes to reuse run-time, spawn-rate and users parameters #2395 (noirbizarre)
- Support user abstract load shape base classes #2393 (noirbizarre)
- chore: bump dockerfile to 3.11-slim base image #2388 (vejmoj1)
- Respect hard limit when setting open file limit (NOFILE) #2386 (benofbrown)
2.16.1 (2023-08-07)
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)
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:
- Fix #1910 KeyboardInterrupt with load shapes #2375 (JevonCowell)
- update links to requests homepage #2373 (evgeni)
- Web UI dropdown for custom args with choices #2372 (ktrnka)
- Fix passing host to user class when debugging #2365 (LKajan)
- Allow selecting user classes using LOCUST_USER_CLASSES env var #2355 (ibarbech)
- Clarify documentation string for
total_content_length
#2354 (johenning) - Update rest.py #2352 (BhattcharyaCodes)
- Fixed the users dispatching when it got infinite loop (fixes #2345) #2350 (EzR1d3r)
- Duplicated titles #2346 (Daemo00)
- Add worker_connect event #2344 (cyberw)
- Remove codecov from build #2337 (cyberw)
- Put dependencies/project information in pyproject.toml instead of setup.cfg (PEP621) #2336 (JE-Chen)
- Rename link text on README.md #2334 (JE-Chen)
- Fix: show host url #2324 (zifter)
2.15.1 (2023-03-14)
Closed issues:
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)
Fixed bugs:
Merged pull requests:
- Fix locustio#2302 unknown worker spawning message #2309 (ykvch)
- Prevent Download as PNG text from getting cut off #2308 (allison-strandberg)
- Remove request_success and request_failure event handlers #2306 (cyberw)
- Remove verbose FastHttpUser error messages #2301 (cyberw)
- fix: docs describing running without web UI had improper flag -f. Cor⦠#2297 (adriangonciarz)
- Update performance estimates for modern Python and hardware #2295 (cyberw)
- docs (#2188): Add Locust Kubernetes Operator #2288 (AbdelrhmanHamouda)
- add events when initialize Environment #2285 (keegoo)
- add is_secret option for custom args to be shown in the web UI masked #2284 (mzhukovs)
2.14.2 (2023-01-04)
Fixed bugs:
- 2.14.1 release missing py.typed file #2282
2.14.1 (2023-01-03)
Fixed bugs:
- SetuptoolsDeprecationWarning when building with setuptools/65.5.0 #2279
- Error installing locust using pipenv as a -- #2277
Merged pull requests:
- Fix setuptools deprecation warnings #2281 (heyman)
- Improve documentation structure #2278 (THUzxj)
- Fix exception grouping for requests with both catch_response and name arguments #2276 (ianmetcalf)
- remove typo in running cloud integration docs #2275 (WordsofDefiance)
- Stats in json to stdout (new command line option --json) #2269 (AndersSpringborg)
2.14.0 (2022-12-13)
Merged pull requests:
- Move the rest method into FastHttpUser instead of RestUser. #2274 (cyberw)
- Add RestUser #2273 (cyberw)
- GRPC example - rewrite using interceptor #2272 (zifter)
2.13.2 (2022-12-09)
Fixed bugs:
- docs: Small errors in docs #2253
Closed issues:
- UnboundLocalError after receiving ZMQ corrupted message #2260
Merged pull requests:
2.13.1 (2022-12-01)
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)
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)
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)
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:
- black format info is added #2212 (SamPosh)
- Second fix for --class-picker resetting user_count on edits #2210 (mikenester)
- Bug Fix for User Class Count reset when editing a running test and using --class-picker #2207 (mikenester)
- Modernize type hints #2205 (cyberw)
- Allow setting run time from the web UI / http api #2202 (ajt89)
- Fix parsed options user classes when using class picker #2201 (mikenester)
- Bump docker base image to Python 3.10 #2197 (cyberw)
- stats summary refactoring #2193 (SamPosh)
2.12.0 (2022-09-07)
Fixed bugs:
- WebUI
Edit running load test
not carrieduser_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)
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)
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)
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:
- Fix for Flask 2.2.0 breaking changes #2148 (mikenester)
- style: add a report favicon #2145 (Pactortester)
- Better error message when User.task is set instead of User.tasks #2142 (cyberw)
- Minor edits to the documentation #2140 (sosna)
- Small documentation correction #2138 (andybyrne)
- Log a warning for failed attempts to connect to master #2136 (gdm85)
- Test Report: Implement table sorting #2134 (Likqez)
- fix: Fix typo at user/wait_time.py #2133 (DmytroLitvinov)
- Fix escaping for exceptions in normal web ui (related to #2126) #2131 (herrmanntom)
- Replace the MD5 usage by SHA256 #2130 (RenanGBarreto)
- Escape user supplied data in html report (#2126) #2127 (herrmanntom)
2.10.1 (2022-06-28)
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)
Closed issues:
- Add ACK for worker connection #2044
Merged pull requests:
- Remove timeout parameter from FastHttpUser unit tests #2123 (cyberw)
- Convert url for getting tasks to relative #2121 (5imun)
- More robust handling of ZMQ/RPC errors #2120 (solowalker27)
- Update the link for reporting data to a database #2119 (AlexMooney)
- fix: stopping state when running more than one worker node. #2116 (renato-farias)
- add support for custom SSLContext when using FastHttpUser #2113 (renato-farias)
- chore: Set permissions for GitHub actions #2107 (naveensrinivasan)
- additional typing improvements #2106 (mgor)
- Stop client_listener from raising a KeyError when receiving a client_stopped message from unknown worker #2102 (BirdLearn)
- Fix multiple resetting connection after RPCError #2096 (Nosibb)
- Add ack for worker connection #2077 (Nosibb)
2.9.0 (2022-05-19)
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)
Merged pull requests:
- Further slim docker image #2068 (cyberw)
- Add cpu_warning event, so listeners can do some action when CPU usage is too high #2067 (cyberw)
- Fix typo in example in docs #2064 (chalex2k)
- Move lint tests to their own tox environments #2062 (kurtmckee)
- Bump black version to 22.3.0 #2060 (miedzinski)
- Support sharing connection pools between users #2059 (miedzinski)
2.8.5 (2022-03-28)
Merged pull requests:
2.8.4 (2022-03-15)
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:
- Add quit event, used for getting locust's exit code just before exit #2049 (DennisKrone)
- Bugfix/1947 locust does not stop all users #2041 (marcinh)
- fixing mypy errors with loosest rules #2040 (mgor)
- Add test_stopping event #2033 (marcinh)
- fixed load/users getting distributed to missing worker #2010 (radhakrishnaakamat)
2.8.3 (2022-02-25)
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)
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)
Fixed bugs:
- Load being distributed to missing workers too Version 2.7.4.dev14 #2008
Merged pull requests:
2.8.0 (2022-02-13)
Closed issues:
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)
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)
Fixed bugs:
- locust:2.7.1 exits when clicking "Stop Tests" in the UI #1995
Merged pull requests:
2.7.1 (2022-02-02)
Fixed bugs:
- --html doesnt work in web mode #1944
Merged pull requests:
- Allow repeated runs of run_single_user #1993 (cyberw)
- fix --html report in web mode #1992 (uddmorningsun)
2.7.0 (2022-01-29)
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)
Merged pull requests:
- Fire requests through Environment.events #1982 (BonelessPi)
- Fix docs with underscore postfix for hyperlink? #1979 (jeroenhe)
- Repair broken hyperlinks in documentation #1978 (jeroenhe)
2.6.0 (2022-01-23)
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)
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)
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)
Fixed bugs:
- module 'signal' has no attribute 'SIGWINCH' on 2.4.2 #1924
2.4.2 (2021-11-01)
Fixed bugs:
Closed issues:
- Update locustio/locust Docker image to Python 3.9.6 #1821
Merged pull requests:
- Add --expect-workers-max-wait parameter #1922 (cyberw)
- Fixed #1909 -- Return UTC datetime with the POSIX timestamp for API /stats/report #1918 (uddmorningsun)
- Track worker memory #1917 (solowalker27)
- Auto-resize stats table when terminal window is resized #1914 (cyberw)
- Fix typos in documentation #1912 (mnigh)
- Fix missing data in stats_history/HTML chart when running LoadShape #1911 (AlexisC0de)
2.4.1 (2021-10-19)
Fixed bugs:
- No longer logging interval stats when using LoadTestShape after 2.1.x #1906
Merged pull requests:
- Fix stat printing when using shapes #1907 (cyberw)
- Change docker image to use Python 3.9 #1904 (cyberw)
2.4.0 (2021-10-11)
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)
Merged pull requests:
2.2.2 (2021-09-15)
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)
Fixed bugs:
- Importing any locust plugin breaks the UI and distributed load generation. #1870
Merged pull requests:
2.2.0 (2021-09-01)
2.2.0b0 (2021-09-01)
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)
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)
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)
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)
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)
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)
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)
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)
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)
Merged pull requests:
- Register stats from request_success and request_failure #1761 (DennisKrone)
1.5.2 (2021-05-12)
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:
- Pin flask version to 1.1.2. Fixes #1759 #1760 (cyberw)
- Measure elapsed time using time.perf_counter() #1758 (cyberw)
- Add gRPC load test example #1755 (beandrad)
1.5.1 (2021-05-04)
Merged pull requests:
1.5.0 (2021-05-04)
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)
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:
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)
Merged pull requests:
1.4.2 (2021-01-26)
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)
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)
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)
Merged pull requests:
- Run builds for python 3.9 #1607 (cyberw)
- Add note and link to k8s Helm chart #1606 (max-rocket-internet)
- Replace '<' and '>' for swarm 'host' field. Fix for XSS attack. #1603 (lhupfeldt)
1.3.1 (2020-10-15)
1.3.0 (2020-10-12)
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:
- Start web_ui later to avoid race adding UI routes #1585 (solowalker27)
- Remove step load feature #1584 (max-rocket-internet)
- Add more type hints #1582 (cyberw)
- Run time relative to start when using LoadTestShape #1581 (DennisKrone)
- Don't log state change if it's the same #1580 (max-rocket-internet)
- SequentialTaskSet improvements #1579 (cyberw)
- Fixed documentation for tags to link properly. #1578 (Trouv)
- More easily extend web UI #1574 (solowalker27)
- Only warn about open file limit when not running as master #1573 (parberge)
- Adding more debug logging for runners.py #1570 (max-rocket-internet)
- Add friendlier message about expected limit #1566 (parberge)
- Update documentation for schedule_task parameters in TaskSet (task.py) #1565 (kmels)
- Added comment for clarity #1561 (raiyankamal)
- Refactor and fix delayed user stopping in combination with on_stop #1560 (cyberw)
- Remove legacy code that was only needed for py2 #1559 (cyberw)
- Clean up code and tighten flake8 linting #1558 (cyberw)
1.2.3 (2020-08-28)
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:
- Various linting fixes #1549 (cyberw)
- Reformat code using black. Also add black --check to build. #1547 (cyberw)
- fix use_as_lib example #1543 (taojy123)
- Fix stopping and restarting of LoadTestShape test #1541 (max-rocket-internet)
1.2.2 (2020-08-22)
Merged pull requests:
- Fix load shape worker in headless. #1539 (cyberw)
- Add test case for stats_history #1538 (taojy123)
- Update README.md to have full links to images #1536 (max-rocket-internet)
1.2.1 (2020-08-20)
Fixed bugs:
- ValueError: StatsEntry.use_response_times_cache must be set to True #1531
Merged pull requests:
- fix #1531 (ValueError: StatsEntry.use_response_times_cache must be set to True) #1534 (cyberw)
- Add missing parameter to render_template to grey out UI fields #1533 (max-rocket-internet)
- Update repo README with new wording, locust example, screenshots #1532 (max-rocket-internet)
1.2 (2020-08-19)
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:
- Doc review changes #1528 (phil-davis)
- Major rework of documentation & many small fixes #1527 (cyberw)
- Make hatch-rate parameter deprecated instead of killing it right away. #1526 (cyberw)
- Move dividers (pipe characters) in stats command line output. Also shrink percentiles output and remove 99.999 percentile by default Fixes #1514 #1525 (cyberw)
- Grey out UI input fields when LoadTestShape is in use #1524 (max-rocket-internet)
- Rename hatch rate to spawn rate. Fixes #1405 #1523 (cyberw)
- Keep csv files open #1522 (lhupfeldt)
- Fix issue with non str, non Exception type failure messages #1517 (cyberw)
- Add Feature: Download Report File #1516 (taojy123)
- Fix typos #1512 (phil-davis)
- Fix typo of failure_percentage in test_stats.py #1511 (phil-davis)
- Fix old HttpLocust reference in docs #1508 (phil-davis)
- Adding ability to generate any custom load shape with LoadTestShape class #1505 (max-rocket-internet)
- Download full history - see issue 1468 #1504 (lhupfeldt)
- Fix csv stats precision #1503 (vstepanov-lohika-tix)
- Allow ramping down of users #1502 (max-rocket-internet)
- Add 2 things to .gitignore #1498 (max-rocket-internet)
- Print valid URL when --web-host is not specified #1496 (dmitrytokarev)
- Replace time.time() with time.monotonic() #1492 (max-rocket-internet)
- Remove "Loadgen" from CPU warning log messages #1491 (max-rocket-internet)
- Fix small typo in docker docs #1490 (max-rocket-internet)
- fade into the running screen before getting a response from the server #1479 (camilojimenez)
- Refactoring stats to handle custom percentiles #1477 (vstepanov-lohika-tix)
- Handle connection reset error in fast http client #1475 (bendizen)
1.1.1 (2020-07-07)
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:
- Improve logging when locust master port is busy. #1471 (cyberw)
- Handle http parse exceptions #1464 (magupov)
- Gracefully handle exceptions in event listeners #1462 (camilojimenez)
1.1 (2020-06-28)
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)
Fixed bugs:
- Search is broken on readthedocs #1391
Closed issues:
- Custom Request/sec exit code #587
Merged pull requests:
- Remove Bad Apostrophe #1411 (curtisgibby)
- update __init__ file #1409 (iamtechnomage)
- Rename 3 remaining instances of slave to worker #1400 (ibrahima)
- The format for providing host can be confusing at times #1398 (jo19in1)
- Ability to control the Locust process' exit code #1396 (heyman)
1.0.2 (2020-05-25)
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