JMeter在CentOS上的并发测试如何设置
一、前置准备:安装Java环境
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
二、安装JMeter
1. 手动下载安装(推荐)
从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
2. 配置环境变量
编辑~/.bashrc
文件,添加JMeter的bin
目录到PATH
:
echo 'export PATH=$PATH:/opt/jmeter/bin' >
>
~/.bashrc
source ~/.bashrc
3. 验证安装
执行以下命令查看JMeter版本,确认安装成功:
jmeter -v
三、创建并发测试计划
1. 启动JMeter GUI
在终端输入jmeter
启动图形界面(首次运行需等待加载)。
2. 添加线程组
右键点击“测试计划”→“添加”→“Threads (Users)”→“线程组”,配置以下核心参数:
- 线程数:模拟的并发用户数(如100、500,根据需求调整);
- Ramp-Up Period(in seconds):所有线程启动的时间间隔(如10秒,表示100个线程在10秒内逐步启动,避免瞬间高负载);
- 循环次数:每个线程执行的请求次数(如“永远”或指定次数,如10次)。
3. 添加HTTP请求
在线程组下右键→“添加”→“Sampler”→“HTTP请求”,配置目标接口信息:
- 服务器名称或IP:被测系统的域名或IP(如
jsonplaceholder.typicode.com
); - 端口号:接口端口(默认80可省略);
- 方法:GET/POST等(根据接口类型选择);
- 路径:接口路径(如
/posts
)。
4. 添加监听器(结果收集)
右键点击线程组→“添加”→“Listener”,选择以下监听器(用于查看和分析结果):
- 查看结果树:查看每个请求的详细响应(调试用,正式测试建议禁用以减少资源消耗);
- 聚合报告:查看整体性能指标(平均响应时间、吞吐量、错误率等);
- Summary Report:汇总统计结果。
四、执行并发测试
1. 非GUI模式运行(推荐)
图形界面会消耗大量资源,正式测试建议使用命令行模式。执行以下命令:
jmeter -n -t /path/to/your/test_plan.jmx -l /path/to/results.jtl
参数说明:
-n
:非GUI模式;-t
:测试计划文件路径(.jmx格式);-l
:结果文件路径(.jtl格式,记录所有请求的原始数据)。
2. 调整JVM内存(避免内存溢出)
若并发数较大(如超过500),需修改JMeter的内存配置。编辑/opt/jmeter/bin/jmeter
文件,找到HEAP
参数并调整(如分配2GB内存):
HEAP="-Xms1g -Xmx2g -XX:MaxMetaspaceSize=512m"
修改后需重启JMeter使配置生效。
五、监控与分析
1. 监控系统资源
测试过程中,使用CentOS自带工具监控服务器资源使用情况:
- top:查看CPU、内存占用;
- vmstat 1:查看系统级资源使用(每秒刷新一次);
- netstat -antp:查看网络连接状态(如端口占用、TCP连接数)。
2. 分析测试结果
测试完成后,打开生成的.jtl
文件(如用Excel或JMeter自带的监听器),重点关注以下指标:
- 平均响应时间:接口的平均响应时长(单位:毫秒);
- 吞吐量(Throughput):每秒处理的请求数(单位:requests/second);
- 错误率:失败请求占总请求的比例(需控制在合理范围,如< 1%)。
六、常见问题解决
1. 端口占用问题
若测试过程中出现“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 # 使配置生效
2. 内存不足问题
若出现“OutOfMemoryError”,需调整JMeter的JVM内存(参考步骤四中的内存调整方法),或使用分布式测试(见后续扩展内容)。
七、扩展:分布式并发测试(可选)
若单台CentOS服务器无法满足高并发需求,可配置分布式测试(多台机器协同执行):
1. 配置Master节点(控制机)
编辑/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(简化配置)
2. 配置Slave节点(执行机)
在每台Slave机器上编辑jmeter.properties
,设置远程主机(自身IP):
remote_hosts=192.168.1.101:1099
server.rmi.localport=1099
3. 启动分布式测试
- 在Slave节点上启动JMeter服务:
/opt/jmeter/bin/jmeter-server
- 在Master节点上执行测试:
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和端口(可多个,用逗号分隔)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: JMeter在CentOS上的并发测试如何设置
本文地址: https://pptw.com/jishu/718992.html