温馨提示×

jmeter在centos如何进行压力测试

小樊
45
2025-10-17 21:13:42
栏目: 智能运维

1. 准备工作:安装JDK

JMeter是基于Java的工具,需先安装JDK 8或更高版本。以CentOS为例,使用以下命令安装OpenJDK 8:

sudo yum install -y java-1.8.0-openjdk-devel

安装完成后,验证Java版本:

java -version

需显示Java版本信息(如openjdk version "1.8.0_392"),确保安装成功。

2. 下载并安装JMeter

2.1 下载JMeter

访问Apache JMeter官网(https://jmeter.apache.org/download_jmeter.cgi),下载Linux平台的TGZ压缩包(如apache-jmeter-5.6.3.tgz)。

2.2 解压与安装

将压缩包上传至CentOS服务器(如/opt目录),解压并重命名:

tar -zxvf apache-jmeter-5.6.3.tgz -C /opt/
sudo mv /opt/apache-jmeter-5.6.3 /opt/jmeter

2.3 配置环境变量

编辑/etc/profile文件,添加JMeter路径:

export JMETER_HOME=/opt/jmeter
export PATH=$JMETER_HOME/bin:$PATH

使配置生效:

source /etc/profile

2.4 验证安装

执行以下命令,若显示JMeter版本信息(如Apache JMeter 5.6.3),则安装成功:

jmeter -v

3. 编写测试脚本(GUI模式,可选)

若需图形化编写脚本,可在本地Windows电脑上打开JMeter GUI,步骤如下:

3.1 添加线程组

右键Test PlanAddThreads (Users)Thread Group,设置:

  • Number of Threads (users):并发用户数(如100);
  • Ramp-Up Period:线程启动间隔(如10秒,即10秒内启动100个线程);
  • Loop Count:循环次数(如Forever或固定次数,如10次)。

3.2 添加HTTP请求

右键线程组 → AddSamplerHTTP Request,配置:

  • Server Name or IP:目标服务器IP或域名(如192.168.1.100);
  • Port Number:端口号(如80443);
  • Path:请求路径(如/api/login);
  • Method:请求方法(如GETPOST)。

3.3 添加监听器(用于查看结果)

右键线程组 → AddListener,常用:

  • View Results Tree:查看每个请求的详细响应(调试用,正式压测不建议使用,会消耗大量内存);
  • Summary Report:汇总测试结果(显示平均响应时间、吞吐量、错误率等);
  • Aggregate Report:更详细的汇总(包含90%百分位响应时间等)。

3.4 保存脚本

点击FileSave As,将脚本保存为.jmx文件(如login_test.jmx),上传至CentOS服务器(如/opt/jmeter/scripts目录)。

4. 执行压力测试(非GUI模式,推荐)

非GUI模式可节省系统资源,适合正式压测。在CentOS服务器上,进入JMeter的bin目录,执行以下命令:

./jmeter -n -t /opt/jmeter/scripts/login_test.jmx -l /opt/jmeter/results/result.jtl -e -o /opt/jmeter/report

参数说明:

  • -n:非GUI模式;
  • -t:指定测试脚本路径(如/opt/jmeter/scripts/login_test.jmx);
  • -l:指定结果文件路径(如/opt/jmeter/results/result.jtl,用于存储测试数据);
  • -e:测试结束后生成HTML报告;
  • -o:指定报告输出目录(如/opt/jmeter/report,需为空目录)。

示例:

cd /opt/jmeter/bin
./jmeter -n -t /opt/jmeter/scripts/api_test.jmx -l /opt/jmeter/results/api_result.jtl -e -o /opt/jmeter/report/api_report

执行完成后,报告会自动生成在-o指定的目录,可通过浏览器访问file:///opt/jmeter/report/api_report/index.html查看。

5. 查看与分析测试结果

5.1 HTML报告

报告包含以下关键指标:

  • Summary:测试概要(请求数、平均值、中位数、90%百分位等);
  • Statistics:统计表格(显示不同百分位的响应时间);
  • Errors:错误信息(显示错误率和具体错误内容);
  • Graphs:图表(响应时间随时间变化、吞吐量等)。

5.2 JTL文件

若需进一步分析,可将result.jtl文件下载至本地,用JMeter GUI打开:

jmeter -g /opt/jmeter/results/result.jtl -o /opt/jmeter/local_report

通过View Results Tree查看详细请求,或Aggregate Report分析汇总数据。

6. 高级功能(可选)

6.1 分布式压测

若单台服务器无法满足压测需求,可配置多机分布式压测:

  • Slave节点:在每台Slave服务器上,编辑jmeter.properties文件,设置:
    server.rmi.ssl.disable=true
    
    启动Slave节点:
    ./jmeter-server -Djava.rmi.server.hostname=<Slave_IP>
    
  • Master节点:编辑jmeter.properties文件,设置:
    remote_hosts=<Slave1_IP>:1099,<Slave2_IP>:1099
    
    启动Master节点并执行压测:
    ./jmeter -n -t /opt/jmeter/scripts/login_test.jmx -r -l /opt/jmeter/results/distributed_result.jtl
    
    -r表示启动所有Slave节点参与测试)。

6.2 性能监控

使用PerfMon插件监控服务器资源(CPU、内存、磁盘等):

  • 下载jmeter-plugins-manager.jar,放入jmeter/lib/ext目录,重启JMeter;
  • 添加PerfMon Metrics Collector监听器,配置服务器IP和端口(默认4444),选择监控指标(如CPU、内存);
  • 启动服务器端的PerfMon Server Agent(需提前安装):
    wget https://github.com/undera/perfmon-agent/releases/download/0.7.0/perfmon-agent-0.7.0.jar
    java -jar perfmon-agent-0.7.0.jar
    
    通过监听器可实时查看服务器资源使用情况,定位性能瓶颈。。

0