性能测试过程中,常常要求并发数达到一个比较大的值(例如1000+)。当单机配置的CPU与内存等资源无法支撑,就需要部署Jmeter的分布式测试环境。
一般什么情况下需要分布式(原文链接:https://www.cnblogs.com/ranxf/p/6656457.html)
1.比如机器i5双核的cpu,8g的内存。压测一个简单的接口,可以支持500+的并发。(但是如果压测方案逻辑复杂,比如在jmeter里面加了很多控制器,监听器,这些都是很耗机器性能,这时候可能连100并发都压不上去)
2. 压测过程中如果Jmeter未响应,卡住,反应慢,随即启动任务管理器,如果cup和内存特别大时,则说明单机扛不住了,则要使用分布式了
3. 随着并发的增大,TPS不会增长,即出现瓶颈(排除服务器瓶颈及其他),可能是本测试机扛不住了,则要分布式
Jmeter分布式操作步骤:
1.Jmeter分布式测试时,选择其中一台作为Master,其它机器做为Slave(例如本文中有一台Master:10.92.0.4;有两台slave,分别为10.92.0.75和10.92.0.74 注意Master和所有Slave必须同一个网段内!!!否则无法成运行,具体表现为会报slave拒绝连接的错误)。
2.执行时,通过Master,运行所有Slave上的jmeter-server文件。
3.在Master的Jmeter文件的bin目录下找到Jmeter.properties,并且修改文件中的“remote_hosts”。
将“remote_hosts=127.0.0.1”改为““remote_hosts=10.92.0.75:1099,10.92.0.74:1099”
3.启动Controller上的jmeter,选择运行>远程启动下的10.92.0.75:1099和10.92.0.74:1099
下面,我们开始进行实例的讲解:(windows上的master控制2台Linux环境的slave)
首先,我们在Master和slave上安装java环境和jmeter。
注意:master和slave机中的jmeter版本必须一致(小版本也得一致)
JRE的版本也需要一致,不能一个java7一个java8(只要大版本一致即可)
Jmeter的安装
去Jmeter官网(http://jmeter.apache.org/download_jmeter.cgi)下载安装包以及其源码,如下面为其对应windows系统的包:
apache-jmeter-3.0.tgz(Linux环境安装包)
apache-jmeter-3.0.zip(Windows环境安装包)
解压即可。
Linux环境解压命令:tar xzvf apache-jmeter-3.3.tgz
Jmeter的环境变量配置
Windows环境Jmeter的运行需要依赖JDK环境,所以需要安装jdk和配置环境变量。
去Oracle官网(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)下载jdk;
下载后正常安装即可。
环境变量的配置:
我的电脑>属性>高级系统设置>高级>环境变量>系统变量
新增变量名:JAVA_HOME;变量值:jdk的安装目录
编辑path,将jdk安装目录下的/bin文件复制过去“C:\Program Files x86)\Java\jdk1.8.0_131\bin; ”
Linux环境更简单,下载安装和配置jdk:输入命令yum install java-1.8.0-openjdk* -y
更改Jmeter配置
进入Jmeter目录: cd apache-jmeter-3.3/cd bin/
ls命令:这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令(简写是ll)
编辑jmeter.properties文件:vi jmeter.properties
查找remote_host在文件中的位置:输入命令/remote_hosts
输入a,进入编辑状态,修改ip为master机的ip,加端口1099
退出和保存:esc+:wq!
启动Slave上的jmeter:输入命令./jmeter-server