locustio/locust
61.6
Adequate · 18 September 2026
17.1k
lines of production code
Python
with TypeScript
1
measurement over time
What this system is
Locust is a Python-based load testing framework designed to simulate user traffic and measure system performance through distributed master-worker architectures. It provides a modern React web interface for real-time monitoring, configuration, and reporting, alongside a comprehensive suite of examples and contrib modules for testing diverse protocols like HTTP, gRPC, MQTT, and various databases. The system supports custom load shapes, detailed statistical analysis, and extensible user classes to accommodate complex testing scenarios.
How it got here
2010–2021 — Locust 2.0 modernization and architecture overhaul
17 changes.
This period centered on the release of Locust 2.0, which modernized the project by replacing the legacy web interface with a React-based UI and upgrading the build system to Hatch and uv. The core architecture was significantly refactored, including a rewrite of the distributed RPC subsystem using ZeroMQ and a restructuring of user and task logic into dedicated packages. Concurrently, the project expanded its capabilities by introducing experimental contrib modules for various protocols and databases, while comprehensively updating examples and test infrastructure to reflect these new standards.
2023 — Modern React Web UI rewrite
33 changes.
The Locust Web UI was completely refactored into a standalone React module using Yarn Berry, Redux Toolkit, and RTK Query. This period established a modern architecture featuring a responsive design with dark mode, tabbed navigation, and comprehensive components for swarm monitoring, data visualization, and configuration. The rewrite included robust state management, real-time data fetching, and extensive unit testing to ensure reliability.
2024–2026 — React UI rewrite and example expansion
15 changes.
The project underwent a significant overhaul of the web interface, rewriting it in React with MUI to introduce modern features like column visibility toggles, authentication flows, and detailed reporting tabs. Concurrently, the library expanded its ecosystem by adding comprehensive load-testing examples for various technologies including PostgreSQL, MQTT, Socket.IO, and vector databases like Milvus and Qdrant.
Features
Add AWS Terraform example for distributed Locust deployment
A new Terraform example has been added to the \examples/terraform/aws\ directory, providing a ready-to-use configuration for deploying a distributed Locust load-testing environment on AWS. This example includes the necessary Terraform files (main, variables, outputs, and provisioner) to provision the infrastructure using the \marcosborges/loadtest-distribuited/aws\ module, along with a sample Locust plan script (\plan/basic.py\) and a README with setup instructions. Users can now leverage this example to quickly spin up a multi-node Locust setup on AWS by configuring variables such as region, node size, and subnet.
examples/terraform · high confidence
Add About dialog and Footer component to the Web UI layout
The Web UI now includes a new Layout structure that renders a Footer at the bottom of the page. This Footer contains an 'About' button which opens a modal dialog displaying the application version, licensing information (MIT), contributor credits, and links to GitHub, documentation, and the blog. The layout also ensures the main content area adjusts its height to accommodate the footer.
locust/webui/src/components/Layout/Footer · high confidence
Add Failures Table with First/Last Seen timestamps
The FailuresTable component has been added to the web UI, displaying a sortable table of test failures that now includes 'First Seen' and 'Last Seen' timestamps alongside occurrence counts, method, name, and error messages. This new view is wired to the Redux store to present swarm error data directly to users.
locust/webui/src/components/FailuresTable · high confidence
Add Locust UsersDispatcher performance benchmark
A new benchmark script has been added to validate the performance of the UsersDispatcher class, which handles user distribution across workers. The tool allows developers to measure instantiation, ramp-up, and ramp-down durations under various configurations (worker count, user count, user classes, spawn rate) and supports options to include fixed-count users, repeat tests, and save results.
benchmarks · high confidence
Add Milvus load testing example with Locust
Added a new example in the \examples/milvus\ directory that demonstrates how to perform load testing on a Milvus vector database using Locust. The entry includes a \locustfile.py\ defining a \SimpleMilvusUser\ class that initializes a collection schema, creates an IVF\_FLAT index, and executes tasks for inserting vectors, searching for similar vectors, querying by filter, and deleting records. A \README.md\ is also provided with instructions on installing dependencies (\pymilvus\ \>=2.5.0) and running the test suite via the Locust web UI or headless mode.
examples/milvus · high confidence
Add PostgreSQL load testing example
A new example has been added to the \examples/postgres\ directory to demonstrate how to load test a PostgreSQL database using Locust. This includes a \locustfile.py\ that defines a \PostgresUser\ class executing a sample SELECT query, and a \README.md\ with instructions on setting environment variables (PGHOST, PGPORT, etc.) and running the test.
examples/postgres · high confidence
Add column visibility toggle component
Introduces the ViewColumnSelector component, which allows users to toggle the visibility of table columns via a popover menu. The component renders a button that opens a list of switches corresponding to the table structure, enabling users to add or remove columns from the current view.
locust/webui/src/components/ViewColumnSelector · high confidence
Add example of session patching
Added a new example script demonstrating how to patch the internal session of an external SDK client (Archivist) within a Locust user class to reuse the HTTP connection pool.
_examples/sdk\_session\patching · high confidence
Add exceptions table to the web UI
The web UI now includes a dedicated table to display swarm exceptions. This new component renders exception details, including occurrence counts, messages, and tracebacks, by connecting to the Redux store and utilizing the shared Table component for structured display.
locust/webui/src/components/ExceptionsTable · high confidence
Add gRPC load testing example
A new gRPC example has been added to the examples directory, providing a complete setup for load testing gRPC services. This includes a custom \GrpcUser\ class that utilizes a \ClientInterceptor\ to capture request metrics (such as response time and length) and fire them to Locust's event system, a simple \HelloService\ protobuf definition, and a corresponding server implementation with a 100-worker thread pool. The example also includes a \locustfile.py\ that demonstrates how to configure the user and start the dummy server for testing.
examples/grpc, examples/mongodb · high confidence
Add new Modal component with responsive styling
A new Modal component has been introduced in the web UI, wrapping MUI's Modal to provide a centered, scrollable container with a maximum height of 90vh. It includes a close button in the top-right corner and applies responsive width adjustments for smaller screens, establishing a consistent visual pattern for dialog overlays across the application.
locust/webui/src/components/Modal · high confidence
Added Locust load-testing scripts for the dispatch service
New example scripts have been added to the examples/dispatch\_test\_scripts directory to facilitate load testing of the dispatch service using Locust. This includes a locustfile.py defining three user classes (UserA, UserB, UserC) and a RampUpThenDownLoadShape for simulating variable traffic patterns, along with shell scripts (run-local-headless.sh, run-local-web.sh, run-distributed-headless.sh, run-distributed-web.sh) to execute these tests locally or in a distributed master-worker configuration.
_examples/dispatch\_test\scripts · high confidence
Added MQTT load testing example
Added a new example in the \examples/mqtt\ directory demonstrating how to perform load testing on MQTT brokers using Locust. The example includes a standard \locustfile.py\ using the built-in \MqttUser\, a \locustfile\_custom\_mqtt\_client.py\ showing how to extend \MqttClient\ for custom event naming, and a \mosquitto.conf\ file for running a local Mosquitto broker via Docker.
examples/mqtt · high confidence
Added Qdrant load testing example with Locust
A new example in the examples/qdrant directory demonstrates how to perform load testing on a Qdrant vector database using Locust. The included locustfile.py defines a user class that simulates upserting, searching, scrolling, and deleting vector points, while the README provides instructions for running the tests against a local Docker container.
examples/qdrant · high confidence
Added Vagrant example for Locust distributed testing
A new Vagrant example has been added to the examples/vagrant directory, providing a ready-to-use setup for running Locust in a distributed mode. The configuration includes a Vagrantfile (implied by the directory context and commit message) and a supervisord.conf file that manages two processes: a master node and two worker nodes, allowing users to easily spin up a multi-node Locust environment for load testing.
examples/vagrant · high confidence
Added example for custom XML-RPC client with request event integration
The examples/custom\_xmlrpc\_client directory now includes a server.py and a new xmlrpc\_locustfile.py demonstrating how to create a custom XML-RPC client. The example shows how to wrap the standard library's ServerProxy to fire the request event, ensuring that XML-RPC calls are recorded in Locust's statistics with timing data derived from time.perf\_counter(). It also illustrates the modern User class structure and task definition.
_examples/custom\_xmlrpc\client · high confidence
Adds user-friendly error boundary for unexpected crashes
The Locust web UI now includes a dedicated FallbackRender component that catches unexpected runtime errors. When an error occurs, users see a 'Something went wrong' message along with the specific error details, and a direct link to open a bug report on GitHub, improving the experience when the application encounters an issue.
locust/webui/src/components/FallbackRender · high confidence
Comprehensive update of example locustfiles to reflect current API and features
The examples directory has been refreshed with new and updated locustfiles that demonstrate current Locust capabilities. Key additions include examples for custom command-line arguments with web UI integration, manual statistics reporting, Markov task sets, OpenAI API testing, DNS testing, and Pytest integration. Existing examples have been updated to use the latest APIs, such as the new event hooks, FastHttpUser, and modern Python practices, ensuring they serve as accurate references for users.
examples · high confidence
Introduce sortable Workers table with formatted memory usage
The WorkersTable component has been added to the web UI to display swarm worker status. It presents key metrics including worker ID, state, user count, and CPU usage, with memory usage automatically formatted into human-readable bytes. The table supports sorting, defaulting to sorting by worker ID.
locust/webui/src/components/WorkersTable · high confidence
Introduces modern UI type definitions and components
This change adds a new set of TypeScript type definitions in \locust/webui/src/types\ (including \auth.types.ts\, \form.types.ts\, \swarm.types.ts\, \ui.types.ts\, etc.) and a new \FadeInBox\ component. These types define the structure for the modern UI's state, charts, stats, errors, and authentication forms, supporting features like custom form inputs, extra options, and worker logs. The \FadeInBox\ component provides a scroll-triggered fade-in animation for UI elements.
locust/webui/src/types · high confidence
Locust 2.0: Modern Python build, Python 3.11+ requirement, and new React-based Web UI
This release introduces Locust 2.0, requiring Python 3.11 or higher and switching the build system from Poetry to Hatch. The project now uses a PEP 621-compliant pyproject.toml with dependency groups for build, test, lint, and docs. A major feature is the introduction of a new React-based Web UI (located in locust/webui), built with Vite, TypeScript, and MUI, which replaces the legacy UI. The package.json defines the frontend dependencies and scripts, while the main pyproject.toml lists core dependencies like Flask, gevent, and requests, along with optional extras for OpenTelemetry, Milvus, Qdrant, and MQTT.
(dependencies) · high confidence
New Exceptions and Swarm Ratios tabs in the web UI
The web interface now includes two new tabs: an Exceptions tab that displays exception data via the ExceptionsTable component, and a Swarm Ratios tab that shows swarm ratio metrics via the SwarmRatios component. These components are integrated into the UI to provide users with visibility into exceptions and swarm task ratios.
locust/webui/src/components/ExceptionsTab, locust/webui/src/components/SwarmRatiosTab · high confidence
New Log Viewer with color-coded logs and worker notifications
The web UI now includes a dedicated Log Viewer component that displays both master and worker logs. Logs are color-coded by severity (CRITICAL, ERROR, WARNING, DEBUG) and rendered in monospace font. The viewer highlights workers containing important logs (WARNING, ERROR, or CRITICAL) with a notification icon, and uses browser local storage to track which logs have been viewed to manage these notifications.
locust/webui/src/components/LogViewer · high confidence
New React-based Web UI module with authentication and modular dashboard
The Locust web interface has been refactored into a new React-based module located in \locust/webui/src\. This change introduces a modular architecture where the main \App\ component conditionally renders either an \Auth\ page (when authentication arguments are provided) or the \Dashboard\ (for standard access). The module exposes a \LocustUi\ component via \lib.tsx\ that allows embedding the dashboard with extended tabs, tables, reports, and stats. Additionally, a standalone \HtmlReport\ entry point is provided for rendering static reports, and the entire UI is wrapped in error boundaries for resilience. Tests have been added to verify the rendering of the dashboard and the authentication flow.
locust/webui/src · high confidence
New Redux store configuration and typed hooks for the Locust UI
The Locust web UI now includes a dedicated Redux setup in the \locust/webui/src/redux\ directory. This introduces a configured store (\store.ts\) that integrates the root reducer and automatically appends the API middleware to handle swarm-related network requests. To improve developer experience and type safety, the module exports typed \useSelector\ and \useDispatch\ hooks (\hooks.ts\) bound to the application's root state, along with a \useAction\ helper for dispatching actions. Additionally, a utility function (\utils.ts\) is provided to update state using a shallow merge strategy.
locust/webui/src/redux · high confidence
New Reports component with theme-aware and conditional download links
The web UI now includes a dedicated Reports component that provides download links for request, failure, and exception statistics in CSV format. The component conditionally displays a link for full request statistics history only when that feature is enabled, and supports additional extended CSV files defined in the swarm configuration. Additionally, the report download link automatically adapts to the user's current theme (dark or light mode) by appending the appropriate theme parameter to the URL.
locust/webui/src/components/Reports · high confidence
New Socket.IO example demonstrating client-server interaction with rooms
Added a new Socket.IO example in the \examples/socketio\ directory that includes a mock echo server (\echo\_server.py\) and a Locust load-test client (\socketio\_ex.py\). The server implements event handlers for connecting, joining/leaving rooms, and broadcasting messages, while the client demonstrates how to use \SocketIOUser\ to connect, send messages via \call\ and \emit\, handle incoming \chat\_message\ events, and perform concurrent HTTP requests.
examples/socketio · high confidence
New SwarmCharts component for modern UI reporting
The SwarmCharts component has been added to the web UI to render performance metrics (Requests per Second, Response Times, and User Count) using the new LineChart implementation. This component integrates with the Redux store to access chart data and theme settings, supporting dynamic percentile lines and dark mode styling for the modern UI experience.
locust/webui/src/components/SwarmCharts · high confidence
New authentication examples with custom form support and base path configuration
Added two new example files in the web UI authentication directory: \basic.py\ demonstrates a standard login flow with GitHub OAuth integration, while \custom\_form.py\ introduces support for defining custom login fields (such as email inputs, boolean toggles, and select dropdowns) with validation rules like required fields and secret types. Both examples now utilize the \web\_base\_path\ configuration option for URL prefixing, aligning with the recent rename from \base-path\ to \web-base-path\.
_examples/web\_ui\auth · high confidence
New custom load test shape examples for staged, wave, and step loads
Added five new example scripts in the \examples/custom\_shape\ directory demonstrating how to implement custom \LoadTestShape\ classes. These include \stages.py\ for defining time-based user ramps, \double\_wave.py\ for simulating peak traffic patterns, \step\_load.py\ for incremental user increases, \staging\_user\_classes.py\ for controlling specific user classes per stage, and \wait\_user\_count.py\ for ensuring target user counts are reached before proceeding. These examples provide templates for users to create complex load profiles beyond simple constant rates.
_examples/custom\shape · high confidence
New experimental contrib modules for CSV logging, DNS, MQTT, OpenAI, and vector databases
This change introduces a new \locust.contrib\ package containing experimental, per-request load-testing users and utilities. It adds \CsvRequestLogger\ for writing individual request details to CSV files, and dedicated User classes for testing DNS (\DNSUser\), MQTT (\MqttUser\), OpenAI APIs (\OpenAIUser\), PostgreSQL (\PostgresUser\), MongoDB (\MongoDBUser\), Milvus (\MilvusUser\), Qdrant (\QdrantUser\), and SocketIO (\SocketIOUser\). These modules allow users to extend Locust's capabilities to non-HTTP protocols and specific third-party services, with the CSV logger providing granular post-run analysis.
locust/contrib · high confidence
New form input components and submission logic
The web UI now includes a new Form component that handles submission by collecting values from input, select, and textarea elements, correctly parsing numeric values, checkboxes, and multi-select arrays. CustomInput acts as a dispatcher for specific field types, supporting text, password (with visibility toggle), boolean (checkbox), and select inputs. New specialized components include NumericField for validating numeric input and PasswordField for secure entry with show/hide functionality. The Select component now supports multiple selections and native rendering.
locust/webui/src/components/Form · high confidence
New responsive navbar with dark mode toggle and swarm status monitoring
The Locust web UI now features a redesigned navigation bar that is fully responsive, switching to a hamburger menu on smaller screens. This update introduces a dark/light mode toggle that respects browser preferences and persists user choice via local storage. Additionally, the navbar now displays real-time swarm monitoring information, including host, status, active users, worker count (for distributed runs), requests per second, and failure ratios, providing immediate visibility into test performance directly from the top bar.
locust/webui/src/components/Layout/Navbar · high confidence
New sortable Table component with formatting support
The web UI now includes a new Table component that automatically sorts data by clicking column headers and supports numeric rounding and custom formatters for cell content. This replaces the previous table implementation, providing a consistent, modern interface for displaying structured data across the application.
locust/webui/src/components/Table · high confidence
New theme-aware line chart component with zoom and split-axis support
The web UI now uses a new LineChart component that respects the application's dark/light theme, automatically adjusting text, axis, and background colors. Users can now zoom into specific time ranges using a slider and view data on separate Y-axes via the split-axis feature. The chart also supports scatter plots, displays run markers, and includes a toolbox for resetting the zoom or downloading the chart as a PNG image.
locust/webui/src/components/LineChart · high confidence
New utility functions for data formatting and URL handling
Added a suite of new utility functions in the web UI to improve data presentation and URL management. Users will see memory usage formatted in human-readable bytes on the workers table, and timestamps converted to the user's local time zone. Additionally, new helpers for flattening arrays, merging objects, converting between snake\_case and camelCase keys, and manipulating URL query strings are now available to support these UI improvements.
locust/webui/src/utils · high confidence
New utility module for core Locust helpers
A new \locust.util\ package has been introduced to centralize common helper functions used throughout the Locust codebase. This module includes utilities for caching with timeouts (\cache.py\), formatting timestamps and durations for reports (\date.py\), handling deprecation warnings for legacy classes like \Locust\ and \HttpLocust\ (\deprecation.py\), resolving file paths in directories (\directory.py\), implementing retry logic for exceptions (\exception\_handler.py\), loading locustfiles and supporting pytest-style test files (\load\_locustfile.py\), performing precise numeric rounding (\rounding.py\), parsing human-readable timespan strings (\timespan.py\), and validating URLs (\url.py\).
locust/util · high confidence
User-editable column visibility in the Stats Table
The Stats Table component now allows users to customize which columns are displayed. By integrating a ViewColumnSelector and a useSelectViewColumns hook, users can add or remove specific data columns (such as response time percentiles, request counts, or RPS) from the view, with the selection persisted via Redux state.
locust/webui/src/components/StatsTable · high confidence
Removals
Removal of legacy uki.js-based web interface
The legacy public web interface, which relied on the uki.js library and jQuery to render a table of request statistics and a 'Start swarming' button, has been removed. This change eliminates the outdated UI components and their associated dependencies from the public directory.
public · high confidence
Architecture
Locust Web UI is now a standalone module with Yarn Berry and modern tooling
The web UI has been moved into its own \locust/webui\ directory, establishing it as a standalone module. This change introduces Yarn Berry (v4.12.0) as the package manager, replacing the previous setup, and adds standard development tooling including a \.prettierrc\ configuration and a \.gitignore\ for build artifacts. This modularization separates the UI's build and dependency lifecycle from the core Locust package.
locust/webui · high confidence
Restructure core user and task logic into the locust.user package
The core user and task execution logic has been moved from the monolithic locust/core.py into a dedicated locust.user package, splitting the code into task.py (TaskSet, User, decorators), users.py (HttpUser, User base), wait\_time.py, and sequential\_taskset.py. This refactoring improves code organization and maintainability without changing the public API or user-facing behavior.
locust/user · high confidence
Behavioural changes
Centralize UI configuration and state constants
The Web UI now consolidates key configuration and state definitions into dedicated constant modules. This includes defining swarm lifecycle states (e.g., ready, running, stopped), establishing a theme system that respects browser preferences and local storage, and exposing authentication arguments and log viewer keys. These changes provide a single source of truth for core UI behaviors and data structures, ensuring consistent handling of swarm states, theming, and authentication across the application.
locust/webui/src/constants · high confidence
Introduces centralized theme configuration with default styling
The Web UI now uses a centralized theme file to define the primary and success color palette and apply global CSS overrides. This includes setting a fixed footer height, removing default paragraph margins, and adding padding to unordered lists, ensuring consistent visual styling across the application.
locust/webui/src/styles · high confidence
Locust 2.1.0: Web UI modernization, distributed mode fixes, and user class renaming
This release updates the Locust web interface to the modern UI by default and reverts the legacy UI, while fixing a bug where the response time graph failed in distributed mode. It also renames the 'locust' terminology to 'user' throughout the codebase and API, and improves distributed stability by ensuring slave nodes shut down when the master is stopped.
locust · high confidence
Migrate web UI state management to Redux Toolkit slices
The web UI's state management has been refactored to use Redux Toolkit, introducing dedicated slices for the swarm configuration, UI metrics (including charts and statistics), log viewing, notifications, theme settings, and URL query parameters. This change consolidates state handling into a structured root reducer, replacing previous mechanisms with a standardized Redux architecture to improve maintainability and type safety for the modern UI.
locust/webui/src/redux/slice · high confidence
Modern UI now uses RTK Query for swarm data fetching
The modern UI's data layer for swarm operations has been replaced with Redux Toolkit Query (RTK Query). This change introduces a centralized API definition in \locust/webui/src/redux/api/swarm.ts\ that handles fetching stats, tasks, exceptions, logs, and worker counts, as well as mutations for starting/stopping swarms, resetting stats, and updating user settings. It also supports an optional base URL configuration via \window.baseUrl\ and automatically transforms API responses from snake\_case to camelCase, providing a consistent and type-safe data access layer for the UI components.
locust/webui/src/redux/api · high confidence
New React hooks for UI state, data fetching, and table interactions
The Locust web UI now uses a set of dedicated React hooks in \locust/webui/src/hooks\ to manage client-side logic. \useFetchStats\, \useFetchExceptions\, \useFetchTasks\, and \useFetchWorkerCount\ handle real-time polling of swarm data (stats, exceptions, tasks, worker counts) and update the Redux store. \useSortByField\ and \useSelectViewColumns\ provide table sorting and column visibility toggle capabilities. \useForm\ adds input validation, \useNotifications\ manages UI alerts, \useInterval\ handles timed polling, and \useCreateTheme\ manages dark/light mode theming.
locust/webui/src/hooks · high confidence
New React-based Web UI for Locust
The Locust web interface has been rewritten in React (MUI) to replace the previous implementation. This change introduces a new authentication page supporting both standard username/password forms and custom provider integrations, a dashboard that dynamically displays the Swarm form or tabs based on swarm readiness, and an HTML report viewer that presents test statistics, response times, failures, and charts with locale-aware timestamps and profile information.
locust/webui/src/pages · high confidence
New ZeroMQ-based RPC subsystem with msgpack serialization
The distributed communication layer has been replaced with a new implementation in the \locust/rpc\ module, using ZeroMQ for transport and msgpack for data serialization. This change introduces a formal \Message\ protocol that supports serializing complex types like Python \datetime\ and MongoDB \ObjectId\, and includes robust error handling with automatic retries for send operations. It also adds TCP keep-alive settings to maintain master-slave connections during idle periods, IPv6 support where available, and the ability for the server to bind to a random port to avoid conflicts.
locust/rpc · high confidence
New tabbed navigation with conditional visibility and notification indicators
The Locust web UI now uses a new tabbed interface (Stats, Charts, Failures, Exceptions, Ratios, Reports, Logs, Workers) that renders specific components per tab and syncs the active tab to the URL query string. The Workers tab is conditionally shown only when the swarm is distributed, and tabs can display a notification badge (e.g., for worker alerts) that clears when the tab is selected. Extended tabs can be added via Redux state or props, and the UI respects the current tab from the URL on load.
locust/webui/src/components/Tabs · high confidence
Pytest plugin moved to dedicated directory and duplicate --host argument handled
The pytest plugin has been relocated to the pytest\_locust directory to prevent accidental imports of the main locust package. Additionally, the plugin now gracefully handles cases where the --host command-line argument is defined by another plugin, ignoring duplicate definition errors instead of failing.
_pytest\locust · high confidence
Redesigned Swarm Form with enhanced validation and user class management
The SwarmForm component has been significantly refactored to improve usability and data integrity. It now includes robust host field validation with specific error messages for missing or invalid hosts, and prevents submission of distributed tests until at least one worker is connected. The form introduces a new SwarmUserClassPicker that allows users to select multiple user classes via checkboxes (including a 'select all' option) and edit individual user settings through a modal. Custom parameters are now displayed in an expandable accordion section, and the UI provides visual feedback for loading states and form alerts. Additionally, the form supports numeric fields, boolean inputs, and optional base URLs for requests.
locust/webui/src/components/SwarmForm · high confidence
Refactored StateButtons component to use React Query mutations
The StateButtons component in the web UI has been rewritten to use RTK Query mutations (useStopSwarmMutation, useResetStatsMutation) instead of previous request handling methods. This change introduces specific UI behaviors: the Stop button now shows a 'Loading' state and disables itself during the API call to prevent duplicate requests, and the Reset button is now consistently visible to allow users to clear statistics even when a test is stopped. The component also manages the visibility of New, Edit, and Stop buttons based on the swarm state (READY, STOPPED, or running).
locust/webui/src/components/StateButtons · high confidence
Updated application branding assets
The web interface now uses a new SVG-based Logo component and includes a Microsoft logo asset. This change updates the visual branding displayed in the application header and provides the necessary assets for Microsoft-related integrations or references within the UI.
locust/webui/src/assets · high confidence
Test coverage
Add test infrastructure and utilities; Added mock data for Web UI tests; Added test infrastructure and utilities for the web UI; Added tests for LogViewer component and useLogViewer hook; Added tests for the LineChart component and its utility functions; Added unit tests for Auth, Dashboard, and HTML Report pages; Added unit tests for StateButtons components; Added unit tests for Web UI hooks; Added unit tests for Web UI utility functions; Added unit tests for the UI Redux slice.
Dependencies
Migrate build system to uv/hatch and modernize development tooling
Locust has switched its Python build backend from Poetry to uv and hatch, introducing a new \uv.lock\ dependency manifest and a \hatch\_build.py\ hook to compile the web frontend during source distribution builds. The project now enforces code quality using ruff for linting and formatting, with pre-commit hooks configured in \.pre-commit-config.yaml\. Development and CI workflows are standardized through new configuration files including \.coveragerc\ for test coverage, \.readthedocs.yaml\ for documentation builds, and \Dockerfile\/\Dockerfile.ci\ for containerized releases. Additionally, an \AGENTS.md\ file has been added to provide AI agents with project guidelines, and a \generate\_changelog.py\ script automates changelog generation from GitHub issues.
(repo-wide) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 62.
Lenses
- Code Health 90
- Architecture 96
- Maturity 65
- Readiness 66
- Security 59
- Accessibility 57
Changes since last survey
- 300 commits — 231 feature/other, 69 fixes
By area
- (repo) — 84 commits
- (root) — 57 commits
- locust/test — 23 commits
- locust/webui — 22 commits
- locust/contrib — 11 commits
- .github/workflows — 10 commits
- locust/stats.py — 9 commits
- locust/main.py — 8 commits
- examples/azure — 7 commits
- docs/changelog.rst — 6 commits
- locust/opentelemetry.py — 6 commits
- locust/user — 5 commits
- docs/azure-load-testing.rst — 4 commits
- docs/configuration.rst — 4 commits
- docs/extending-locust.rst — 4 commits
- locust/runners.py — 4 commits
- docs/_static — 3 commits
- docs/api.rst — 3 commits
- docs/hosted-load-testing.rst — 3 commits
- docs/conf.py — 2 commits
Notable commits
- fix: Doc fix
- fix: Fix FastHttpUser streaming response_length using wrong header key
- fix: Fix OTel Docker test by using plain docker build
- fix: Fix Web UI 500 error handler crashing on plain exceptions (#3502)
- fix: Fix echarts title
- fix: Fix false "--run-time limit reached" log message when shape test completes
- fix: Fix link
- fix: Fix master stopping test prematurely when a missing worker quits
- fix: Fix negative --users causing infinite hang in headless mode
- fix: Fix ruff format and mypy errors in test_stats
- fix: Fix toolbar colors
- fix: Fix two exception handling bugs
- fix: Fix url possibly unbound in headless non-worker mode
- fix: Fix variable shadowing in _aggregate_dispatched_users
- fix: Merge pull request #3353 from markogle/fix-processes-print-stats
- fix: Merge pull request #3382 from Krishnachaitanyakc/fix/false-run-time-limit-log-message
- fix: Merge pull request #3384 from juliosuas/fix/html-report-use-total-rps
- fix: Merge pull request #3398 from armorbreak001/fix/fasthttp-response-dict-reference-cycle
- fix: Merge pull request #3405 from jorgetamayo21/fix/gzip-zlib-error
- fix: Merge pull request #3406 from jorgetamayo21/fix/fasthttp-308-redirect
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
locustio/locust was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 18 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b9636d95bffc94c3a1bf8bfd500633e63297470f — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-5d04157a340d.