分布式压测环境搭建 (locust实现分布式压测)

JMeter是Apache公司基于Java开发的一款开源压力测试工具,不仅体积小功能全,而且使用起来也非常方便和简单。它是主要用于web应用程序的负载测试。

JMeter工具的特性有很多,比如动态报告、可移植性、强大的测试IDE等,并且支持不同类型的应用程序、协议、shell脚本、Java对象和JMeter操作数据库等等。

然而,很多人只会用JMeter做单机的压测,不会做分布式压测,这里小编带你搭建分布式JMeter做10W-100W的QPS压测环境。

一、机器分配

Master只需要一台,slave节点可以根据自己的项目需要配置多台,并发越多需要的slave越多,一台slave最多开启60000多的并发,这里笔者配置3台。

组件

ip

节点

master

192.168.1.1

window

slave

192.168.1.2

Linux

slave

192.168.1.3

Linux

slave

192.168.1.4

Linux

二、准备工作

1)确保master和各个slave上使用相同版本的JMeter 和 Java。混合版本将无法正常工作。

2)master和各个slave的防火墙已关闭或放行了通讯的端口,且端口1099未被占用。

3)master和各个slave上安装的杀毒软件已关闭。

4)master和各个slave最好在同一个子网内,尽量减少网络带宽的影响,减少时延问题。如果是多网卡环境需要保证启动的网卡都在同一个网段。

三、Master节点配置

进入jmeter/bin目录,打开jmeter.properties,修改:

server.rmi.ssl.disable=true #不开启加密认证传输
remote_hosts=192.168.1.2,192.168.1.3,192.168.1.4  #配置Slave节点服务器

注意:Master节点和Slave节点的通信端口为:1099,确保端口是放开

四、Slave节点配置

在每台slave节点服务器,进入jmeter/bin目录,打开jmeter.properties,修改:

server.rmi.ssl.disable=true 不开启加密认证传输

五、Master节点启动

Window下启动jmeter/bin目录下的jmeter.bat

六、Slave节点启动

Linux下启动jmeter/bin目录下的

./jmeter-server

如果出现报错

Server failed to start: java.rmi.RemoteException: 
				Cannot start. localhost.localdomain is a loopback address.

需要带端口或带IP执行

带IP执行,IP填写当前机器IP

./jmeter-server -Djava.rmi.server.hostname=192.168.1.2

带ip和端口执行

./jmeter-server -Jserver.rmi.localport=1099 -Djava.rmi.server.hostname=192.168.1.2

7、配置压测接口

只需要在master上配置压测接口及各项报告、报表等,在压测的时候会从master上分发到各slave节点上。如果要读取cvs文件数据,需要把cvs文件上传到各个slave上,并在master上配置文件路径,路径最好为相对路径。

10w高并发,开源压测平台搭建

jmeter接口配置

8、执行压测

在运行选项里,可以远程启动指定的slave节点,也可以一次远程启动所有的slave

10w高并发,开源压测平台搭建

远程启动界面

远程启动了slave后就开始了压测工作,在master节点上查看总的测试结果和测试报表。