JMeter是基于Java开发的工具,需先安装JDK 8或更高版本。以OpenJDK为例,执行以下命令:
sudo yum install -y java-1.8.0-openjdk-devel # 安装JDK 8
java -version # 验证安装(显示版本信息即成功)
从Apache官网下载最新稳定版JMeter(如apache-jmeter-5.5.tgz),解压至指定目录:
wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.5.tgz
tar -zxvf apache-jmeter-5.5.tgz
cd apache-jmeter-5.5
编辑/etc/profile文件,添加JMeter路径及依赖库:
echo 'export JMETER_HOME=/opt/jmeter/apache-jmeter-5.5' >> /etc/profile # 替换为实际解压路径
echo 'export PATH=$JMETER_HOME/bin:$PATH' >> /etc/profile
echo 'export CLASSPATH=$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$CLASSPATH' >> /etc/profile
source /etc/profile # 使配置生效
验证JMeter命令是否可用:
jmeter -v # 显示版本信息即配置成功
jmeter # 启动图形界面
通过GUI创建测试计划(添加线程组、HTTP请求、监听器等),调试完成后保存为.jmx文件(如test_plan.jmx)。
线程组是模拟用户并发的关键组件,需配置以下参数:
在线程组中添加“HTTP请求”组件,配置以下关键参数:
http或https;example.com);80、443);GET、POST等;/api/data);添加监听器以查看测试结果,常用组件及配置:
通过CSV文件实现动态参数传递(如用户名、密码),步骤如下:
data.csv),内容示例:username,password
user1,pass1
user2,pass2
./data.csv,相对路径更易迁移);username,password);,,与CSV文件一致);True表示循环,False表示读完后停止线程);All threads表示所有线程共享,Current thread group表示当前线程组共享)。修改JMeter启动脚本jmeter(位于bin目录),调整堆内存大小以避免内存溢出(OOM):
vim bin/jmeter
找到HEAP参数,修改为(根据服务器内存调整,建议不超过物理内存的2/3):
HEAP="-Xms2g -Xmx4g -XX:MaxMetaspaceSize=512m"
启用G1垃圾回收器减少GC停顿时间:
JVM_ARGS="-XX:+UseG1GC"
保存后重启JMeter使配置生效。
正式测试时,务必使用非GUI模式(-n)运行,减少资源消耗:
jmeter -n -t /opt/jmeter/test_plan.jmx -l /opt/jmeter/results.jtl
-t:指定测试脚本路径;-l:指定结果文件路径(.jtl格式,便于后续分析)。通过结果文件生成可视化HTML报告:
jmeter -g /opt/jmeter/results.jtl -e -o /opt/jmeter/report
-g:指定结果文件路径;-o:指定报告输出目录(需为空目录)。/opt/jmeter/report/index.html查看。当单台机器无法满足并发需求时,可使用分布式测试:
jmeter-server:jmeter-server -Djava.rmi.server.hostname=<机器IP>
jmeter.properties中配置远程主机:remote_hosts=192.168.1.101:1099,192.168.1.102:1099 # 多个负载机IP用逗号分隔
jmeter -n -t /opt/jmeter/test_plan.jmx -l /opt/jmeter/results.jtl -r
(-r表示启动所有远程主机).jtl和报告目录,避免磁盘空间不足;ping、curl命令验证)。