jmeter压测工具环境搭建(Linux、Mac)
目录
java环境安装
1、anaconda安装java环境(推荐)
2、直接在本地环境安装java环境
yum方式安装jdk
二进制方式安装jdk
jmeter环境安装
1、jmeter单机安装
启动jmeter
配置环境变量
jmeter配置中文
2、jmeter集群搭建
多台机器部署jmeter集群
单台机器部署jmeter集群
jmeter运行命令
1、常用命令解析
2、更多命令参数
java环境安装
java官网:https://www.java.com/zh-CN/
anaconda官网:Anaconda | The Operating System for AI
jmeter官网:Apache JMeter - Apache JMeter™
1、anaconda安装java环境(推荐)
使用conda安装python环境,有诸多优势 1、不同环境底层SSL库相互隔离,python环境也相互隔离 2、可以快速在一个环境内,切换不同python版本 3、创建/删除环境速度快
tips:如果需要在公司使用anaconda,需要使用公司商业版授权码激活
1、Linux安装anaconda(在线安装)
从官网下载安装包
更多版本可以参考官网文档:Anaconda官网
我这里下载是最新版2023.08
wget https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh
默认安装路径/root/anaconda3,如果需要指定路径加,-p 安装路径
正常安装一直回车确认,然后一路回车就行
bash Anaconda3-2023.07-2-Linux-x86_64.sh |
然后重新登陆shell
查看版本号,正确返回版本号,说明conda安装成功
conda -V |
2、从conda安装java环境
推荐安装java 8以上版本,我使用的jmeter是5.4版本,低于java 8无法正常运行
使用conda安装的环境,每个环境对应的java版本都是独立的
# 使用conda创建一个名称为jmeter的环境,并且下载java 11版本 conda create -n jmeter openjdk=11 # 查看创建环境是否成功 conda env list # 查看java版本号 conda run -n jmeter java -version |
2、直接在本地环境安装java环境
yum方式安装jdk
在CentOS上安装JDK(Java Development Kit),你可以按照以下步骤进行操作。以下示例将基于OpenJDK进行安装,这是一个常见的开源JDK:
1,更新软件包索引: 打开终端,以root或拥有sudo权限的用户身份执行以下命令来更新软件包索引:
sudo yum update -y
2,安装OpenJDK: 使用以下命令来安装OpenJDK 11(你也可以选择其他版本,如OpenJDK 8或OpenJDK 16):
sudo yum install java-11-openjdk-devel -y
3,验证安装: 安装完成后,可以通过运行以下命令来验证Java的版本:
java -version
如果一切顺利,你应该能够看到安装的Java版本信息。
请注意,如果你有特定需求或对JDK的厂商有要求,你也可以选择安装Oracle JDK或其他JDK版本。安装过程可能会因Linux发行版的不同而有所变化,但基本步骤是相似的。在安装时,请确保你使用了适合你CentOS版本的命令。
二进制方式安装jdk
首先下载java二进制包
oracle jdk下载地址:Java Downloads | Oracle
open jdk下载地址:Archived OpenJDK GA Releases
下载解压
# 下载oracle jdk 22版本压缩包 wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz # 解压文件 tar -zxvf jdk-22_linux-x64_bin.tar.gz # 测试java文件是否可以正常使用,返回版本号说明可以正常使用 jdk-22.0.1/bin/java -version |
添加环境变量
# 编写环境变量文件 vim /etc/profile # 在文件末尾添加这行 # set path for JAVA_HOME export JAVA_HOME=your_java_path/jdk-22.0.1 export PATH=$PATH:$JAVA_HOME/bin |
验证添加的环境变量是否生效
echo $JAVA_HOME
java -version
jmeter环境安装
1、jmeter单机安装
安装jmeter
1、首先需要安装jmeter对应的jdk,5.4版本需要对应jdk8以上
2,安装jmeter,去官网下载最新版的jmeter,我这里下载的是5.4版本的,地址,https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.2.tgz
直接用wget命令下载
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.2.tgz
3,然后解压下载多安装包
tar -zxvf apache-jmeter-5.4.2/
启动jmeter
1,进入jmeter的bin目录,运行当前文件夹下的jmeter
运行命令,返回版本号,说明环境没有问题
apache-jmeter-5.4.2/bin/jmeter -v
配置环境变量
1,编辑/etc/profile文件
vim /etc/profile
2、在末尾加上jmeter的安装路径
export PATH=/root/data/apache-jmeter-5.4.2/bin:$PATH
3、刷新环境变量
source /etc/profile
4,验证环境变量
在任意地方输入,返回版本号说明环境变量生效
jmeter -v
jmeter配置中文
1、在jmeter面板上选择
Options --> Choose Language --> Chinese
2、打开jmeter/bin/jmeter.properties,修改字段
language=zh_CN
2、jmeter集群搭建
多台机器部署jmeter集群
1,首先在master跟slave都安装版本一致的jdk跟jmeter
2,master修改文件JMeter.properties文件,修改如下字段
remote_hosts=slave—ip:端口号(默认1099)
3,slave修改文件JMeter.properties文件,修改如下字段
server.rmi.ssl.disable=true
4,在slave上启动jmeter-server,使用命令
nohup .meter-server & ps -ef | grep jmeter-server
5,slave启动成功后,在主节点使用telnet 命令查看端口1888是否开放
telnet slaveip:1888
6,检测端口是否通,不通的话要去防火墙或者云服务器开一下端口
7,主节点使用命令进行压测
jmeter -n -t jmx脚本名称 -R slaveip:1888
单台机器部署jmeter集群
1,jmeter修改文件JMeter.properties
remote_hosts=localhost:1099
2,启动从节点
nohup ./jmeter-server & ps -ef | grep jmeter-server
3,启动时提示时回环地址的,需要在jmeter-server修改Djava.rmi.server.hostname成你的ip地址
#RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
4,启动压测任务
jmeter -n -t ./perf.jmx -R localhost:1099
5,能够正常请求成功,正常结束就是没有问题的
jmeter运行命令
1、常用命令解析
nohup jmeter -n -t test.jmx -Jthreads=100 -Jramp=10 -Jloop=3000 &
命令参数 | 参数解析 | 备注 |
---|---|---|
-n | 以非图形用户界面模式(non-GUI mode)运行 JMeter | |
-t | 指定要运行的 JMeter 测试计划文件(.jmx 格式) | |
-o | 输出测试报告到指定路径,路径必须为一个不存在的文件夹 | 测试结果可以导出到本地网页中查看 |
-l | 输出测试结果到指定文件,路径必须为一个不存在的文件(.jtl格式) | jtl文件可以导出到聚合报告中查看 |
-Jthreads | 传递一个用户定义的属性,这里对应jmeter中的线程组 | 通过命令行带上 -J 参数来传递用户属性 |
-Jramp | 传递一个用户定义的属性,这里对应jmeter中启动时间 | 通过命令行带上 -J 参数来传递用户属性 |
-Jloop | 传递一个用户定义的属性,这里对应jmeter中的持续时间 | 通过命令行带上 -J 参数来传递用户属性 |
${__P(threads,1)} | 定义一个用户定义的属性,这里对应jmeter中的线程组 | 这里定义的默认值是1 |
${__P(ramp,1)} | 传递一个用户定义的属性,这里对应jmeter中启动时间 | 这里定义的默认值是1 |
${__P(loop,1)} | 传递一个用户定义的属性,这里对应jmeter中的持续时间 | 这里定义的默认值是1 |
jmx脚本中定义用户属性如下
2、更多命令参数
-v, --version 打印版本信息并退出 -p, --propfile <参数> 要使用的 jmeter 属性文件 -q, --addprop <参数> 附加的 JMeter 属性文件 -t, --testfile <参数> 要运行的 jmeter 测试(.jmx)文件 -l, --logfile <参数> 要记录样本的文件 -i, --jmeterlogconf <参数> jmeter 日志配置文件(log4j2.xml) -j, --jmeterlogfile <参数> jmeter 运行日志文件(jmeter.log) -n, --nongui 以非 gui 模式运行 JMeter -s, --server 运行 JMeter 服务器 -H, --proxyHost <参数> 为 JMeter 设置要使用的代理服务器 -P, --proxyPort <参数> 为 JMeter 设置要使用的代理服务器端口 -N, --nonProxyHosts <参数> 设置非代理主机列表(例如*.apache.org|localhost) -u, --username <参数> 设置 JMeter 要使用的代理服务器的用户名 -a, --password <参数> 设置 JMeter 要使用的代理服务器的密码 -J, --jmeterproperty <参数>=<值> 定义其他 JMeter 属性 -G, --globalproperty <参数>=<值> 定义全局属性(发送到服务器), 例如 -Gport=123 或 -Gglobal.properties -D, --systemproperty <参数>=<值> 定义其他系统属性 -S, --systemPropertyFile <参数> 其他系统属性文件 -f, --forceDeleteResultFile 在开始测试前强制删除现有结果文件和 Web 报告文件夹(如果存在) -L, --loglevel <参数>=<值> [category=]level 例如 jorphan=INFO、jmeter.util=DEBUG 或 com.example.foo=WARN -r, --runremote Start远程服务器(如 remote_hosts 中所定义) -R, --remotestart <参数> 启动这些远程服务器(覆盖 remote_hosts) -d, --homedir <参数> 要使用的 jmeter 主目录 -X, --remoteexit 在测试结束时退出远程服务器(CLI 模式) -g,--reportonly <参数> 仅从测试结果文件生成报告仪表板 -e, --reportatendofloadtests 在负载测试后生成报告仪表板 -o, --reportoutputfolder <参数> 报告仪表板的输出文件夹 |