首页主机资讯CentOS下JMeter如何进行API测试

CentOS下JMeter如何进行API测试

时间2026-01-21 08:49:03发布访客分类主机资讯浏览664
导读:在 CentOS 上使用 JMeter 进行 API 测试 一 环境准备 安装 Java 8+(JMeter 5.x 推荐),并配置环境变量(示例为 OpenJDK 8): 安装:sudo yum install -y java-1.8...

在 CentOS 上使用 JMeter 进行 API 测试

一 环境准备

  • 安装 Java 8+(JMeter 5.x 推荐),并配置环境变量(示例为 OpenJDK 8):
    • 安装:sudo yum install -y java-1.8.0-openjdk-devel
    • 配置:/etc/profile 中添加
      • export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
      • export PATH=$PATH:$JAVA_HOME/bin
    • 验证:java -versionjavac -version
  • 安装 JMeter(建议二进制包方式,便于多版本管理):
    • 下载并解压:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz & & tar -xzf apache-jmeter-5.4.3.tgz -C /opt/
    • 软链或加入 PATH:ln -s /opt/apache-jmeter-5.4.3 /usr/local/jmeterexport PATH=$PATH:/opt/apache-jmeter-5.4.3/bin
    • 验证:jmeter -v
  • 如需图形界面,可本机安装 GUI 后用 X11 转发;在服务器上建议直接使用非 GUI 模式执行测试。

二 编写测试计划

  • 规划用例与数据:从 API 文档梳理接口清单、请求方式、入参/出参、鉴权方式;设计覆盖 必填项、边界值、异常值、错误码 等的用例,测试数据放入 CSV 以便参数化。
  • 核心元件与顺序(自顶向下):
    • 线程组:并发用户数、Ramp-Up、循环次数
    • HTTP 请求默认值:统一配置协议、服务器/IP、端口、编码
    • HTTP Header Manager:如 Content-Type: application/jsonAuthorization: Bearer < token>
    • CSV Data Set Config:读取 CSV,变量化如 ${ uid} 、${ token}
    • HTTP 请求:GET/POST/PUT/DELETE,Body(JSON/Form)、参数、文件上传
    • 前置处理器:如 JSON Extractor/正则提取器,从上个响应提取 tokenuserId 等供后续使用
    • 断言响应断言(状态码、包含文本、JSON Path)、持续时间断言
    • 后置处理器/监听器:JSON Extractor、BeanShell PostProcessor、查看结果树(仅调试)、聚合报告、Summary Report
  • 调试与稳定性建议:
    • 先用小并发验证脚本,再逐步加压
    • 统一 Header、合理超时、禁用无关监听器以减少内存占用
    • 使用 HTTP Cookie 管理器处理会话;对需要登录的接口,先登录并提取 token 再串联请求。

三 在 CentOS 上执行与报告

  • 非 GUI 执行与 HTML 报告(推荐):
    • 命令:jmeter -n -t /path/test.jmx -l /path/result.jtl -e -o /path/html-report
    • 说明:
      • -n 非 GUI;-t 指定脚本;-l 结果文件(JTL/CSV);-e -o 结束后生成 HTML 报告(目录需为空)
      • 若提示找不到命令,使用绝对路径:/opt/apache-jmeter-5.4.3/bin/jmeter ...
  • 常用参数与技巧:
    • 日志与控制台输出:-j /path/run.log
    • 分布式/远程执行:-R host1:1099,host2:1099;需在各节点启动 jmeter-server 并开放 1099 端口
    • 结果格式:如需在第三方工具中解析,可在 jmeter.properties 设置 jmeter.save.saveservice.output_format=xml
  • 报告查看与对比:
    • HTML 报告位于 -o 指定目录,包含 APDEX、响应时间分布、吞吐量、错误率 等关键指标
    • 历史对比建议保留每次的 JTL/HTML,或使用 Jenkins Performance Plugin 归档与对比趋势。

四 常见问题与排错

  • 接口访问不通或端口未放行:
    • 检查目标服务是否监听正确端口(如 8080/80/443),以及 firewalldfirewall-cmd --list-ports;放行示例:firewall-cmd --permanent --add-port=8080/tcp & & firewall-cmd --reload
    • 先用 curl http://IP:PORT/health 验证连通性,再执行 JMeter
  • 中文乱码与编码:
    • jmeter.properties 设置 sampleresult.default.encoding=UTF-8,并在 HTTP Header 明确 Content-Type: application/json; charset=UTF-8
  • 认证与关联失败:
    • 登录后使用 JSON Extractor/正则 提取 access_token,存入变量并在后续请求的 Header 中使用 ${ token}
  • 内存不足或 GC 频繁:
    • 编辑 bin/jmeter(或 jmeter 脚本)中的 HEAP 参数,例如:HEAP="-Xms1g -Xmx2g"(根据机器内存调整)
  • 报告目录非空或文件已存在:
    • 执行前确保 -o 目录为空;-l 指定的 JTL 文件不存在,否则会报错(可先备份或删除旧文件)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS下JMeter如何进行API测试
本文地址: https://pptw.com/jishu/788359.html
如何在CentOS上使用JMeter进行安全测试 CentOS下JMeter插件如何安装与管理

游客 回复需填写必要信息