首页主机资讯JMeter在Debian上如何进行负载测试

JMeter在Debian上如何进行负载测试

时间2025-11-27 20:22:03发布访客分类主机资讯浏览657
导读:在 Debian 上使用 JMeter 进行负载测试的完整流程 一 环境准备 安装 Java 8/11/17(JMeter 5.x 建议使用 Java 8 或 11): 检查版本:java -version 安装 OpenJDK:sud...

在 Debian 上使用 JMeter 进行负载测试的完整流程

一 环境准备

  • 安装 Java 8/11/17(JMeter 5.x 建议使用 Java 8 或 11):
    • 检查版本:java -version
    • 安装 OpenJDK:sudo apt update & & sudo apt install -y openjdk-11-jdk
  • 下载并解压 Apache JMeter(以 5.4.1 为例,亦可选择最新稳定版):
    • wget https://downloads.apache.org//jmeter/binaries/apache-jmeter-5.4.1.tgz
    • tar -xzf apache-jmeter-5.4.1.tgz & & cd apache-jmeter-5.4.1
  • 可选:将 JMeter 的 bin 目录加入 PATH,便于直接执行 jmeter 命令。

二 创建测试计划

  • 使用 GUI 本地创建(仅用于设计脚本):
    • 启动 GUI:./bin/jmeter
    • 主要元件:
      • Thread Group:设置线程数(并发用户)、Ramp-Up 时间、循环次数或持续时间。
      • HTTP Request:配置协议、服务器名称/IP、端口、路径、方法、请求参数/Body、请求头。
      • HTTP Header Manager:如 Content-Type: application/json
      • CSV Data Set Config:参数化测试数据(如用户、手机号等)。
      • Listeners:用于本地调试的“查看结果树”,压测时建议使用低开销的“聚合报告/Summary Report”。
  • 保存为 JMX 脚本(例如 test_plan.jmx),后续在服务器以非 GUI 模式运行。

三 非 GUI 运行与报告生成

  • 基本命令(推荐在服务器上执行):
    • 运行并生成结果:jmeter -n -t test_plan.jmx -l result.jtl
    • 运行后生成 HTML 报告:jmeter -n -t test_plan.jmx -l result.jtl -e -o report/
    • 仅从既有结果生成报告:jmeter -g result.jtl -e -o report/
  • 常用参数说明:
    • -n 非 GUI 模式;-t 指定 JMX 脚本;-l 结果日志(CSV/XML);-e 运行结束后生成报告;-o 报告输出目录(必须为空)。

四 分布式压测与扩展

  • 架构与前提:
    • 1 台控制机(Controller)+ N 台代理机(Agent),各机器安装相同版本的 JavaJMeter
    • 网络互通,开放 1099 端口(RMI)。
  • 代理机启动:
    • ./bin/jmeter-server
    • 如遇 SSL 相关报错,可在 jmeter.properties 中设置:server.rmi.ssl.disable=true(取消注释并改为 true)。
  • 控制机配置与执行:
    • jmeter.properties 配置 remote_hosts=agent1:1099,agent2:1099
    • 启动远程测试:
      • 指定节点:jmeter -n -t test_plan.jmx -R agent1,agent2 -l remote_result.jtl -e -o remote_report/
      • 或启动全部:jmeter -n -t test_plan.jmx -r -l remote_result.jtl -e -o remote_report/
  • 常见问题与建议:
    • 控制机与代理机的 JMeter 版本保持一致,避免脚本不兼容。
    • 跨机器脚本编辑可能导致编码问题(如 JMX 含中文 报错),建议使用 UTF-8 保存脚本。

五 性能与稳定性优化

  • 运行与 JVM 优化:
    • 压测务必使用 非 GUI 模式,减少资源占用。
    • 调整堆内存与 GC(编辑 bin/jmeterjmeter.shHEAP 变量),例如:
      • HEAP="-Xms2g -Xmx4g -XX:+UseG1GC"(按机器内存与场景调整)。
  • JMeter 配置优化(jmeter.properties/user.properties):
    • 降低结果文件开销:关闭保存响应体 jmeter.save.saveservice.response_data=false;按需开启必要字段。
    • 控制台摘要频率:summariser.interval=10(更频繁输出进度)。
    • HTTP 客户端:
      • 连接存活时间:httpclient4.time_to_live=60000
      • 失败重试次数:httpclient4.retrycount=1(避免重试干扰指标)
    • 报告生成粒度:jmeter.reportgenerator.overall_granularity=60000
  • 监听器与采样器实践:
    • 压测时避免 View Results Tree 等高开销监听器,优先使用 Aggregate Report / Summary Report
    • HTTP 取样器建议:
      • 实现选择 HttpClient4;启用 Keep-Alive
      • 超时设置:连接超时 5000 ms,响应超时按业务设置(如 10000 ms)。
      • 需要模拟浏览器行为时再勾选 Retrieve All Embedded Resources(会增加采样数)。
  • 定时器与吞吐量控制:
    • 使用 Constant Throughput Timer 控制目标吞吐;高吞吐场景(> 1000 TPS)建议将模式设为 AllActiveThreads,并优先用“持续时间”而非“循环次数”控制测试时长,避免协调遗漏导致的吞吐偏差。

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


若转载请注明出处: JMeter在Debian上如何进行负载测试
本文地址: https://pptw.com/jishu/758244.html
Debian如何使用JMeter进行接口测试 JMeter在Debian上如何进行性能调优

游客 回复需填写必要信息