温馨提示×

CentOS JMeter如何进行API测试

小樊
37
2025-12-07 21:47:21
栏目: 智能运维

在 CentOS 上使用 JMeter 进行 API 测试

一 环境准备

  • 安装 Java 8(JMeter 5.x 要求 Java 8+):
    • 安装命令:sudo yum install -y java-1.8.0-openjdk-devel
    • 可选:配置环境变量(/etc/profile)并 source /etc/profile
  • 下载并安装 Apache JMeter(以 5.4.3 为例):
    • 下载:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz
    • 解压:tar -zxvf apache-jmeter-5.4.3.tgz -C /usr/local/
    • 配置环境变量:JMETER_HOME=/usr/local/apache-jmeter-5.4.3PATH=$JMETER_HOME/bin:$PATH,并 source /etc/profile
    • 验证:jmeter -v 应输出版本号
  • 说明:JMeter 为 Java 应用,在 CentOS 7/8 均可按上述方式安装运行。

二 编写测试计划

  • 线程组(Thread Group)
    • 设置并发用户数(Number of Threads)、Ramp-Up Period(秒)、循环次数(Loop Count)或持续时间(Duration)
    • 示例:并发 50、Ramp-Up 10 秒、循环 10000
  • HTTP 请求(HTTP Request)
    • 协议(http/https)、服务器名或 IP、端口、方法(GET/POST 等)、路径
    • 参数:Query 参数或 Body Data/JSON;必要时在“HTTP Header Manager”设置 Content-Type: application/json
  • 配置元件
    • 使用 HTTP 请求默认值 统一管理协议、域名/IP、端口等公共配置
  • 断言(Response Assertion)
    • 对响应码、响应体内容进行校验(包含/匹配/相等/子串等模式)
  • 监听器(Listener)
    • 用于调试与结果分析:查看结果树聚合报告
  • 说明:上述元件是 JMeter 进行 API 功能与性能测试 的通用组合。

三 本地或非 GUI 模式运行与报告

  • 非 GUI 执行(推荐在服务器上运行)
    • 命令:jmeter -n -t /path/to/test_plan.jmx -l /path/to/results.jtl -j /path/to/test.log
    • 参数说明:
      • -n 非 GUI 模式
      • -t 指定测试脚本(.jmx)
      • -l 结果文件(.jtl)
      • -j 日志文件
  • 生成 HTML 报告
    • 方式一(运行后直接生成):jmeter -n -t test.jmx -l test.jtl -e -o /path/to/report
    • 方式二(基于已有 .jtl):jmeter -g /path/to/results.jtl -o /path/to/report
    • 报告目录中的 index.html 可用浏览器打开查看
  • 说明:非 GUI 模式资源占用更低,适合在 CentOS 服务器执行与持续化运行。

四 在 Jenkins 中自动化执行与展示

  • 安装与准备
    • CentOS 安装 Jenkins,并安装 Performance Plugin(用于展示 JMeter 报告)
  • 任务配置
    • 在构建步骤执行 JMeter 命令(非 GUI):
      • jmeter -n -t /usr/local/jmeter/script/test.jmx -l test.jtl -j /usr/local/jmeter/log/test.log
    • 构建后操作选择 Publish Performance Test Result Report,指定 test.jtl 生成趋势与报表
  • 说明:上述流程可实现 代码提交触发 → 自动执行 JMeter → 报告展示 的持续集成测试闭环。

五 常见问题与排查要点

  • Java 与 JMeter 版本匹配:确保 Java 8+ 与所用 JMeter 版本兼容;jmeter -v 可快速验证
  • 报告生成失败或无数据
    • 运行命令需包含 -l results.jtl;生成报告用 -e -o report-g results.jtl -o report
    • 若从 GUI 迁移到非 GUI,建议在 jmeter.properties 中设置 jmeter.save.saveservice.output_format=xml 以获得更完整的指标
  • 接口访问与网络
    • 确认被测 API 在 CentOS 服务器可达(必要时放通 防火墙/安全组 端口)
    • 正确设置 协议、域名/IP、端口、路径、请求头(如 Content-Type)参数/Body
  • 断言与结果分析
    • 使用 响应断言 验证状态码/响应体;通过 聚合报告 关注 响应时间、错误率、吞吐量 等关键指标。

0