首页主机资讯如何用Ubuntu JMeter测试Web应用

如何用Ubuntu JMeter测试Web应用

时间2025-11-21 14:13:04发布访客分类主机资讯浏览1064
导读:在 Ubuntu 上使用 JMeter 测试 Web 应用的实操指南 一 环境准备与安装 安装 Java(JMeter 为 Java 应用,建议使用 JDK 8 或 11): Ubuntu 20.04/22.04 可直接安装 OpenJ...

在 Ubuntu 上使用 JMeter 测试 Web 应用的实操指南

一 环境准备与安装

  • 安装 Java(JMeter 为 Java 应用,建议使用 JDK 8 或 11):
    • Ubuntu 20.04/22.04 可直接安装 OpenJDK:
      • sudo apt update & & sudo apt install -y openjdk-11-jdk
      • java -version
  • 下载并解压 Apache JMeter(二进制包,无需编译):
    • wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.3.zip
    • unzip apache-jmeter-5.6.3.zip & & cd apache-jmeter-5.6.3
  • 可选:配置环境变量(便于在任意目录执行 jmeter 命令)
    • echo ‘export JMETER_HOME=/home/ubuntu/apache-jmeter-5.6.3’ > > ~/.bashrc
    • echo ‘export PATH=$JMETER_HOME/bin:$PATH’ > > ~/.bashrc
    • source ~/.bashrc
    • jmeter -v(应输出版本号)
  • 说明:JMeter 支持 GUI 与 CLI 两种模式,压测建议在服务器环境使用 CLI 模式执行。

二 快速创建 HTTP 测试计划

  • 启动 GUI 并新建计划:在 JMeter 目录执行 ./bin/jmeter.sh,创建“Test Plan”。
  • 添加线程组:右键“Test Plan” → Add → Threads (Users) → Thread Group
    • 关键参数:Number of Threads(并发用户数)Ramp-Up Period(秒,全部线程启动用时)Loop Count(循环次数)
  • 配置 HTTP 请求默认值:右键线程组 → Add → Config Element → HTTP Request Defaults
    • 设置协议(http/https)、服务器名称或 IP、端口(如 80/443),后续 HTTP 请求可继承,便于统一修改。
  • 添加 HTTP 请求:右键线程组 → Add → Sampler → HTTP Request
    • 配置路径、方法(GET/POST)、参数、请求体(Body Data)、文件上传等。
  • 添加请求头:右键 HTTP 请求 → Add → Config Element → HTTP Header Manager
    • 例如添加 Content-Type: application/json
  • 添加断言:右键 HTTP 请求 → Add → Assertions → 常用“Response Assertion”或“JSON Assertion”
    • 例如断言 HTTP 200 或 JSON 路径 $.code 等于预期值。
  • 添加监听器用于查看结果:
    • 查看单条请求详情:View Results Tree(仅调试用,压测时关闭以减少内存占用)
    • 聚合统计:Summary Report / Aggregate Report
  • 保存为 .jmx 脚本,后续用 CLI 执行。

三 在无头环境执行与生成报告

  • 基本 CLI 执行(推荐在服务器上运行):
    • jmeter -n -t your_plan.jmx -l result.jtl
    • 参数说明:-n 非 GUI-t 脚本文件-l 结果日志(JTL/CSV)
  • 生成 HTML 报告(压测结束后):
    • jmeter -n -t your_plan.jmx -l result.jtl -e -o ./report
    • 报告包含 吞吐(Throughput)响应时间(Avg/Median/P95/P99)错误率 等关键指标,报告目录为 ./report
  • 批量回归与参数化示例(线程数可变、多次执行取均值):
    • for threadCount in $(seq 100 100 1000); do for i in { 1…10} ; do ./bin/jmeter.sh -n -t test.jmx -J threadNum=$threadCount -l testcsv/test-${ threadCount} -${ i} .csv -e -o testReport/test-${ threadCount} -${ i} / sleep 1 done done
    • 在 JMeter 中将线程数用属性引用:${ __P(threadNum)} ,便于命令行传参。
  • 结果分析小技巧:
    • HTML 报告中的 statistics.json → Total → throughput 可直接读取吞吐(请求/秒)。
    • 大量日志建议仅保留 CSV/JTL,GUI 仅用于结果查看。

四 进阶场景与最佳实践

  • 分布式压测(Controller/Worker 架构)
    • 适用场景:单机并发能力不足、需要更大压力时。
    • 架构要点:一个 Controller 控制多个 Worker;Worker 执行真实请求,Controller 不跑请求。
    • 步骤概览:各节点安装相同版本 JMeter 与 Java → 配置 Worker 的 RMI 端口 与通信 → Controller 的 jmx 下发执行 → 聚合查看报告。
  • WebSocket 测试
    • JMeter 原生不支持 WebSocket,需安装插件(如 JMeter WebSocket Samplers)。
    • 安装方法:将插件 JAR 放入 JMETER_HOME/lib/ext,重启 JMeter;GUI 中添加 “WebSocket request-response Sampler” 配置 ws/wss 地址与参数。
  • 测试设计要点
    • 先做 Smoke 验证脚本正确性,再做 Load/Stress;必要时做 Soak/Endurance(耐久)测试。
    • 合理设置 Ramp-UpThink Time,贴近真实用户行为;避免瞬时冲击导致失真。
    • 监听器选择:压测时关闭 View Results Tree,使用 Summary/Aggregate Report 或后端监听器输出到文件/数据库,减少内存与 I/O 压力。

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


若转载请注明出处: 如何用Ubuntu JMeter测试Web应用
本文地址: https://pptw.com/jishu/753283.html
debian缓存大小影响 JMeter在Ubuntu上如何进行性能测试

游客 回复需填写必要信息