JMeter分布式加压机制
JMeter 分布式加压机制
JMeter 命令行测试
简介
JMeter GUI模式主要用于测试计划调试,确保正常运行。实际压测时,为追求高性能与自动化,常用命令行模式执行,且支持CI集成,实现高效测试与持续监控。
常用命令
jmeter.sh/bat
- 作用:用于启动JMeter的GUI,用户可以通过图形界面交互地创建、配置和运行测试计划。
- 在Linux和Mac是在
jmeter.sh -H [your.proxy.server] -P [your proxy server port]
。 - 在Windows是
jmeter.bat -H [your.proxy.server] -P [your proxy server port]
。
jmeter -h
- 作用:显示 JMeter 的帮助信息,列出所有可用的命令行参数及其功能。
jmeter --?
- 作用:命令行输入 jmeter --? 与 jmeter -h 类似,都会显示 JMeter 的帮助信息,列出所有可用的命令行参数及其功能。
How Jmeter Know: CLArgsParser + ParseArgs
CLArgsParser
是 JMeter 用来解析命令行参数的类。它的主要作用是读取用户在启动 JMeter 时提供的命令行参数,并将这些参数转换成 JMeter 可以理解的选项和配置。ParseArgs
是 JMeter 的一个实用函数(或方法),用于处理已经由CLArgsParser
解析的参数。它负责根据解析后的参数设置 JMeter 的运行环境和配置。
Jmeter传递用户自定制变量
- 命令行进行定制:
jmeter -Jurl=localhost -Jport=8080 -n -t sample,jmx -l sample..result.jtl
- 使用 ${P(url,)} 的方式调用
XX:MaxMetaspacesize(idk8的参数)
- 作用:这个参数用于限制Metaspace增长的上限,防止因为某些情况导致Metaspace无限的使用本地内存,如果超过设定的值就会触发FuI GC,此值默认没有限制,应取决于系统内存的大小,JVM会动态地改变此值。例如:-XX:MaxMetaspaceSize=4096M
- -Xmx2048m:设置堆内存最大值为512m
- -Xms1g:设置堆内存最小值1g(ps:-Xms和-Xmx实际上是-XX:InitialHeapSize 和-XX:MaxHeapSize的缩写。例如:-XX:InitialHeapSize=128m -XX:MaxHeapSize=2g)
JMeter 分布式压测支持
- Master:Master可以是一个GUI,只用来控制开始或暂停当前测试任务。
- Slave:使用jmeter-server的方式启动,需要系统一个带server的参数,一般来讲使用非命令行的参数,非GUI图形界面启动,接收Master传递来的命令。
- Target:计划进行压力测试的Web服务器。
JMeter压测准备
Slave 准备
Docker run java:8
docker run -itd -p 1599:1599 -p 7000:7000 -p 50005:50005 --name jmeter_slave_2 java:8
cd tmp
wget http://mirrors.shu.edu.cn/apache//jmeter/binaries/apache-jmeter-.zip tar -xzf apache-jmeter-.zip -d
Jmeter -v
./jmeter-server -Djava.rmi.server.hostname=192.168.31.201
-Dserver.rmi.localport=7000 -Dserver_port=1599
server_port=1299 (Jmeter-Server 中的Jmeter侦听器)
server.rmi.localport = 6000 (用于答复客户端的端口)
Slave start.sh
Jmeter remote start
JMeter 结果回传配置
Jmeter CSV Data Set, Lib 等如何分布式 Jmeter 只会同步 Jmx 不会同步配置数据。
总结
- jmeter命令行测试
- JMeter 分布式压测支持