JMeter是基于Java开发的工具,需先安装JDK 1.8及以上版本。以CentOS为例,可通过以下命令快速安装OpenJDK 8:
# 安装OpenJDK 8
sudo yum install -y java-1.8.0-openjdk-devel
# 验证安装(需显示版本信息,如1.8.0_xxx)
java -version
若需手动安装Oracle JDK,可从官网下载tar.gz包,解压后配置环境变量(参考/etc/profile添加JAVA_HOME、PATH等参数)。
jmeter.apache.org),选择Linux平台的tgz格式压缩包(如apache-jmeter-5.4.3.tgz)下载。/opt目录),执行解压命令:tar -zxvf apache-jmeter-5.4.3.tgz -C /opt/
ln -s /opt/apache-jmeter-5.4.3 /opt/jmeter # 创建软链接,方便后续调用
/etc/profile文件,添加JMeter路径:export JMETER_HOME=/opt/apache-jmeter-5.4.3
export PATH=$JMETER_HOME/bin:$PATH
source /etc/profile # 使配置生效
jmeter -v,若显示JMeter版本信息(如Apache JMeter 5.4.3),则安装成功。测试脚本是压力测试的核心,可通过以下两种方式创建:
方式1:GUI模式编写(推荐新手)
在Windows或CentOS(需安装桌面环境)上启动JMeter GUI(jmeter命令),按以下步骤构建脚本:
Test Plan → Add → Threads (Users) → Thread Group,配置并发参数:
Number of Threads (users):并发用户数(如100);Ramp-Up Period:线程启动时间(如10秒,表示10秒内启动100个线程);Loop Count:循环次数(如10次,表示每个线程执行10次请求)。Add → Sampler → HTTP Request,配置请求参数:
Server Name or IP:目标服务器IP或域名(如192.168.1.100);Port Number:端口(如80或443);Path:请求路径(如/api/test);Method:请求方法(如GET、POST)。Add → Listener → View Results Tree(查看详细响应)、Summary Report(汇总统计,如平均响应时间、吞吐量)。File → Save As,命名为test.jmx并保存。方式2:命令行模式生成(无GUI环境)
若CentOS无桌面环境,可通过命令行工具(如curl)生成基础脚本,或直接在Windows上编写后上传至服务器。
基本命令(非GUI模式):
将测试脚本(test.jmx)上传至CentOS服务器,执行以下命令:
jmeter -n -t /opt/test/test.jmx -l /opt/test/result.jtl -e -o /opt/test/report
参数说明:
-n:非GUI模式(避免占用过多资源);-t:指定测试脚本路径;-l:指定结果文件路径(.jtl格式,记录每个请求的详细数据);-e:测试结束后生成HTML报告;-o:指定报告存放目录(需为空目录)。分布式压测(可选,用于高并发场景):
若单台服务器无法满足并发需求,可配置多台服务器协同压测:
jmeter.properties文件,设置server.rmi.ssl.disable=true;启动Slave节点:jmeter-server -Djava.rmi.server.hostname=<Slave_IP>。jmeter.properties文件,设置remote_hosts=<Slave1_IP>:1099,<Slave2_IP>:1099;启动Master节点并执行分布式测试:jmeter -n -t /opt/test/test.jmx -r -l /opt/test/result.jtl(-r表示启动所有Slave节点)。-e -o参数,可通过View Results Tree监听器实时查看每个请求的响应时间、状态码等信息(注意:生产环境慎用,会消耗大量内存)。-o指定的报告目录(如/opt/test/report),打开index.html文件,查看以下关键指标:
CSV Data Set Config组件读取CSV文件中的数据(如用户名、密码),实现动态参数化(避免重复使用同一数据)。Regular Expression Extractor或JSON Extractor提取前一个请求的响应数据(如token),传递给后续请求(处理接口依赖)。Constant Timer或Gaussian Random Timer设置请求间隔(模拟用户思考时间,减少服务器压力)。以上步骤覆盖了CentOS环境下JMeter压力测试的全流程,从环境准备到脚本执行、结果分析,可根据实际需求调整并发参数、优化脚本逻辑。