Skip to content
CAI
Software that uses CAICheck a score

locustio/locust

61.6

Adequate · 18 September 2026

17.1k

lines of production code

Python

with TypeScript

1

measurement over time

CAI band scale
CAI lens gauges

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

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

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.