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机器运行时会取不到数据。

posted @ 2020-07-16 18:39  YuKiiiiii_i  阅读(735)  评论(0)    收藏  举报