温馨提示×

centos jmeter怎样压测接口

小樊
44
2026-10-12 05:02:20
栏目: 智能运维

下面以 CentOS 服务器 + JMeter(非 GUI 模式) 为例,说明如何对接口进行压测。


一、环境准备

1. 安装 JDK

JMeter 依赖 Java:

java -version

如果没有安装:

yum install -y java-1.8.0-openjdk

2. 下载并安装 JMeter

cd /opt
wget https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.6.3.tgz
tar -zxvf apache-jmeter-5.6.3.tgz
mv apache-jmeter-5.6.3 jmeter

配置环境变量(可选):

echo 'export JMETER_HOME=/opt/jmeter' >> ~/.bashrc
echo 'export PATH=$JMETER_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

验证:

jmeter -v

二、准备压测脚本(.jmx)

方式一(推荐):本地 GUI 编写

  1. 在 Windows / Mac 上打开 JMeter GUI
  2. 添加:
    • Thread Group(线程组)
    • HTTP Request(接口请求)
    • View Results Tree / Summary Report(调试用)
  3. 保存为 test.jmx
  4. 上传到 CentOS:
scp test.jmx user@centos:/opt/jmeter/

方式二:服务器直接写(不推荐,复杂)


三、CentOS 执行压测(非 GUI 模式)

基本命令

jmeter -n \
-t /opt/jmeter/test.jmx \
-l /opt/jmeter/result.jtl \
-e -o /opt/jmeter/report

参数说明:

  • -n:非 GUI 模式
  • -t:测试脚本
  • -l:结果文件
  • -e -o:生成 HTML 报告

四、示例:压测一个 HTTP 接口

示例接口

POST http://api.example.com/login
Content-Type: application/json
{
  "username": "test",
  "password": "123456"
}

线程组配置建议

  • Threads (users): 100
  • Ramp-up period: 10
  • Loop count: 100

含义:
100 个用户,10 秒内启动,每人请求 100 次


五、查看压测结果

1. 查看 JTL 文件

cat result.jtl | head

2. 查看 HTML 报告

将 report 目录下载到本地浏览器打开:

scp -r user@centos:/opt/jmeter/report ./

重点看:

  • Average / 90% Line / 99% Line
  • Throughput(吞吐量)
  • Error %

六、常见压测参数优化

1. 调整 JVM 内存

编辑:

vi /opt/jmeter/bin/jmeter

修改:

HEAP="-Xms1g -Xmx4g"

2. 关闭查看结果(提升性能)

GUI 中:

  • 删除 View Results Tree
  • 使用 Summary Report 即可

七、分布式压测(高并发)

如果单台不够:

# 控制机
jmeter -n -t test.jmx -R slave1,slave2

需要:

  • 多台 CentOS
  • 相同 JMeter 版本
  • 网络互通

八、注意事项

✅ CentOS 上 不要使用 GUI 模式压测
✅ 接口有鉴权要先处理 token
✅ 压测前确认服务器资源(CPU / 内存 / 带宽)
✅ 避免压到自己生产环境


如果你愿意,可以告诉我:

  • 接口类型(HTTP / HTTPS / WebSocket)
  • 是否需要登录态
  • 目标并发量

我可以帮你 直接写一个可用的 jmx 示例。

0 踩