Locust是什么?

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

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

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

要开始使用 Locust,请访问 【安装页面】。

功能

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

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

  • 分布式和可扩展 - 支持成千上万的并发用户

    Locust 使得在多台机器上分布式运行负载测试变得容易。它是基于事件的(使用 gevent),这使得单个进程可以处理成千上万的并发用户。虽然可能有其他工具在给定硬件上能够处理更多的请求,但 Locust 的每个用户的低开销使其非常适合测试高并发工作负载。

  • 基于 Web 的 UI

    Locust 具有用户友好的 Web 界面,能够实时显示测试进度。您甚至可以在测试运行时更改负载。它也可以在没有 UI 的情况下运行,使其非常适合用于 CI/CD 测试。

  • 可以测试任何系统

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

  • 可定制

    Locust 小巧且非常灵活,我们计划保持这种特性。如果您希望 将报告数据发送到您喜欢的数据库和图形系统,或者封装对 REST API 的调用来处理您系统的细节,或者运行 完全自定义的负载模式,完全没有任何障碍!

名称与背景

Locust 源于对现有解决方案的挫败感。没有现有的负载测试工具能够有效地针对动态网站生成真实的负载,尤其是对于大多数页面而言,不同用户会看到不同的内容。现有工具使用笨重的界面或冗长的配置文件来声明测试。Locust 采用了不同的方法。它不是使用配置格式或 UI,而是提供了一个 Python 框架,让您通过 Python 代码定义用户的行为。

Locust 的名字来源于一种以群体行为著称的 蚂蚱物种

作者

感谢其他所有杰出的 贡献者

许可

Locust 采用 MIT 许可证进行开源许可(详细信息请参见 LICENSE 文件)。