Locust 多机器分布式测试

🌙
手机阅读
本文目录结构

Locust 多机器分布式运行

如果单台计算机不足以模拟所需的用户数量,那么 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

locust -f my_locustfile.py --master

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

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 一起结合使用;

设置 masterlocust 端口号(默认为 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 来向被测试系统发送请求。

https://a.axihe.com/img/tools/locust/webui-splash-screenshot.png

使用 Docker 运行分布式

查看 Docker 运行 Locust

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

查看 Locust 命令行运行

locust 如何提高性能

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

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

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了