locust README

The project's README from github.com/locustio/locust. As one markdown file: README.md.

Locust

PyPI Supported Python Versions Downloads GitHub contributors Support Ukraine Badge inspect.software

Locust is an open source performance/load testing tool for HTTP and other protocols. Its developer-friendly approach lets you define your tests in regular Python code.

Locust tests can be run from command line or using its web-based UI. Throughput, response times and errors can be viewed in real time and/or exported for later analysis.

You can import regular Python libraries into your tests, and with Locust's pluggable architecture it is infinitely expandable. Unlike when using most other tools, your test design will never be limited by a GUI or domain-specific language.

To get started right away, head over to the documentation.

Features

Write user test scenarios in plain old Python

If you want your users to loop, perform some conditional behaviour or do some calculations, you just use the regular programming constructs provided by Python. Locust runs every user inside its own greenlet (a lightweight process/coroutine). This enables you to write your tests like normal (blocking) Python code instead of having to use callbacks or some other mechanism. Because your scenarios are “just python” you can use your regular IDE, and version control your tests as regular code (as opposed to some other tools that use XML or binary formats)

from locust import HttpUser, task, between

class QuickstartUser(HttpUser):
    wait_time = between(1, 2)

    def on_start(self):
        self.client.post("/login", json={"username":"foo", "password":"bar"})

    @task
    def hello_world(self):
        self.client.get("/hello")
        self.client.get("/world")

    @task(3)
    def view_item(self):
        for item_id in range(10):
            self.client.get(f"/item?id={item_id}", name="/item")

Distributed & Scalable - supports hundreds of thousands of users

Locust makes it easy to run load tests distributed over multiple machines. It is event-based (using gevent), which makes it possible for a single process to handle many thousands concurrent users. While there may be other tools that are capable of doing more requests per second on a given hardware, the low overhead of each Locust user makes it very suitable for testing highly concurrent workloads.

Web-based UI

Locust has a user friendly web interface that shows the progress of your test in real-time. You can even change the load while the test is running. It can also be run without the UI, making it easy to use for CI/CD testing.

Locust UI charts Locust UI stats Locust UI workers Locust UI start test

Can test any system

Even though Locust primarily works with web sites/services, it can be used to test almost any system or protocol. Just write a client for what you want to test, or explore some created by the community.

Hackable

Locust's code base is intentionally kept small and doesn't solve everything out of the box. Instead, we try to make it easy to adapt to any situation you may come across, using regular Python code. There is nothing stopping you from:

VS Code extension

Microsoft has built an excellent VS Code extension that uses Copilot to help you create and run Locust tests. Here's a video to get you started:

Youtube video

Azure Load Testing

Azure offers a managed load-testing service that lets you run and scale Locust tests easily.

Authors

Special thanks

Microsoft contributes to and sponsors the continued maintenance of Locust ❤️

License

Open source licensed under the MIT license (see LICENSE file for details).

locust (locustio/locust)

Searching Database…

28.2K ·GitHub
这是什么?Locust 是一个开源的性能/负载测试工具,支持 HTTP 等多种协议——你用普通的 Python 代码来编写测试,然后通过命令行或网页界面来运行。
那我是要在图形界面上点点点,还是得写代码?你用普通的 Python 写测试场景(循环、条件判断、计算——都是常规写法),然后通过命令行或网页界面运行。测试以代码的形式保存,所以你的 IDE 和版本控制照常使用。
怎么跑起我的第一个测试?先运行 pip install locust,在一个 Python 文件里写好用户场景,然后运行 locust 命令——它会启动一个网页界面,你可以在里面启动和调整并发用户群。完整教程见 docs.locust.io。
它有什么不足——有没有不擅长的地方?在同样的硬件上,有些其他工具能压出更高的每秒请求数——Locust 的取舍是每个模拟用户的开销非常低,很适合高并发场景。它的代码库也有意保持精简,开箱并不能解决所有问题。
它是怎么同时模拟成千上万个用户的?每个模拟用户都运行在自己的 greenlet(一种轻量级协程)里——所以你可以像写普通阻塞式 Python 代码一样写场景,不用去折腾回调。
写测试有没有编辑器或 IDE 支持?有——微软做了一个 VS Code 扩展,借助 Copilot 帮你创建和运行 Locust 测试;微软也在为这个项目的维护做贡献并提供赞助。
我能把测试跑在托管的云服务上吗?可以。Azure Load Testing 能帮你运行和扩展 Locust 测试,无需自己搭建基础设施,还能把测试结果和资源指标结合起来定位瓶颈,并与 Azure DevOps 和 GitHub CI 流水线集成。
What are similar projects?vegeta, k6, oha, wrk, hey, goreplay, ava, workflow
Creator
locustio
Size
39.1 MB
Stars
28.2K
Age
15y
Commits · 90 Days