Jmeter分布式搭建测试

原理

1、Jmeter分布式测试时,选择其中一台作为控制机(Controller),其它机器做为代理机(Agent)。
2、执行时,Controller会把脚本发送到每台Agent上,Agent 拿到脚本后开始执行,Agent执行时不需要启动Jmeter,只需要把jmeter-server.bat文件打开,它应该是通过命令行模式来执行的。
3、执行后,Agent会把结果回传给Controller,Controller会收集所有Agent的信息并汇总

图形解释

image.png

环境

两台机器配置jmeter变量 有多少台配置多少台

  • JMETER_HOME D:\software\JMETER4.0\apache-jmeter-4.0

  • CLASSPATH %JMETER_HOME%\lib\ext\ApacheJMeter_core.jar; %JMETER_HOME%\lib\jorphan.jar;

  • path %JMETER_HOME%\bin;

要做分布式的前提:

  • 保持一致:jdk一致、
  • jmeter版本一致(本机zip) 脚本最好是放到jmeter的zip
  • 插件的一致性
  • 网络 同一个局域网

如何保存2台机器是在同一个网络呢?

1. 可以连接同一个wife

2. 出在同一个局域网下面,并且固定好他的IP?如何设置呢?如下操作

步骤

step-1. 修改jmeter为中文,并且解决出现乱码的问题

1).搜索ctrl+f language=en 在下面添加 language=zh_CN

image.png

2). 搜索 sampleresult.default.encoding=ISO-8859-1,下面添加sampleresult.default.encoding=UTF-8

image.png

包jmetrer打包成zip 传到执行机里面

step2. **执行机**修改jmeter.properties

执行机修改jmeter.properties文件的相关内容 在bin目录下可以找到这个文件,notepad++打开这个文件

1. 搜索server-port 改成 server_port = 1234 这个端口可以自定义

image.png

2.搜索 rmi.port 改成 server.rmi.port = 1234

image.png

3.搜索 ssl.disable 改成 server.rmi.ssl.disable=True(去掉认证)

image.png

不使用认证证书 因为是在同一个局域网上,不存在安全问题。

4. jmeter bin 目录启动服务jmeter-server.bat:

linux bin目录赋予 执行 chmod +x -R bin/ (linux jmeter-server.sh 需要有执行权限 chmod 777 jmeter-server.sh )

jmeter bin启动:sh jmeter-server.sh -Djava.rmi.server.hostname=ip地址
               windows下执: jmeter-server.bat -Djava.rmi.server.hostname=ip地址

  • cd 到 jmeter bin目录,执行 jmeter-server.bat -Djava.rmi.server.hostname=ip地址
image.png

5. 关闭防火墙:控制面板---windows防火墙

image.png

6.telnet的开启关闭操作 如果本地你已经装好telnet就不用这一步骤

image.png
image.png
image.png
image.png

开始--服务--按键盘T ---telnet 设置成手动 并且启动起来


image.png

7. 在控制机 CDM输入 telnet ip 端口号 尝试连接一下 执行机

image.png
image.png

以上执行机操作完毕 接下是配置 控制机

step3. **控制机**修改jmeter.properties

1.打开/bin/jmeter.properties,找到”remote_hosts=127.0.0.1”,进行修改,如下图所示,这一步的目的是把所有的执行机的IP地址都加进来。

image.png

2.搜索 ssl.disable 改成 server.rmi.ssl.disable=True(去掉认证)

image.png

不使用认证证书 因为是在同一个局域网上,不存在安全问题。

3..搜索 mode=Standard 改成 去掉前面的警号 打开标准模式,能看到jmeter日志

image.png

4. 重启jmeter

脚本开发

这里我就随便模拟下,所以我用了假接口取样器(jp@gc - Dummy Sampler),
监听器:添加了 Summary Report
聚合报告
jp@gc - Active Threads Over Time
jp@gc - Transactions per Second
jp@gc - Response Times Over Time

image.png

菜单栏点击运行--鼠标放在远程启动 你配置的执行机就会被发现

image.png

image.png
image.png

我们也可以将控制机也当成执行机,讲控制机的操作步骤像执行机那样设置一次就可以了

image.png
image.png
image.png

修改一下脚本 把请求放在循环控制器里面看看总请求是否等于 执行机台数 X 线程数 X 循环次数
操作如下图:

image.png
image.png
image.png

总结:

=========执行机配置============

jmeter.properties
server_port = 1234
server.rmi.port = 1234
server.rmi.ssl.disable=true(去掉认证)
linux bin目录赋予 执行 chmod +x -R bin/ (linux jmeter-server.sh 需要有执行权限)
jmeter bin启动:sh jmeter-server.sh -Djava.rmi.server.hostname=IP
                          windows jmeter-server.bat -Djava.rmi.server.hostname=ip
配置防火墙:systemctl stop firewalld.service

================控制机配置===============

主控机器:jmeter.properties:
remote_hosts= 助攻机器ip:端口
server.rmi.ssl.disable=true
mode=Standard 可选
重启jmeter

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容