温馨提示×

centos中jmeter如何进行并发测试

小樊
44
2025-10-05 06:44:44
栏目: 智能运维

CentOS环境下使用JMeter进行并发测试的完整步骤

1. 前置准备:安装Java环境

JMeter是基于Java的工具,需先安装Java 8及以上版本。在CentOS终端执行以下命令:

# 安装OpenJDK 1.8
yum -y install java-1.8.0-openjdk-devel

# 验证安装(需显示版本号,如1.8.0_xxx)
java -version

2. 下载并安装JMeter

从Apache官网下载最新稳定版JMeter(如5.4.3),解压至指定目录并配置环境变量:

# 下载JMeter(以5.4.3为例)
wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz

# 解压到/opt目录
tar -zxvf apache-jmeter-5.4.3.tgz -C /opt/

# 配置环境变量(编辑~/.bashrc)
echo 'export PATH=$PATH:/opt/apache-jmeter-5.4.3/bin' >> ~/.bashrc
source ~/.bashrc  # 使配置生效

# 验证安装(显示JMeter版本)
jmeter -v

3. 创建并发测试脚本

通过JMeter GUI创建测试计划,核心配置线程组(并发用户数的核心载体):

  • 启动JMeter GUI:终端输入jmeter,打开图形界面。
  • 添加线程组:右键测试计划添加Threads (Users)线程组
  • 配置线程组参数(关键参数说明):
    • 线程数:模拟的并发用户数(如100表示100个虚拟用户同时发起请求);
    • Ramp-Up Period(秒):所有线程启动的时间间隔(如100线程设为10秒,则每秒启动10个线程,模拟用户逐步增长);
    • 循环次数:每个线程执行的请求次数(如设为“永远”+调度器可进行持续压测,设为具体数值则执行固定次数)。
  • 添加HTTP请求:右键线程组→添加SamplerHTTP请求,配置目标接口的URL请求方法(GET/POST)、参数等。
  • 添加监听器:右键线程组→添加Listener聚合报告(查看响应时间、吞吐量等汇总指标)、查看结果树(调试时查看单个请求详情,正式测试建议关闭以避免内存占用过高)。

4. 执行并发测试

方式一:图形界面模式(调试用)

点击JMeter工具栏的启动按钮(绿色三角形),执行测试。测试过程中可通过监听器实时查看结果,测试完成后点击停止按钮(红色方块)。

方式二:命令行模式(生产推荐)

图形界面会消耗系统资源,正式压测建议使用非GUI模式,命令格式如下:

# 基本命令(指定测试脚本路径和结果输出文件)
jmeter -n -t /opt/apache-jmeter-5.4.3/script/test_plan.jmx -l /opt/apache-jmeter-5.4.3/result/result.jtl

# 动态设置线程数(通过-J参数覆盖脚本中的线程数配置)
jmeter -n -t /opt/apache-jmeter-5.4.3/script/test_plan.jmx -l /opt/apache-jmeter-5.4.3/result/result.jtl -Jthreads=200 -Jrampup=30

参数说明

  • -n:非GUI模式运行;
  • -t:指定测试脚本(.jmx文件)路径;
  • -l:指定结果输出文件(.jtl格式,后续用于分析);
  • -Jthreads:动态设置线程数(需在脚本中用${__P(threads,100)}引用,默认100);
  • -Jrampup:动态设置Ramp-Up Period(单位:秒)。

5. 监控系统资源

并发测试时,需同步监控CentOS服务器的资源使用情况,定位性能瓶颈(如CPU、内存瓶颈):

# 实时查看CPU、内存、进程占用(按q退出)
top

# 查看内存使用详情(包括swap分区)
free -h

# 查看磁盘I/O(需安装sysstat包:yum -y install sysstat)
iostat -x 1

# 查看网络流量(需安装sysstat包)
sar -n DEV 1

6. 分析测试结果

测试完成后,通过以下方式分析结果:

  • 聚合报告:查看Average(平均响应时间)、90% Line(90%请求的响应时间)、Throughput(吞吐量,单位:requests/second)、Error %(错误率)等核心指标;
  • 结果树:检查是否有请求失败(如HTTP 500错误),分析失败原因;
  • 命令行结果:若使用-l参数输出.jtl文件,可通过JMeter的结果分析器文件打开→选择.jtl文件)查看详细数据,或使用命令行报告生成工具生成HTML报告:
    jmeter -g /opt/apache-jmeter-5.4.3/result/result.jtl -o /opt/apache-jmeter-5.4.3/report
    
    生成的HTML报告位于/opt/apache-jmeter-5.4.3/report目录,包含趋势图、指标汇总等可视化内容。

注意事项

  • 正式压测前,建议先用小并发数(如10个线程)调试脚本,确保接口请求正常;
  • 避免在测试过程中修改脚本或服务器配置,以免影响结果准确性;
  • 若需模拟大量并发(如1000+线程),建议使用分布式压测(配置JMeter主从节点),降低单台机器的资源消耗。

0