阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      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 如何提高性能

      目录
      目录