首页主机资讯如何在Ubuntu上使用JMeter进行压力测试

如何在Ubuntu上使用JMeter进行压力测试

时间2025-12-22 23:20:03发布访客分类主机资讯浏览834
导读:在 Ubuntu 上使用 JMeter 进行压力测试 一 环境准备与安装 安装 Java 11(Ubuntu 推荐 LTS 版本):sudo apt update && sudo apt install -y openjd...

在 Ubuntu 上使用 JMeter 进行压力测试

一 环境准备与安装

  • 安装 Java 11(Ubuntu 推荐 LTS 版本):sudo apt update & & sudo apt install -y openjdk-11-jdk;验证:java -version。JMeter 5.x 需 Java 8+
  • 下载并解压 Apache JMeter(建议最新稳定版,如 5.6.x):
    wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.6.2.tgz
    tar -xzf apache-jmeter-5.6.2.tgz & & cd apache-jmeter-5.6.2
  • 可选:配置环境变量(便于全局使用 jmeter 命令)
    echo ‘export JMETER_HOME=/opt/jmeter’ | sudo tee -a /etc/profile
    echo ‘export PATH=$JMETER_HOME/bin:$PATH’ | sudo tee -a /etc/profile
    source /etc/profile
    验证:jmeter -v。

二 快速开始一个 HTTP 压测

  • 在 GUI 中创建测试计划(仅用于调试与录制,正式压测请用命令行):
    1. 添加线程组:设置 Number of Threads(并发数)Ramp-Up Period(启动时间)Loop Count(循环次数)
    2. 添加 HTTP 请求默认值(协议、域名、端口)。
    3. 添加 HTTP 请求(路径、方法、参数或 Body)。
    4. 添加 HTTP Header Manager(如 Content-Type: application/json)。
    5. 添加 断言(如响应码 200 或 JSON Assertion)。
    6. 添加监听器:View Results Tree(调试用)、Summary Report/Aggregate Report(统计用)。
  • 保存为 test.jmx,上传至 Ubuntu。
  • 非 GUI 执行并生成报告(推荐):
    jmeter -n -t test.jmx -l result.jtl -e -o report/
    说明:-n 非 GUI;-t 指定脚本;-l 保存原始结果;-e -o 生成 HTML 报告。
  • 仅保存结果(后续再生成报告):
    jmeter -n -t test.jmx -l result.jtl

三 命令行批量与参数化压测

  • 批量运行取平均(示例:循环 10 次):
    for i in { 1…10} ; do
    jmeter -n -t test.jmx -l result-$i.jtl -e -o report-$i/;
    done
  • 参数化线程数(避免频繁改 JMX):在 JMeter 中将线程数用变量如 ${ __P(threadNum)} 引用,运行时传入:
    for t in 100 200 500 1000; do
    jmeter -n -t test.jmx -J threadNum=$t -l result-$t.jtl -e -o report-$t/;
    done
  • 结果汇总:HTML 报告在各自 report-*/index.html;如需程序化分析,可解析 result-*.jtl 或在报告目录的 statistics.json 中读取吞吐等指标。

四 分布式压测搭建

  • 架构与原理:一台 控制机(调度与汇总)+ 多台 执行机/代理(实际发压),通过 RMI 通信。
  • 环境要求:所有机器 Java/JMeter 版本一致、网络互通;开放 RMI 端口 1099 及高端口范围(如 4000–5000),或临时关闭防火墙。
  • 执行机配置(示例 IP 192.168.1.101):
    1. 编辑 apache-jmeter-5.6.2/bin/jmeter.properties
      server.rmi.ssl.disable=true
      java.rmi.server.hostname=192.168.1.101
    2. 启动服务:
      nohup ./jmeter-server -Djava.rmi.server.hostname=192.168.1.101 > jmeter-server.log 2> & 1 &
  • 控制机配置:
    1. 编辑 jmeter.properties:remote_hosts=192.168.1.101:1099,192.168.1.102:1099
    2. 同步测试资源:将 .jmx 及依赖(如 CSV 数据、JAR 插件)复制到各执行机的 相同路径
    3. 运行:jmeter -n -t test.jmx -r -l result.jtl(远程启动所有执行机)。
  • 常见问题排查:
    • 无法连接:检查防火墙/安全组、确保 1099 可达、主机名解析正确。
    • SSL 问题:确认控制机与执行机均设置 server.rmi.ssl.disable=true
    • 资源不足:在执行机 bin/jmeter 中调大堆内存,例如:HEAP=“-Xms2g -Xmx4g”。

五 结果分析与注意事项

  • 关键指标:关注 吞吐量(Throughput)响应时间(Response Time)错误率(Error Rate) 的趋势与分布,结合 Aggregate Report/Summary Report 定位瓶颈(如数据库、网络、应用线程池)。
  • 被测系统监控:在压测同时采集服务器 CPU、IO、内存、网络(如 sysstat 的 sar/iostat/top),与 JMeter 结果关联分析。
  • 测试有效性:避免仅用 ab 等轻量工具对比,JMeter 会完整处理响应,更贴近真实客户端行为;必要时结合 CSV 数据集 做参数化与场景化压测。
  • 正式压测建议:
    • 先用 GUI 调通脚本,再用 非 GUI 执行;
    • 逐步提升并发(如 100 → 500 → 1000),每个阶梯稳定后再继续;
    • 每次运行使用 干净的报告目录,并保留原始 .jtl 以便复核。

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


若转载请注明出处: 如何在Ubuntu上使用JMeter进行压力测试
本文地址: https://pptw.com/jishu/777907.html
JMeter在Ubuntu上的内存管理如何设置 ubuntu js库有哪些推荐

游客 回复需填写必要信息