jmeter分布式部署

jmeter分布式部署
jmeter分布式执行原理
1、jmeter分布式压测时,选择其中一台作为调度机(master),其他机器做为执行机(slave)
2、执行时,调度机(master)会把脚本发送到每一台执行机(slave)上,执行机(slave)拿到脚本后就开始执行,执行机(slave)执行时不需要启动GUI,通过命令行模式执行。
3、执行完成后,执行机(slave)会把结果回传给调度机(master),调度机(master)会收集所有执行机(skave)的信息。
jmeter 分布式执行逻辑

 

 

1、执行机机首先启动Agent程序(运行jmeter-server)
2、调度机连接上远程负载机(修改配置文件,会自动连接)
3、调度机发送指令(脚本及启动命令)启动线程(参数化文件或依赖包需要手动拷贝到每个执行机上)
jmeter分布式部署

前提条件:

1、关闭防火墙
2、所有客户端在同一个子网里
3、内网环境:服务端也和客户端在同一个子网里面
4、外网环境:压力测试瓶颈大多都在带宽上,需要保证压力机带宽要比服务器的带宽高,不然压力上不去
5、各个机器在相同的目录下安装相同版本的jmeter
6、需要所有jmeter都设置好ssl for rmi(jmeter4.0以后版本需要)
7、各个机器在相同目录下安装相同版本的JDK
8、如果脚本涉及读取外部参数化文件(csv),需要将文件上传每个执行机(slave)上
调度机(master)配置
配置jmeter环境变量
根据自身jmeter安装路径配置

export JMETER_HOME=/opt/apache-jmeter-5.5
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin

修改jmeter.properties
1)在jmeter.properties文件中新增remote_host配置,配置是执行机(slave)主机的IP和端口号(默认端口为1099,可以修改)多个执行机以逗号,分割

 2)添加一行server.rmi.ssl.disable=true 保证远程连接通

 

 在jmeter.bat文件中新增set_rmi_host=-Djava.rmi.server.hostname=本机ip

 

 

执行机(slave)配置

配置jmeter环境变量
根据自身jmeter安装路径配置

export JMETER_HOME=/opt/apache-jmeter-5.5
export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH
export PATH=$JMETER_HOME/bin:$PATH:$HOME/bin

修改jmeter.properties配置
添加一行server.rmi.ssl.disable=true 保证远程连接通

 

 开放三个默认端口

server_port=1099
server.rmi.port=1099
server.rmi.localport=1099

 

 

 

 修改jmeter-server
添加一行: RMI_HOST_DEF=-Djava.rmi.server.hostname={slave IP}

 

 执行分布式

先启动执行机(slave)远程服务
启动命令:./jmeter-server
(如果没执行权限就chomd 777 jmeter-server 命令赋权)

控制机(master)执行
Windows直接启动GUI界面执行

 

 

inux 命令启动
1、jmeter -n -t baidu.jmx -R 192.168.66.100,192.168.66.101 -l baidu.jtl -e -o baidu
2、jmeter -n -t baidu.jmx -r -l baidu.jtl -e -o baidu(启动所有执行机salve)

jmeter命令行常用参数
-n 命令行模式
-t 指定jmx脚本地址(地址可以是相对路径,可以是绝对路径)
-h 查看帮助
-v 查看版本
-p 指定读取jmeter属性文件,比如jmeter.properties文件中设置的
-l 记录测试结果的文件,通常结果文件为jtl格式(文件可以是相对路径,可以是绝对路径)
-s 以服务器方式运行(也是远程方式,启动Agent)
-H 设置代理,一般填写代理IP
-P 设置代理端口
-u 代理账号
-a 代理口令
-J 定义jmeter属性,等同于在jmeter.properties中进行设置
-G 定义jmeter全局属性,等同于在Global.properties中进行设置,线程间可以共享)
-D 定义系统属性,等同于在system.properties中进行设置
-S 加载系统属性文件,可以通过此参数指定加载一个系统属性文件,此文件可以用户自己定义
-L 定义jmeter日志级别,如debug、info、error等
-j 制定执行日志路径。(参数为日志路径,不存在不会自动创建,将日志输出到命行控制台)
-r 开启远程负载机,远程机器列表在jmeter.properties中指定
-R 开启远程负载机,可以指定负载机IP,会覆盖jmeter.properties中remote_hosts的设置
-d 指定Jmeter Home目录
-X 停止远程执行
-g 指定测试结果文件路径,仅用于生成测试报表,参数是csv结果文件
-e 设置测试完成后生成测试报表
-o 指定测试报告生成文件夹(文件夹必须存在且为空文件夹)
————————————————

jmeter jtl文件解析成html文件

jmeter - g xx.jtl -o report 


版权声明:本文为CSDN博主「事煙」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wwpanni/article/details/117744807

 

Jmeter 启动:

nohup  jmeter -n -t Njbl/gisService/gis_all.jmx -r -l /opt/report/gis_all/gis_all.jtl -e -o /opt/report/gis_all > /opt/apache-jmeter-5.5/bin/Njbl/gisService/gis_all.log 2>&1 &
nohup ./jmeter-server > /opt/apache-jmeter-5.5/bin/Njbl/gisService/gis_all.log 2>&1 &
nohup java -jar spring-boot-demo.jar > gis.log 2>&1 &

性能测试监控和分析:https://www.cnblogs.com/crazymakercircle/p/16169408.html#autoid-h4-7-2-1

posted @ 2022-11-19 21:59  北极星0202  阅读(337)  评论(0编辑  收藏  举报