如果单台计算机不足以模拟所需的用户数量,那么 Locust 将支持运行分布在多台计算机上的负载测试。

为此,您可以使用该 --master 标志在主模式下启动 Locust 的一个实例。

这是将运行 Locust 的 Web 界面的实例,您可以在其中开始测试并查看实时统计信息。

主节点本身不会模拟任何用户。取而代之的是,您必须使用该 --slave 标志以及 --master-host(指定主节点的 IP/hostname)来启动一个或多个从 locust 节点。

常见的设置是在一台独立的机器中运行 master ,在 slave 机器中每个处理器内核运行一个 slave实例 。

常见的设置是在一台机器上运行一个主机,然后在从属机器上每个处理器内核运行一个从属实例。

注意

在运行 Locust 分布式系统时,主计算机和每个从属计算机都必须具有 locust 测试脚本的副本。

建议您启动的模拟用户数量要大于 number of locust classes * number of slaves 这个公式的值 , 把这个值作为运行 Locust 分布式系统时的数量。

否则,由于当前的实现,您可能最终会得到与 Locust 类的weight属性不对应的 Locust 类分布。

而且,如果孵化率低于从属节点的数量,则孵化将在“突发”中发生,其中所有从属节点将孵化单个用户,然后休眠数秒钟,孵化另一个用户,休眠并重复。

例子

要在主模式下启动 locust

  1. locust -f my_locustfile.py --master

然后在每个从属服务器上(192.168.0.14 用主机的 IP 替换):

  1. locust -f my_locustfile.py --slave --master-host=192.168.0.14

参数说明

--master

设置 Locust 为 master 模式。Web 界面将在这台节点机器上运行。

--slave

将 locust 设置为 slave 模式。

--master-host=X.X.X.X

(可选)与--slave一起使用,设置 master 的 IP/hostname (默认为 127.0.0.1)

--master-port=5557

(可选)与 --slave 一起结合使用;

设置 master 中 locust 端口号(默认为 5557)。

请注意, locust 使用指定的端口,同时指定端口号 +1的也会被占用。

因此,如果使用 5557,则 locust 将同时使用端口 5557 和 5558。

--master-bind-host=X.X.X.X

可选与一起使用--master。确定 master 将绑定到的网络接口。

默认为*(所有可用接口)。

--master-bind-port=5557

可选项,与 --master 一起结合使用。

确定 master 节点将监听哪个网络端口(默认值为 5557)。

请注意, locust 使用指定的端口,同时指定端口号 +1的也会被占用,因此,如果使用 5557,则 locust 将同时使用端口 5557 和 5558。

--expect-slaves=X

使--no-web模式启动 master 的时候,master 将在测试之前,等待 X 链接进来;

效果

如下图,启动了一个 master 和两个 slave,由两个 slave 来向被测试系统发送请求。

Locust 多机器分布式测试

使用 Docker 运行分布式

查看 Docker 运行 Locust

在没有 Web UI 的情况下运行 Locust 分布式

查看 Locust 命令行运行

locust 如何提高性能

如果您打算运行大规模负载测试,则可能有兴趣使用 Locust 附带的备用 HTTP 客户端。

您可以在此处了解更多信息: locust 如何提高性能

相关文章: