jmeter分布式部署

本文详细介绍了jmeter的分布式执行原理和部署步骤,包括调度机和执行机的配置,以及如何启动分布式测试。内容涵盖了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=/data/jmeter/apache-jmeter-4.0/apache-jmeter-4.0
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
在jmeter.properties文件中新增remote_host配置,配置是执行机(slave)主机的IP和端口号(默认端口为1099,可以修改)多个执行机以逗号,分割
在这里插入图片描述
在jmeter.bat文件中新增set_rmi_host=-Djava.rmi.server.hostname=本机ip
在这里插入图片描述

执行机(slave)配置

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

export JMETER_HOME=/data/jmeter/apache-jmeter-4.0/apache-jmeter-4.0
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界面执行
在这里插入图片描述
linux 命令启动
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 指定测试报告生成文件夹(文件夹必须存在且为空文件夹)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值