mrkeyoor.com_
Fri 16 Oct 18:51 UTC
Dev Toolsevaluationupdated 11 Oct 2026

locust review

Locust generates load against websites and other services using user scenarios written in Python. Its web interface and command-line mode report request timings and errors, helping developers investigate how a service behaves as demand grows.

+8 / 4dstars / 7d
Verdict

Our Locust harness completed an npm install in 5 seconds with 0 packages installed, then skipped build and tests, leaving the Python runtime unverified. Choose Locust for request workloads your team can describe and maintain in Python. Require a representative runtime check before adopting it, and use a browser tool when rendered frontend behavior is the measurement you need.

We ran it

Lab card: what happened when we ran locustScreenshot of locust (locust.cloud)
Install✓ · 5s0 packages · 18 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo430 files~44,433 lines of source · 10.4 MB · 2 CI workflows · Dockerfile

Answers from our run

Does locust build from source?

Dependencies installed in 5 seconds (0 packages), and the project has no separate build step. We cloned commit 25a559c into a clean Debian container with 3 CPUs and no project-specific setup.

Does locust have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does locust have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use locust?

Teams measuring full browser rendering through the default HTTP user: the guide says HttpUser does not render pages or automatically load their resources.

What are the alternatives to locust?

k6, Apache JMeter. Our Locust harness completed an npm install in 5 seconds with 0 packages installed, then skipped build and tests, leaving the Python runtime unverified.

Setup3/5Npm path completed, actual Python runtime remains unverified
Docs5/5Specific client, protocol, worker, and browser limitations
Community4/5October push and release, with current fixes under discussion
Maturity4/5Established request and worker model, runtime check still needed

Discussed on

  1. hn“Unprecedented” locust invasion threatens crops in East Africa169 points
  2. hnThe Locust Economy128 points
  3. hnLocust – A modern load testing framework127 points
  4. hnLocust – Open-source Load Testing Tool107 points
  5. hnLocust – Testing framework simulating the burstiness of an end user70 points

Who it’s for

Python developers who need conditional request journeys and reusable application logic in load scenarios.
API teams prepared to model login, request naming, and realistic user pauses.
Engineers who can operate distributed workers and check whether their client libraries cooperate with gevent.

Who it’s NOT for

Teams measuring full browser rendering through the default HTTP user: the guide says HttpUser does not render pages or automatically load their resources.
Projects using protocol clients whose compiled I/O blocks gevent, unless the team can supply a workaround or adapter.
Windows operators depending on the --processes convenience flag: the distributed guide says it requires fork() and does not work on Windows.
Buyers requiring verified Python setup from this lab result: our harness followed npm and skipped build and tests.

Setup reality

Our sandbox completed an npm install of commit 25a559c in 5 seconds, reported 0 packages installed, and used 18 MB. No build or test script/target was detected, so both steps were skipped. Npm audit reported 0 known vulnerabilities. This npm path does not verify the Python load-testing runtime or its dependencies.

Actual use needs a Python environment, a scenario file, and a target service. Authenticated journeys need that service's credentials and token-handling logic. Distributed operation adds a coordinating master, workers, and network reachability between them.

The default HTTP user does not render browser pages. Custom protocol libraries must cooperate with gevent, and the --processes convenience depends on fork(), excluding Windows. Our run used image lab-node:22 with 3 CPUs and 8 GB of RAM and produced no load-capacity measurement.

Locust lets you describe user journeys in Python

Log in, fetch a list, then open an item: Locust lets you put that sequence in regular Python and repeat it with simulated users. The README example uses an HTTP client and a login hook, with task methods for later requests. That is an attractive fit for a Python team whose workload includes conditional behavior or application-specific data. You can review the scenario alongside the service code instead of maintaining a separate graphical plan.

Our checkout contained 430 files and roughly 44,433 source lines, taking 10.4 MB before the measured install. The project offers a live web interface and a command-line path, with request timing and errors available for export. I'd choose it when the scenario's behavior matters more than a simple URL hammer. A misleading login sequence or unrealistic wait policy can still produce a neat report, so knowing Python doesn't remove the need to understand the application.

What happened when we ran it

Our sandbox completed an npm install at Locust commit 25a559c in 5 seconds, reported 0 packages installed, and used 18 MB on disk. We ran it on October 11, 2026, in a fresh Debian container with 3 CPUs, 8 GB of RAM, image lab-node:22, no secrets, and no elevated privileges. The run classified the checkout as a Node/npm project. Locust's README and repository metadata describe its load-testing runtime as Python.

The harness found no build script or target and skipped that step. It also found no test script or target and skipped tests. A skipped step is no passing result, and a successful npm command supplies no evidence that Locust's Python package imports or starts. We cannot use this run to claim a working Python installation, validated scenarios, or measured request throughput. The limitation belongs beside the result rather than hidden behind an install-success label.

Npm audit reported 0 known vulnerabilities, with 0 critical, high, moderate, or low findings. That result covers the npm audit performed in this run, not an examination of Python dependencies. The scan found 2 CI workflow files and a Dockerfile, with no tests directory. A directory-name scan also cannot establish that the Python project has no tests. The useful measured conclusion is narrow: the detected npm path completed and the core runtime remained unverified.

HTTP users don't reproduce a browser page load

The locustfile guide explicitly says HttpUser doesn't render pages or parse HTML to load resources. Cookies are tracked, but JavaScript execution and asset fetching aren't automatic browser behavior. If your goal is judging the experience of an interactive frontend under load, this default client misses part of the job. Locust's request statistics can still help investigate the backend calls, provided you model those calls explicitly.

Our 3-CPU, 8 GB container result doesn't supply a browser-performance measurement or a load-generator capacity figure. Even for an API, write down what users actually do: whether they authenticate, which data they read, and when they pause. Locust's Python hooks let you encode that work, but the author is responsible for choosing it. I'd reject a scenario that reports success for requests made with an expired token before trusting its latency graph.

Request names matter as well. The guide shows how a stable name groups varying item URLs so results describe an operation instead of separating every record identifier. That helps a report answer a practical question, such as whether opening items slows down. Issue 3437 requests a more convenient way to refresh authentication headers before requests. It illustrates the surrounding code authenticated workloads may need, rather than proving authentication is unsupported.

Custom protocols and distributed workers need engineering

The other-protocol guide explains how an adapter emits request events so Locust can record results. It warns that libraries doing input/output inside compiled C code may resist gevent's cooperative scheduling and block the whole process. That is a concrete reason to pass if your required client library cannot cooperate and you can't maintain an adapter. The broad protocol-extension promise needs to be checked against the library you actually use.

The 18 MB npm footprint says nothing about that adapter's Python environment or its operating cost. Distributed runs add a master and workers, and the distributed guide says the master coordinates users while workers run them. It also notes that the process-launch convenience depends on fork() and doesn't work on Windows. Plan worker reachability and scenario distribution separately from installing the local command, especially if your load generators sit on different machines.

October fixes show maintenance without validating our runtime

The last push was October 10, 2026, and GitHub listed 5 open issues and PRs. Release 2.46.7, published October 4, includes corrections for invalid user counts, request behavior, and pacing after clock changes. Current pull requests address reporting directories and malformed HTTP responses. The small combined queue accompanies recent activity, but neither fact substitutes for a Python runtime check on the environment you intend to operate.

K6 is the comparison for a team preferring JavaScript scenarios. JMeter offers another load-testing workflow when a graphical plan is useful. I'd choose Locust for Python developers willing to own realistic request journeys and inspect their client libraries. Before relying on it, verify the Python runtime and a representative authenticated scenario on your chosen machines. Our 5-second npm success is a record of a limited harness path, and it leaves that adoption check open.

Alternatives

ProjectWhat it isPick it when
k6 gh↗A load-testing tool using Go and JavaScript.pick this instead when your team prefers to write load scenarios in JavaScript.
Apache JMeterA load-testing application for measuring service performance.pick this instead when a graphical test-plan workflow suits the people maintaining the scenarios.

What people are saying

  1. [velocity-scout] locustio/locust

Sources

  1. Locust README
  2. Writing a locustfile and HTTP client limits
  3. Other protocols and gevent compatibility
  4. Distributed load generation
  5. Locust 2.46.7 release
  6. Authentication header refresh request, issue 3437
  7. Locust live repository metadata

More dev tools reviews

compose-samples · librepods · sqlmap · coucou · world-execute-me-dsh-pv · mcp-extensions · the whole board →