温馨提示×

Ubuntu JMeter使用技巧有哪些

小樊
45
2025-12-16 16:01:35
栏目: 智能运维

Ubuntu 下 JMeter 使用技巧

一 安装与环境准备

  • 使用 OpenJDK 8/11(或系统默认 JDK),安装后执行 java -version 验证;JMeter 5.x 建议使用 Java 8/11
  • 下载 Apache JMeter 二进制包,解压至如 /opt/apache-jmeter-5.4.3;设置环境变量:
    • export JMETER_HOME=/opt/apache-jmeter-5.4.3
    • export PATH=$JMETER_HOME/bin:$PATH
  • 验证安装:jmeter -v;GUI 模式运行 ./bin/jmeter,无头环境优先用命令行。
  • 目录要点:bin/(含 jmeter.sh、jmeter.properties、jmeter-server)、lib/ext/(放插件 JAR)。

二 命令行运行与报告生成

  • 非 GUI 执行(推荐):
    • 基本:jmeter -n -t /path/test.jmx -l /path/result.jtl
    • 生成 HTML 报告:jmeter -n -t /path/test.jmx -l /path/result.jtl -e -o /path/report
  • 常用开关:-j 指定日志;非 GUI 模式显著降低资源占用。
  • 在无头服务器上,建议仅生成 CSV/JTLHTML 报告,不在测试过程中打开“查看结果树”。

三 测试计划编写与常用元件

  • 参数化:使用 CSV Data Set Config 读取外部数据,驱动多账号/多场景;注意 绝对路径一致(分布式时从机也要放置同路径文件)。
  • 断言与校验:添加 响应断言 配合 断言结果 监听器,自动判定业务成功/失败。
  • 定时器与集合点:使用 同步定时器(Synchronizing Timer) 实现瞬时并发(Ramp-Up 后瞬间释放线程)。
  • 逻辑控制器:在控制器中使用 __jexl3 表达式时,字符串常量需加引号,例如:${__jexl3('${var}'=='value',)}
  • 结果监听:压测时避免 View Results Tree 等高开销监听器,优先 Aggregate Report / Summary Report;如需排查再临时启用。
  • 代理录制:使用 HTTP 代理服务器 录制浏览器/移动端流量;录制前安装 CA 证书到浏览器/手机,并设置代理;可用正则过滤 css/png 等静态资源。

四 性能优化与稳定性

  • JMeter 自身调优(jmeter.properties 与启动脚本):
    • 控制台摘要频率:summariser.interval=10(默认 30 秒,便于观察进度)。
    • 结果落盘字段:压测时关闭 jmeter.save.saveservice.response_data=true,减少 I/O;按需开启必要字段。
    • HTTP 客户端:在 HTTP Request 选择 HttpClient4;超时建议 Connect=5000 ms、Response=10000 ms;启用 Keep-Alive;必要时调小 httpclient4.retrycount=1 避免重试干扰指标。
    • JVM 与 GC:在 jmeter.sh 设置堆与 GC,例如:-Xms2g -Xmx4g -XX:+UseG1GC;压测机尽量将 -Xms 与 -Xmx 设为相同,减少 GC 震荡。
  • 系统层面(压测机与被压测服务所在系统):
    • 优先使用 内网 压测,避免公网抖动影响指标。
    • 适度提升文件句柄与内核网络参数(如 fs.file-maxnet.core.somaxconnnet.ipv4.ip_local_port_rangetcp_tw_reuse 等),并调大 JMeter 堆 与合理 GC 策略,避免 OutOfMemoryError 与端口耗尽。

五 分布式压测与监控

  • 基本步骤:
    • 主从机保持 Java/JMeter 版本一致;主机生成 rmi_keystore.jks 并分发到所有从机。
    • 配置 jmeter.propertiesserver.rmi.ssl.disable=true;主机设置 remote_hosts=从机IP:1099;从机启动 ./jmeter-server -Djava.rmi.server.hostname=从机IP
    • 主机执行:jmeter -n -t test.jmx -R 从机IP1,从机IP2 -l result.jtl -e -o report
    • 如 RMI 解析到 127.0.1.1 导致连接被拒,在主机 system.properties 增加 java.rmi.server.hostname=主机IP
  • 资源监控:在被压测机上部署 ServerAgent,JMeter 端用 PerfMon 插件采集 CPU/内存/网络/磁盘 指标,便于定位瓶颈。
  • 常见坑:CSV/依赖 JAR 需在 所有从机同路径 就位;避免分布式下使用 View Results Tree 导致 master 内存暴涨。

0