Jmeter分布式

 

一、环境准备:

1、jmeter3.0(确保master与slave版本一致)

2、jdk1.8(确保master与slave的jdk大版本一致)

master_jdk

slave_jdk

 

3、网络(确保master,slave,server在同一个网络,互相能ping通)

4、关闭slave上的防火墙,否则会报错

PS:本次试验master实在win7上,3台slave在CentOS6.5

二、slave配置

1、修改$JMETER_HOME/bin/jmeter-server的最后位置

将#RMI_HOST_DEF=-Djava.rmi.server.hostname=XXX.XXX.XXX.XX修改为

RMI_HOST_DEF=-Djava.rmi.server.hostname=172.18.104.104

PS:多网卡必须配置,否则会把报错

2、修改$JMETER_HOME/bin/jmeter.properties,来修改jmeter-server的端口

server_port=2099

server.rmi.localport=2099

多slave重复以上步骤

3、启动slave

在jmeter/bin下运行  ./jmeter-server,启动成功如下

 

三、master配置

1、修改$JMETER_HOME/bin/jmeter.bat,启动指定ip

window:

新增set rmi_host=-Djava.rmi.server.hostname=172.18.104.74(master 的ip)

修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

linux:

新增 rmi_host=“-Djava.rmi.server.hostname=172.18.104.74”(master 的ip)

修改ARGS="$SERVER $DUMP $HEAP $NEW $SURVIVOR $TENURING $PERM $CLASS_UNLOAD $rmi_host"

 PS:多网卡必须配置,否则slave执行完毕,回传数据给master的时候会报错

2、修改$JMETER_HOME/bin/jmeter.properties,添加slave主机

# Remote Hosts - comma delimited
remote_hosts=172.18.104.101:2099,172.18.104.102:2099,172.18.104.109:2099,172.18.104.104:2099
#remote_hosts=localhost:1099,localhost:2010

3、启动master检查slave配置是否生效,成功如下

 

 四、master控制slave执行脚本

1、随便在master上以baidu为例,点击远程启动,选中其中一个salve

2、运行结果如下说明成功了,依次调整其他几个slave

 

 

 3、全部运行结果,4个salve运行有4个结果就对应上了

 

五、关于参数化的设置

1、master在windows上,slave在linux或MAC上的时候,参数化设置经常会出问题

2018/07/17 10:49:04 INFO - jmeter.threads.JMeterThread: Thread finished: 10S-1000 1-99
2018/07/17 10:49:04 INFO - jmeter.threads.JMeterThread: Thread started: 10S-1000 1-100
2018/07/17 10:49:04 ERROR - jmeter.threads.JMeterThread: Test failed! java.lang.IllegalArgumentException: File D:\apache-jmeter-3.0\bin\Mac.txt must exist and be readable
at org.apache.jmeter.services.FileServer.createBufferedReader(FileServer.java:422)
at org.apache.jmeter.services.FileServer.getReader(FileServer.java:388)

 

解决办法就是,master设置参数化的时候不要写绝对路径,直接就写一个文件名字,如:Mac.txt。另外需要将Mac.txt拷贝到master上的jmter的bin目录下($JMETER_HOME/bin)

 

六、非GUI运行分布式,多台slave之间用,分隔

D:\apache-jmeter-3.0\bin>jmeter -n -t C:\Users\Administrator\Desktop\pobuli\分布
式.jmx -R 172.18.104.104:2099,172.18.104.102:2099 -l d:\linux.jtl

PS:非GUI运行的结果与GUI运行结果不一样,待研究

1、GUI运行结果

 

 2、非GUI运行结果

 

posted @ 2018-07-12 17:24  卡德加A  阅读(230)  评论(0编辑  收藏  举报