Locust是一款易用性高、可脚本化和可扩展的性能测试工具。
你可以用标准的python代码来定义用户行为操作,而不是停留在UI界面或受限制的特定语言中。
这使得Locust有很好的扩展性以及对开发者使用非常友好。
要使用Locust,请跳转安装链接
如果希望测试用户循环执行一些特定条件行为场景或一些计算,只需通过Python编写标准程序结构来实现即可。Locust中每个定义的用户都在各自的协程1中运行。这使得你可以使用标准python语言来编写测试场景,而不必使用回调或其他机制。由于你的场景脚本是基于python编写的,所以可以使用常规的IDE工具,并通过常规代码版本控制来管理测试用例。
协程:Greenlet是python的一个C扩展,来源于Stackless python,旨在提供可自行调度的‘微线程’, 即协程。
Locust可以轻松地在多台机器上运行负载测试。它是基于事件控制的(使用gevent库),使得一个进程可以处理数千个并发用户数。虽然其他工具可能能够在给定的硬件上每秒执行更多的请求,但每个Locust用户的低开销使其非常适合高并发测试工作。
Locust有一个用户友好的web界面,可以实时显示测试进度。支持在测试运行时更改负载数量。它也支持无UI运行,使得易于和CI/CD进行集成。
虽然Locust主要用于网站或服务的测试,但它也可以用于任何系统或协议的测试。只需为被测的对象编写一个测试客户端代码或通过开源社区提供的工具源码。
Locust很小且很灵活,我们也将保持它的这些特性。如果想将报告数据发送到自定义的数据库和绘图系统,通过对REST API的调用来处理系统的细节或运行完全自定义的加载模式,这些工作Locust都不会阻止的!
Locust的诞生源于对现有解决方案的失望,没有一个现有的负载测试工具能够很好地针对动态网站生成真实的负载,其中大多数页面针对不同的用户具有不同的内容。现有的工具使用了笨重的接口或者冗长的配置文件来声明测试工作。在Locust我们采用了不同的方法。你将得到一个python框架,它将允许你使用python代码定义用户的行为场景,而不是配置格式或UI界面。
Locust得名于昆虫蚱蜢,以其成群的行为而闻名。
在Locust以前的版本里使用了从自然界借来的术语(成群、孵化、攻击等),但现在采用了更多的行业标准命名。
Locust历史版本
根据MIT许可证许可的开放源代码(有关详细信息,请参阅许可证文件)
$python -m pip install locust
$locust -v
locust 2.13.0 from /usr/local/lib/python3.11/site-packages/locust (python 3.11.0)
如果您需要Locust的最新版本,并且无法等待下一个版本,您可以安装如下开发版本:
$python -m pip install -U --pre locust
每次分支/PR合并到主版本时,都会发布预发布版本。
如果你想修改Locust,或为这个项目做贡献,参考开发Locust。
Greenlet是python的一个C扩展,来源于Stackless python,旨在提供可自行调度的‘微线程’, 即协程 ↩︎