1.jdk和jmeter环境搭建
2.分布式原理
注意:
1.master机和slave机必须在同一个网段
2.jdk必须相同
3.jmeter版本最好一致
4.插件最好一致
3.所有执行机slave配置
(1)进入jmeter的bin目录,修改jmeter-server文件,指定主机ip,及端口号
备注:如果时windows环境,修改jmeter-server.bat
RMI_HOST_DEF=-Djava.rmi.server.hostname=10.4.65.152
${DIRNAME}/jmeter ${RMI_HOST_DEF} -Dserver_port=${SERVER_PORT:-1099} -s -j jmeter-server.log "$@"
server_port=1099
server.rmi.localport=1099
(2)jmeter.properties配置文件中server.rmi.ssl.disable=true改为true
(3)./jmeter-server启动负载机,出现如下界面,证明启动成功
(4)如果脚本中调用了参数文件,或者其它上传图片等,都需要将文件放到slave节点bin目录下
--或者在bin目录下,创建data文件夹,将参数文件放在data目录中。相对路径写成../data/username.xls
--脚本不需要拷贝
4.调度机(master)配置
(1)编写脚本
(2)找到Jmeter的bin目录下jmeter.properties文件,修改如下配置,IP和Port是slave机的IP以及自定义的端口
--多台slave之前用","隔开
(3)jmeter.properties配置文件中server.rmi.ssl.disable=true改为true
(4)打开Jmeter,选择运行,有启动、远程启动、远程全部启动三个选项:
启动:就是启动当前master(调度机),把调度机当负载机单独执行
远程启动:可以选择执行需要的负载机
远程全部启动:顾名思义,就是启动所有的负载机
5.调度机(master)使用命令执行分布式测试
jmeter -n -t strRemote_API.jmx -R 10.4.65.111 -l strRemote_API.jtl -e -o output
jmeter -n -t strRemote_API_test_clientB.jmx -r -l strRemote_API_test_clientB.jtl -e -o output
6.其他
(1)报错
因为远程服务没有启动。 你在10.50.1.101 jmeter/bin下面执行./jmeter-server. 提示:Created remote object 。然后重启客户端的jmeter。就可以远程启动了
(2)远程连接无响应,总是失败
因为master和slave必须在同一个网段下。
参考:https://www.bbsmax.com/A/gVdnlrwlJW/
(3)调度机(master)和执行机(slave)最好分开,由于master需要发送信息给slave并且会接收slave回传回来的测试数据,所以mater自身会有消耗,所以建议单独用一台机器作为mater
(4)执行机(slave)设置的端口,首先要保证未被占用,可以使用该命令进行查询,netstat -anp|grep 端口,
查询有值,则代表该端口已经被占用,需要换一个端口
(5)执行结果为空
slave机中,参数文件的位置放错了。创建data文件夹,与bin同一级目录,用于存放参数文件。
补充:master机中,创建scripts文件夹,与bin同一级目录,用户存放脚本。
master机中,创建data文件夹,与bin同一级目录,用于存放参数文件。