JMeter是基于Java开发的工具,需先安装JDK 8或更高版本。在CentOS上可通过以下命令安装OpenJDK 8:
sudo yum install java-1.8.0-openjdk-devel -y
安装完成后验证Java版本:
java -version
需确保输出显示Java版本为1.8及以上。
从Apache JMeter官网下载最新稳定版(如apache-jmeter-5.5.tgz),解压至指定目录(如/opt/jmeter):
wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.5.tgz
tar -zxvf apache-jmeter-5.5.tgz -C /opt/jmeter
编辑/etc/profile文件,添加JMeter路径至PATH环境变量:
echo 'export JMETER_HOME=/opt/jmeter/apache-jmeter-5.5' >> /etc/profile
echo 'export PATH=$JMETER_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
验证JMeter命令是否可用:
jmeter -v
应输出JMeter版本信息。
线程组是JMeter测试计划的核心,用于设置并发用户数、启动时间和循环次数。
关键参数说明:
Add→Threads (Users)→Thread Group,填写上述参数。HTTP请求是性能测试的核心组件,用于模拟用户对接口的调用。
关键参数说明:
jsonplaceholder.typicode.com);/posts);{"name":"test"})。Add→Sampler→HTTP Request,填写上述参数。监听器用于收集和展示测试结果,非GUI模式下建议禁用高开销监听器(如View Results Tree),仅使用低开销监听器(如Aggregate Report、Summary Report)。
常用监听器:
Add→Listener→选择所需监听器。JMeter运行在JVM上,需调整堆内存大小以避免内存溢出。编辑JMeter启动脚本jmeter(位于/opt/jmeter/apache-jmeter-5.5/bin):
vim jmeter
找到HEAP参数,修改为(根据服务器内存调整,建议不超过物理内存的2/3):
HEAP="-Xms2g -Xmx4g -XX:MaxMetaspaceSize=512m"
保存后重启JMeter使配置生效。
HttpClient4(默认),提供更好的连接池管理;修改jmeter.properties文件(位于/opt/jmeter/apache-jmeter-5.5/bin),优化结果保存设置:
vim jmeter.properties
关键配置:
# 结果文件格式(CSV格式更节省空间,适合大数据量)
jmeter.save.saveservice.output_format=csv
# 不保存响应数据(减少磁盘I/O,如需调试可开启)
jmeter.save.saveservice.response_data=false
# 控制台摘要输出频率(秒,默认30,调整为10更频繁查看进度)
summariser.interval=10
保存后生效。
当单台机器无法满足并发需求时,可使用分布式测试(多台机器协同执行测试)。
配置步骤:
jmeter-server:jmeter-server -Djava.rmi.server.hostname=<工作节点IP>
(<工作节点IP>为工作节点的实际IP地址);jmeter.properties文件,添加工作节点IP:remote_hosts=<工作节点IP1>:1099,<工作节点IP2>:1099
jmeter -n -t /path/to/test_plan.jmx -l /path/to/results.jtl -r
(-r表示启动所有远程节点)。若测试过程中强制kill进程,可能导致.jtl文件不完整,生成HTML报告时报错。解决方法:
用vim打开.jtl文件,删除最后一行不完整的信息,再执行报告生成命令:
jmeter -g /path/to/results.jtl -e -o /path/to/report
若测试过程中出现OutOfMemoryError,需调整JVM堆内存(参考“JVM内存调优”部分),或减少并发线程数。