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上配置文件路径,路径最好为相对路径。

jmeter接口配置
8、执行压测
在运行选项里,可以远程启动指定的slave节点,也可以一次远程启动所有的slave

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