jmeter在ubuntu上如何调试
导读:JMeter 在 Ubuntu 上的调试指南 一 环境准备与快速验证 安装 Java(建议 JDK 8/11/17):sudo apt-get update && sudo apt-get install -y openj...
JMeter 在 Ubuntu 上的调试指南
一 环境准备与快速验证
- 安装 Java(建议 JDK 8/11/17):sudo apt-get update & & sudo apt-get install -y openjdk-11-jdk
- 验证:java -version
- 安装 JMeter(两种常用方式)
- 包管理器:sudo apt-get install -y jmeter(版本可能较旧)
- 官方压缩包:
- 下载:wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz
- 解压:tar -zxvf apache-jmeter-5.4.3.tgz -C /opt
- 环境变量:
- echo ‘export JMETER_HOME=/opt/apache-jmeter-5.4.3’ > > ~/.bashrc
- echo ‘export PATH=$JMETER_HOME/bin:$PATH’ > > ~/.bashrc
- source ~/.bashrc
- 快速自检:jmeter -v(应输出版本号)
二 调试方法与常用命令
- GUI 模式用于脚本编写与单步调试
- 本地有桌面:直接执行 jmeter 启动 GUI
- 无桌面(Ubuntu Server/X11 转发):
- 安装 X11 客户端:sudo apt-get install -y x11-apps
- 本机(macOS/Linux)启动 X 服务:open -a XQuartz(macOS)或启用 X11(Linux)
- SSH 转发:ssh -X user@ubuntu-server
- 在服务器上:jmeter
- 非 GUI 模式用于验证脚本与问题定位
- 基本命令:jmeter -n -t your.jmx -l result.jtl -j jmeter.log
- 生成 HTML 报告:jmeter -n -t your.jmx -l result.jtl -e -o report(report 目录必须为空或不存在)
- 仅从既有结果生成报告:jmeter -g result.jtl -e -o report
- 常用调参:
- 日志级别:jmeter -Ljmeter=DEBUG -n -t your.jmx -l result.jtl
- 覆盖属性:jmeter -Jhttp.timeout=5000 -n -t your.jmx -l result.jtl
- 指定日志配置:jmeter -i log4j2.xml -n -t your.jmx -l result.jtl
- 小技巧
- 在 GUI 中先用察看结果树、断言、正则表达式提取器等元件做单接口调试,再切换到非 GUI 验证稳定性。
三 日志与 JVM 调优
- 日志定位
- 运行日志:jmeter -j jmeter.log …(或在 GUI 中查看 Log Viewer)
- 调整日志级别:jmeter -Ljmeter=DEBUG -Lorg.apache.http=DEBUG …
- 自定义 log4j2:jmeter -i your-log4j2.xml …
- JVM 内存与元空间(避免 OOM 与频繁 GC)
- 方式一(临时生效):JVM_ARGS=“-Xms1G -Xmx4G -XX:MaxMetaspaceSize=512m” jmeter -n -t your.jmx -l result.jtl
- 方式二(修改启动脚本):编辑 $JMETER_HOME/bin/jmeter(非 jmeter.sh),在文件中找到 HEAP 变量,调整为所需值,如:HEAP=“-Xms1G -Xmx4G -XX:MaxMetaspaceSize=512m”
- 提示:GUI 仅用于调试,压测请用非 GUI 模式。
四 分布式调试要点
- 基本命令
- 启动远程:jmeter -s(在 slave 上)
- 远程执行:jmeter -n -t your.jmx -R 192.168.1.10,192.168.1.11 -l result.jtl -e -o report
- 常见卡点与排查
- 卡在 “Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445”:多与 RMI/网络绑定有关
- 在 jmeter.properties 中设置:jmeterengine.nongui.maxport=0(禁用该端口的等待,规避部分环境阻塞)
- 检查 /etc/hosts 与 system.properties 中的主机名/IP 绑定,避免回环地址(如 127.0.1.1)导致 RMI 连接被拒
- 必要时查看 jmeter-server.log 与 slave 端日志,确认 RMI 连接目标是否正确。
五 插件与依赖问题排查
- 插件缺失或版本冲突
- 将插件 .jar 放入 $JMETER_HOME/lib/ext/,必要时同步更新依赖
- 例如使用 WebSocket Sampler 时,需同时放置相关 Jetty/WebSocket 依赖,否则可能出现 NoClassDefFoundError(如缺少 org.eclipse.jetty.util.ssl.SslContextFactory)
- 快速验证依赖是否生效
- 在 GUI 中执行小样本,或在非 GUI 下仅跑少量线程,观察日志是否仍有类找不到或初始化异常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: jmeter在ubuntu上如何调试
本文地址: https://pptw.com/jishu/788976.html
