跳转到主要内容

开发者友好的负载测试框架

项目描述

Locust

PyPIDownloads Build Status GitHub contributors Support Ukraine Badge

Locust是一个开源的性能/负载测试工具,适用于HTTP和其他协议。它以开发者友好的方式允许您使用常规Python代码定义测试。

Locust测试可以从命令行或使用其基于Web的UI运行。吞吐量、响应时间和错误可以实时查看并/或导出以供以后分析。

您可以将常规Python库导入到测试中,并且通过Locust的可插拔架构,它可以无限扩展。与使用大多数其他工具不同,您的测试设计将不会受到GUI或特定领域语言的限制。

要立即开始,请访问文档

功能

使用普通的Python编写用户测试场景

如果您希望用户进行循环、执行一些条件行为或进行一些计算,您只需使用Python提供的常规编程结构。Locust在每个用户内部运行自己的greenlet(轻量级进程/协程)。这使得您可以像编写正常的(阻塞)Python代码一样编写测试,而不必使用回调或其他机制。因为您的场景“只是Python”,您可以使用您的常规IDE,并将测试版本控制为常规代码(与一些使用XML或二进制格式的其他工具相反)

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")

分布式且可扩展 - 支持数百万用户

Locust简化了在多台机器上运行负载测试的过程。它是基于事件的(使用gevent),这使得单个进程可以处理数千个并发用户。虽然可能存在其他工具可以在特定硬件上每秒执行更多请求,但每个Locust用户低开销的特点使其非常适合测试高并发工作负载。

基于Web的UI

Locust拥有一个用户友好的Web界面,可以实时显示测试的进度。您甚至可以在测试运行时更改负载。它还可以在没有UI的情况下运行,这使得它非常适合CI/CD测试。

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

可测试任何系统

尽管Locust主要与网站/服务一起使用,但它可以用于测试几乎任何系统或协议。只需编写您要测试的客户端,或探索社区创建的一些内容

可修改

Locust的代码库有意识地保持小巧,并不解决所有问题。相反,我们试图使其适应您可能遇到的任何情况,使用常规Python代码。没有阻止您

链接

作者

许可

开源许可,MIT许可证(有关详细信息,请参阅LICENSE文件)。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源代码分发

locust-2.31.8.tar.gz (1.2 MB 查看哈希值)

上传时间: 源代码

构建分发

locust-2.31.8-py3-none-any.whl (1.2 MB 查看哈希值)

上传时间: Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面