jmeter在不同网段的分布式配置
1.首先要master机和slave机都要具有公网IP
2.master机和slave机互相开放端口,ip可以ping通,端口可以telnet通
3.jdk版本和jmeter版本,master机和slave机版本要相同
好了,下面进入正题
首先说一下我的机器配置,三台slave机为CentOS7,master机为windows.使用windows作为控制机的原因是因为控制机不进行做功,不考虑性能问题,且有GUI页面,编写脚本和查看测试结果的时候也比较方便。
第一步就是安装jdk和jmeter了,我使用的jdk版本是1.8_131,jmeter版本是5.4.1,如图:
上图Windows安装的版本,下面是Linux安装的版本
好了,不管是Windows还是Linux的安装过程都比较简单,解压之后配置环境变量,这里就不赘述了,放上安装包,大家可以去网上搜索包名进行下载:
安装好jdk和jmeter之后,使用命令查看是否安装成功:
java -version
[root@test-f10-1001 ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
[root@test-f10-1001 ~]#
jmeter --version
[root@test-f10-1001 ~]# jmeter --version
_ ____ _ ____ _ _ _____ _ __ __ _____ _____ _____ ____
/ \ | _ \ / \ / ___| | | | ____| | | \/ | ____|_ _| ____| _ \
/ _ \ | |_) / _ \| | | |_| | _| _ | | |\/| | _| | | | _| | |_) |
/ ___ \| __/ ___ \ |___| _ | |___ | |_| | | | | |___ | | | |___| _ <
/_/ \_\_| /_/ \_\____|_| |_|_____| \___/|_| |_|_____| |_| |_____|_| \_\ 5.4.1
Copyright (c) 1999-2021 The Apache Software Foundation
[root@test-f10-1001 ~]#
windows和linux的命令一样,都出现上图的结果说明已经安装成功了,接下来开始进行分布式的配置:
首先配置master机,找到jmeter安装目录下的bin目录,修改jmeter.properties文件,搜索关键字“remote_hosts”,将slave的公网ip和端口填入,比如我的三台slave公网ip和端口分别为:47.xx.xxx.01:1099,47.xxx.xxx.02:1099,120.xxx.xxx.03:1099
然后更改server_port的端口为1099
继续搜索关键字“server.rmi.ssl.disable”和“sampleresult.timestamp.start”,两个参数取消注释,并修改值为true
保存关闭,然后继续使用记事本打开system.properties文件,在文件末尾出添加一行java.rmi.server.hostname=124.xxx.xxx.91
修改完以上两个文件之后保存退出,截止目前为止我们已经完成了master机的配置修改。
接下来在cmd命令行中启动jmeter,我们可以看到jmeter的远程启动下面已经多出来三台机器
master机配置完成之后,我们再来配置slave机,slave的配置相对于master来说更简单
第一步进入jmeter根目录下,输入命令vim bin/jmeter.properties
,修改jmeter.properties文件中的server_port为1099,并取消注释该行
第二步修改server.rmi.localport为1099,取消注释改行,保存并退出
第三步使用命令行模式查找server.rmi.ssl.disable=false,将flase改成true,取消注释
最后一步修改system.properties文件,在文件末尾追加一行代码java.rmi.server.hostname=47.xxx.xxx.01
47.xxx.xxx.01是当前这台slave机的公网ip
以上三步完成后,就大功告成了!接下来我们尝试使用master机来控制slave机进行测试。
我们先在slave机中输入jmeter-server
命令,可以看到slave机已经成功启动
[root@test-f10-1001 apache-jmeter-5.4.1]# jmeter-server
Using local port: 1099
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[47.106.170.122:1099](local),objID:[ae6609d:17ee
2bfb8c4:-7fff, -2467740957156861941]]]
slave机成功启动之后,我们切换到master机,打开master机,随便创建一个压测脚本,然后点击远程启动
通过截图可以看出,已经成功对非同网段下的其他电脑进行了控制。
如果还遇到什么问题请在下面回复,我会一一解答