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

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

时间2025-11-27 14:45:03发布访客分类主机资讯浏览890
导读:在 Ubuntu 上使用 JMeter 进行压力测试 一 环境准备 安装 Java 11(推荐 OpenJDK 11):sudo apt update && sudo apt install -y openjdk-11-j...

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

一 环境准备

  • 安装 Java 11(推荐 OpenJDK 11):sudo apt update & & sudo apt install -y openjdk-11-jdk;验证:java -version。JMeter 5.x 需要 Java 8+
  • 下载并解压 Apache JMeter 5.6.3(或最新版):wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.tgz,tar -xzf apache-jmeter-5.6.3.tgz -C /opt,sudo mv /opt/apache-jmeter-5.6.3 /opt/jmeter。
  • 配置环境变量:echo ‘export PATH=/opt/jmeter/bin:$PATH’ > > ~/.bashrc & & source ~/.bashrc;验证:jmeter -v。
  • 重要提示:不要使用 apt 安装 JMeter(仓库版本通常过旧,如 2.13,加载 .jmx 可能报错),请手动安装官网压缩包。

二 编写测试计划

  • 在 GUI 中创建测试计划:添加线程组(Number of Threads、Ramp-Up Period、Loop Count),设置并发与加压节奏。
  • 添加取样器:HTTP Request(Protocol、Server/IP、Port、Path、Method、Parameters/Body Data)。
  • 配置请求头:HTTP Header Manager(如 Content-Type: application/json)。
  • 参数化:CSV Data Set Config(读取 CSV,变量名如 username、password,在请求中用 ${ 变量名} 引用)。
  • 关联动态数据:Regular Expression Extractor 或 JSON Extractor(提取 token 等,在后续请求头中使用 Authorization: Bearer ${ token} )。
  • 断言:Response Assertion 或 JSON Assertion(校验响应码、关键字段)。
  • 监听器:调试阶段可用 View Results Tree;正式压测务必禁用,改用 Summary Report / Aggregate Report 以降低内存开销。

三 非 GUI 执行与报告

  • 基本命令:jmeter -n -t test.jmx -l result.jtl(非 GUI、生成结果文件)。
  • 生成 HTML 报告:jmeter -n -t test.jmx -l result.jtl -e -o report/(-e 生成报表,-o 指定输出目录,需为空)。
  • 常用变体:
    • 覆盖线程数:jmeter -n -t test.jmx -J threadNum=200 -l result.csv(在 JMeter 中用 ${ __P(threadNum)} 读取)。
    • 批量场景(示例:并发 100→1000,步长 100,每档跑 10 次):
      for tc in $(seq 100 100 1000); do for i in { 1…10} ; do ./jmeter.sh -n -t test.jmx -J threadNum=$tc -l testcsv/test${ tc} -${ i} .csv -e -o testReport/test${ tc} -${ i} /; sleep 1; done; done
  • 结果查看:命令行汇总在控制台;HTML 报告在 report/ 目录;CSV/JTL 可用聚合报告或自定义脚本分析。

四 分布式压测

  • 适用场景:单机并发不足或需模拟更大规模流量。
  • 前提:所有节点 JMeter 版本一致(如 5.6.3)、网络互通、防火墙开放相关端口。
  • 架构:一台 控制节点(Client/Master),多台 工作节点(Server/Slave)
  • 步骤:
    • 工作节点:安装同版本 JMeter,启动 jmeter-server(Linux/Mac 执行 jmeter-server)。
    • 控制节点:在 jmeter.properties 中配置 remote_hosts=ip1,ip2;执行测试时选择远程启动或命令行指定 -R ip1,ip2。
    • 注意:目标系统需能承受来自多台压力机的并发请求,且网络链路稳定。

五 结果分析与注意事项

  • 关键指标:
    • 吞吐量(Throughput/QPS):系统每秒处理请求数,是否达到目标。
    • 响应时间:关注 Average90% Line,判断是否满足 SLA。
    • 错误率(Error %):错误率上升常意味着瓶颈或极限到来。
  • 服务器监控:结合目标机的 CPU、内存、磁盘 IO、网络 IO 定位瓶颈(JMeter 仅反映“表现”,监控揭示“原因”)。
  • 稳定性:同一脚本建议 多次运行取平均,并做 预热(先小并发跑一段时间再正式统计)。
  • 资源与配置:正式压测时减少监听器数量;必要时调整 JMeter 堆内存(如 -Xms/-Xmx)以匹配并发规模。

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


若转载请注明出处: JMeter在Ubuntu上如何进行压力测试
本文地址: https://pptw.com/jishu/757907.html
Ubuntu如何解决JMeter内存溢出问题 ubuntu中js如何使用WebSocket

游客 回复需填写必要信息