JMeter是基于Java的工具,需先安装JDK(建议1.8及以上版本)。在CentOS上可通过以下命令快速安装OpenJDK 8:
sudo yum install -y java-1.8.0-openjdk-devel
安装完成后,验证Java版本:
java -version
若未自动配置环境变量,可手动编辑/etc/profile文件,添加以下内容并执行source /etc/profile使其生效:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$PATH:$JAVA_HOME/bin
从Apache JMeter官网下载最新稳定版(如5.4.3),解压至指定目录(如/opt):
wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz
tar -xzf apache-jmeter-5.4.3.tgz -C /opt/
sudo mv apache-jmeter-5.4.3 /opt/jmeter
编辑~/.bashrc文件,添加JMeter的bin目录到PATH:
echo 'export PATH=$PATH:/opt/jmeter/bin' >> ~/.bashrc
source ~/.bashrc
执行以下命令查看JMeter版本,确认安装成功:
jmeter -v
在终端输入jmeter启动图形界面(首次运行需等待加载)。
右键点击“测试计划”→“添加”→“Threads (Users)”→“线程组”,配置以下核心参数:
在线程组下右键→“添加”→“Sampler”→“HTTP请求”,配置目标接口信息:
jsonplaceholder.typicode.com);/posts)。右键点击线程组→“添加”→“Listener”,选择以下监听器(用于查看和分析结果):
图形界面会消耗大量资源,正式测试建议使用命令行模式。执行以下命令:
jmeter -n -t /path/to/your/test_plan.jmx -l /path/to/results.jtl
参数说明:
-n:非GUI模式;-t:测试计划文件路径(.jmx格式);-l:结果文件路径(.jtl格式,记录所有请求的原始数据)。若并发数较大(如超过500),需修改JMeter的内存配置。编辑/opt/jmeter/bin/jmeter文件,找到HEAP参数并调整(如分配2GB内存):
HEAP="-Xms1g -Xmx2g -XX:MaxMetaspaceSize=512m"
修改后需重启JMeter使配置生效。
测试过程中,使用CentOS自带工具监控服务器资源使用情况:
测试完成后,打开生成的.jtl文件(如用Excel或JMeter自带的监听器),重点关注以下指标:
若测试过程中出现“Connection refused”或“Port already in use”错误,需调整系统端口参数:
# 减少端口释放时间(默认60秒)
echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf
# 允许端口复用
echo "net.ipv4.tcp_tw_reuse = 1" >> /etc/sysctl.conf
sysctl -p # 使配置生效
若出现“OutOfMemoryError”,需调整JMeter的JVM内存(参考步骤四中的内存调整方法),或使用分布式测试(见后续扩展内容)。
若单台CentOS服务器无法满足高并发需求,可配置分布式测试(多台机器协同执行):
编辑/opt/jmeter/bin/jmeter.properties,设置远程主机列表:
remote_hosts=192.168.1.101:1099,192.168.1.102:1099 # Slave节点的IP和端口
server.rmi.localport=1099
server.rmi.ssl.disable=true # 关闭SSL(简化配置)
在每台Slave机器上编辑jmeter.properties,设置远程主机(自身IP):
remote_hosts=192.168.1.101:1099
server.rmi.localport=1099
/opt/jmeter/bin/jmeter-server
jmeter -n -t /path/to/test_plan.jmx -R192.168.1.101:1099,192.168.1.102:1099 -l /path/to/results.jtl
参数说明:
-R:指定远程Slave节点的IP和端口(可多个,用逗号分隔)。