jmeter使用-【分布式并发接口测试步骤】
当测试需要压力过高时,一个负载机的资源往往无法支撑,此时就需要增加多台机器同时生成负载,这样的测试就是分布式测试。
一、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.bat文件

如果遇到上面这种情况,就使用以下命令启动服务 ./jmeter-server -Djava.rmi.server.hostname=主机ip ,主机IP为slave机器的ip;启动成功展示如下:
如果需要多台slave机器,则重复上述步骤即可。
三、master机器配置(windows系统为例):
1. 打开jmeter路径下的jmeter.properties文件,修改server.rmi.ssl.disable=false,改为true,并去掉注释
将slave机器的IP也填入这个文件 ,

ip和端口可以在服务启动的输出信息中取到,如果添加多个slave机器,则用“,”隔开就可以
2. 这个时候在jmeter内就可以看到已经添加成功了 ,点击运行10106端口的slave服务器,就可以在查看结果树中看到已经执行成功了


此时slave端也可以看到有运行信息输出。

这样就运行成功啦!
三、修改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即可。

四、补充说明
1. 如果你的机器内包含多个网卡,为了确保在指定的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%;重启服务即可。
2. 在进行分布式配置前,需要确保各个服务器之间可以互相ping或telnet,不然会影响发送和接收相关信息
3. 使用多个Linux服务器时,尽量保证多个服务器的时区相同,不然返回的结果时间可能会存在误差
4. 分布式并不是将一个jmeter脚本的请求分送给各个slave机器执行,而是在多个slave机器上同时执行jmeter脚本请求,所以如果线程为10,循环为1,请求为1,slave服务器为2台,那么两台机器同时启动所发送的请求为10*1*1*2=20次。
5. 如果你的jmeter测试脚本需要调用外部变量即csv文件等,需要将csv文件赋值到各个slave机器上的相同路径下,不然在slave机器运行时会取不到数据。

浙公网安备 33010602011771号