JMeter在Debian上如何进行压力测试
导读:在 Debian 上使用 JMeter 进行压力测试的完整步骤 一 环境准备 安装 Java(JMeter 5.x 建议使用 JDK 8 或 11): 更新索引并安装 OpenJDK:sudo apt update &&...
在 Debian 上使用 JMeter 进行压力测试的完整步骤
一 环境准备
- 安装 Java(JMeter 5.x 建议使用 JDK 8 或 11):
- 更新索引并安装 OpenJDK:sudo apt update & & sudo apt install openjdk-11-jdk
- 验证:java -version 应返回 11.x 或 1.8.x
- 下载并解压 Apache JMeter(无需安装,解压即用):
- wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.4.3.tgz
- tar -xzf apache-jmeter-5.4.3.tgz & & cd apache-jmeter-5.4.3
- 可选:将 JMeter 的 bin 目录加入 PATH,便于全局执行:export PATH=$PATH:/path/to/apache-jmeter-5.4.3/bin
- 启动 GUI(仅用于脚本录制与调试):./bin/jmeter.sh(服务器压测建议使用非 GUI 模式)
二 创建第一个 HTTP 压测脚本
- 新建测试计划 → 添加线程组(Thread Group)
- 线程数(Number of Threads):并发虚拟用户数
- Ramp-Up Period(秒):全部线程启动用时
- 循环次数(Loop Count):每个线程请求次数;勾选“永远”配合调度器使用
- 调度器(Scheduler):可设置持续时间、延迟启动等
- 在线程组下添加 HTTP 请求(HTTP Request)
- 配置协议、服务器名称/IP、端口、路径、请求方法、参数/Body、请求头等
- 性能场景建议:HTTP 实现选择 Java,勾选 KeepAlive 使用长连接,减少握手开销
- 添加监听器(Listener)
- 用于调试:察看结果树(View Results Tree)
- 用于统计:聚合报告(Summary Report)、图形结果等
- 运行与查看
- GUI 中点击“启动”执行;命令行见下一节
- 聚合报告关注:样本数、平均/中位数/90%/95%/99% 百分位、错误率、吞吐量(Requests/s)
三 命令行运行与结果分析
- 非 GUI 执行(推荐,适合服务器/CI):
- 基本:jmeter -n -t your_plan.jmx -l result.jtl
- 后台执行:nohup jmeter -n -t your_plan.jmx -l result.jtl &
- 说明:-n 非 GUI;-t 指定脚本;-l 指定结果文件(JTL/CSV)
- 结果查看
- 在 JMeter GUI 中打开聚合报告,点击“浏览”加载 result.jtl 即可查看统计图表
- 也可将 JTL 导入其他报表工具(如 InfluxDB + Grafana)做长期可视化
四 分布式压测与常见问题
- 分布式压测(Controller/Agent)
- 在所有 Agent 上:./bin/jmeter-server
- 若出现 java.io.FileNotFoundException: rmi_keystore.jks,编辑 jmeter.properties:server.rmi.ssl.disable=true 后重启
- 在 Controller 上:编辑 jmeter.properties 的 remote_hosts=agent1:1099,agent2:1099
- 执行:jmeter -n -t your_plan.jmx -R agent1,agent2 -l result.jtl
- 在所有 Agent 上:./bin/jmeter-server
- 常见问题与排查
- 版本不一致:Controller 与 Agent 的 JMeter 版本需一致,否则易报错
- 中文乱码:在 jmeter.properties 设置 sampleresult.default.encoding=UTF-8
- 脚本含中文导致加载失败:避免中文命名/注释,或统一编码保存
- 成功判定:仅靠“察看结果树”绿色图标不可靠,需结合响应码、响应体或数据库校验判断业务成功
五 监控与调优建议
- 被压测端监控
- 系统资源:top/htop、vmstat 1、iostat -x 1、sar(需安装 sysstat)
- 数据库:MySQL 可用 sysbench、mysqlslap 做基线对比;MongoDB 可用 mongostat、YCSB 辅助验证
- JMeter 侧优化
- 尽量使用 非 GUI 模式压测;GUI 仅用于脚本开发与调试
- 合理设置 线程数、Ramp-Up、循环/持续时间;逐步加压寻找拐点
- 使用 CSV Data Set Config 做参数化;HTTP 采样器启用 KeepAlive;必要时添加 定时器 控制请求节奏
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: JMeter在Debian上如何进行压力测试
本文地址: https://pptw.com/jishu/758226.html
