Locust学习笔记9——分布式压测

  引言

  我们知道Jmeter单机并发数并不高,一般配置也就支持1000左右。那么就引出了分布式压测的概念,Jmeter通过调度机(Master)与执行机(Slave)来实现。而Locust也支持分布式压测,类似Jmeter一样,当一台机器无法模拟所需的用户数量时候,可以通过多台Slave机器来实现,Master机器主负责分发任务和下达指令。

  分布式场景

  Locust分布式场景有两种:

  1.单台机器设置Master和Slave

  2.多台机器时,一台调度机(Master),其他机器设置执行机(Slave)

  前提:

  1、主机(master)装好locust环境

  2、从机(slave)装好locust环境

  3、主机/从机上都要有执行的Python文件(你自己写的压测脚本)

  备注:环境安装可以从头看起。

  单机分布式压测

  启动方式:Locust中使用主从模式启动多个进程(使用多核处理器的能力),先启动 master,主处理器负责分发任务,然后再逐一启动若干个 slave(slave 的节点数要小于等于本机的处理器数),从机负责执行任务。

  本篇以WIN10专业版为例,查看CPU是几核心的,可以打开任务管理器如下:

  

 

  我的电脑CPU是6核的。

  打开cmd,在dos下输入:

locust -f locust_batch_data.py --master

  前面说过,master是不会执行任务的,只是分发任务的,如图:

 

   现在可以启动Slave机器,我们打开多个dos窗口,输入命令:

locust -f locust_batch_data.py --slave

 

  再打开master的dos窗口看看:

 

   红色框框是计算机名称,如果不确定,可以打开我的电脑→系统查看:

 

 

 

  然后打开浏览器,输入:http://localhost:8089/,我启动了6个slave,正常的话,slave数应该显示6。

  

  多机分布式压测

  前面已经说过,当一台电脑无法满足足够大的并发用户数量时,就需要多台机器来模拟请求。多机案例需要多台机器,以后有时间部署多台机器来演示,这里就讲方法。

  方式:一台作为调度机(Master),其他电脑作为(执行机(Slave),启动时,需要指定主节点的IP/主机名,如:" --slave  --master-host "

locust -f locust_batch_data.py --master

  接着在其它机器上(环境和主节点环境一致,都需要有locust的运行环境和脚本),启动 slave 节点,设置 --master-host

locust -f locust_batch_data.py --slave --master-host=192.168.*.*

  如图:

  

 

 使用计算机名称:

locust -f locust_batch_data.py --slave --master-host=WIN10-804191526

  

  参数介绍:

  1、--master 以主服务模式启动Locust,web界面打开也是以此机IP为地址。

  2、--slave 以从属服务模式启动Locust

  3、master-host=192.168.x.xx 用于从属服务指定主服务的地址

  4、--master-port=8089 用于从属服务指定主服务的端口

  无网页模式启动, -c是设置并发用户数,-r是设置每秒进入用户数,-t设置运行时长

locust -f locust_batch_data.py --no-web  -c 100 -r 10

  总结

  Locust分布式压测就介绍到这里,另外,对软件测试,自动化测试,测试开发及安全测试感兴趣的小伙伴,可以入群一起学习和讨论。

 

posted @ 2020-06-28 11:43  全栈测试开发日记  阅读(1964)  评论(0编辑  收藏  举报