JMeter在Ubuntu上如何进行压力测试
导读:在 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):系统每秒处理请求数,是否达到目标。
- 响应时间:关注 Average 与 90% Line,判断是否满足 SLA。
- 错误率(Error %):错误率上升常意味着瓶颈或极限到来。
- 服务器监控:结合目标机的 CPU、内存、磁盘 IO、网络 IO 定位瓶颈(JMeter 仅反映“表现”,监控揭示“原因”)。
- 稳定性:同一脚本建议 多次运行取平均,并做 预热(先小并发跑一段时间再正式统计)。
- 资源与配置:正式压测时减少监听器数量;必要时调整 JMeter 堆内存(如 -Xms/-Xmx)以匹配并发规模。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: JMeter在Ubuntu上如何进行压力测试
本文地址: https://pptw.com/jishu/757907.html
