什么是locust?


背景

Locust 是一种易于使用、可编写脚本且可扩展的性能测试工具。

现有的任何负载测试工具都不能很好地针对动态网站生成真实的负载,在动态网站中,大多数页面针对不同的用户有不同的内容。现有工具使用笨重的接口或冗长的配置文件来声明测试。而locust采取了不同的方法。您将获得一个Python框架,而不是配置格式或UI,它允许您使用Python代码定义用户的行为。 您可以使用常规的Python代码定义用户的行为,而不是陷入UI或限制性领域特定语言的困境。

功能

  • 用Python编写测试场景。

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

  • 分布式且可扩展-支持数十万并发用户。

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

  • 基于Web的用户界面。

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

  • 可以测试任何系统。

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

  • 灵活。

Locust 很小,非常灵活,我们打算保持这种状态。如果您想要将报告数据发送到您喜欢数据库和绘图系统,包装对REST API的调用来处理系统的细节,或者运行完全自定义的加载模式,那么没有什么可以阻止您!