Jmeter分布式

前言

控制机称为调度机(master),被控制机(服务机器)称为执行机(slave)。
无论执行机是windows系统还是linux系统,首先要配置好java环境。

jdk下载(这里是1.8.0_191版本)

windows jdk网盘下载,提取码 8888
linux jdk网盘下载,提取码 8888

环境变量配置

java环境变量配置 windows和linux

一、Jmeter分布式执行原理:

1、Jmeter分布式测试时,选择其中一台作为调度机(master),其它机器做为执行机(slave)。

2、执行时,master会把脚本发送到每台slave上,slave 拿到脚本后就开始执行,slave执行时不需要启动GUI,我理解它应该是通过命令行模式执行的。

3、执行完成后,slave会把结果回传给master,master会收集所有slave的信息并汇总。

二、slave机器配置(linux系统为例):

  1. 将jmeter装入Linux服务器中,这个时候可以注意一下,调度机和执行机最好安装相同的jmeter和JDK版本,避免因为版本不同而发生错误

  2. 安装完成后进入jmeter目录下的bin目录中,打开jmeter.properties文件,修改server.rmi.ssl.disable=false,改为true,并去掉注释
    在这里插入图片描述

  3. 启动目录下的jmeter-server文件
    在这里插入图片描述

如果遇到上面这种情况,就使用以下命令启动服务 ./jmeter-server -Djava.rmi.server.hostname=主机ip ,主机IP为slave机器的ip;启动成功展示如下:
在这里插入图片描述

如果需要多台slave机器,则重复上述步骤即可。
三、master机器配置(windows系统为例):
jmeter.properties文件 false改为true
在这里插入图片描述

将slave机器的IP也填入这个文件 ,
在这里插入图片描述

ip和端口可以在服务启动的输出信息中取到,如果添加多个slave机器,则用“,”隔开就可以
在这里插入图片描述

2.这个时候在jmeter内就可以看到已经添加成功了 ,点击运行–>远程启动192.168.3.111

在这里插入图片描述
报错,连接失败。

在这里插入图片描述
ping不通。

slave机查看44957端口

netstat -tunlp |grep 44957

在这里插入图片描述
有,但是ping不通,看防火墙。

firewall-cmd --zone=public --query-port=44957/tcp

在这里插入图片描述
防火墙没有开放44957端口

firewall-cmd --zone=public --add-port=44957/tcp --permanent //开放44957端口
firewall-cmd --reload 										//重新载入 firewall
firewall-cmd --zone=public --query-port=44957/tcp     		//查看44957端口是否已经开放 显示yes 则开放成功。

然后用执行机ping了一下
在这里插入图片描述
进去了。
在这里插入图片描述


三、修改slave机器端口

jmeter默认使用的端口是1099,如果你的机器上1099端口已经被其他应用给占用了,就需要修改jmeter的使用端口。

  1. 在slave机器中的jmeter.properties在这里插入图片描述
    文件中找到server_port,将它后面的端口号修改为你想要的端口
    然后再将server.rmi.localport后面的端口号修改与上面相同,保存文件,重新启动jmeter服务即可
    在这里插入图片描述
    2.修改了slave机器的端口需要在master机器上对应修改配置的slave服务,将jmeter.properties文件中remote_hosts后的IP地址机端口修改为slave机器 新的IP和端口,保存文件,重启jmeter即可。
    在这里插入图片描述
    四、补充说明

  2. 如果你的机器内包含多个网卡,为了确保在指定的IP上进行发送和接收信息,需要为jmeter配置指定的IP

1)修改slave服务器上的jmeter-server文件,修改修改RMI_HOST_DEF=-Djava.rmi.server.hostname=slave主机ip

2)修改master服务器的jmeter.bat文件,新增set rmi_host=-Djava.rmi.server.hostname=master主机ip;修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%;重启服务即可。

  1. 在进行分布式配置前,需要确保各个服务器之间可以互相ping或telnet,不然会影响发送和接收相关信息

  2. 使用多个Linux服务器时,尽量保证多个服务器的时区相同,不然返回的结果时间可能会存在误差

  3. 分布式并不是将一个jmeter脚本的请求分送给各个slave机器执行,而是在多个slave机器上同时执行jmeter脚本请求,所以如果线程为10,循环为1,请求为1,slave服务器为2台,那么两台机器同时启动所发送的请求为10_1_1*2=20次。

  4. 如果你的jmeter测试脚本需要调用外部变量即csv文件等,需要将csv文件赋值到各个slave机器上的相同路径下,不然在slave机器运行时会取不到数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值