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 指定测试报告生成文件夹(文件夹必须存在且为空文件夹)
本文详细介绍了jmeter的分布式执行原理和部署步骤,包括调度机和执行机的配置,以及如何启动分布式测试。内容涵盖了jmeter分布式执行的逻辑,前提条件,配置文件的修改,以及各种命令行参数的使用。
2379

被折叠的 条评论
为什么被折叠?



