Ubuntu JMeter如何进行压力测试
导读:Ubuntu 上使用 JMeter 进行压力测试 一 环境准备与安装 安装 Java 11(JMeter 5.x 建议使用 JDK 8/11):sudo apt update && sudo apt install -y...
Ubuntu 上使用 JMeter 进行压力测试
一 环境准备与安装
- 安装 Java 11(JMeter 5.x 建议使用 JDK 8/11):sudo apt update & & sudo apt install -y openjdk-11-jdk;验证:java -version。
- 下载并解压 Apache JMeter(不要使用 apt 安装旧版):
wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.6.3.tgz
tar -xzf apache-jmeter-5.6.3.tgz & & sudo mv apache-jmeter-5.6.3 /opt/jmeter - 配置环境变量(写入 ~/.bashrc 或 /etc/profile):
export JMETER_HOME=/opt/jmeter
export PATH=$JMETER_HOME/bin:$PATH
生效:source ~/.bashrc - 验证安装:jmeter -v(应输出版本号,如 5.6.3)。
二 编写测试计划
- 启动 GUI 设计器:jmeter(仅用于调试与脚本编写,正式压测请用非 GUI)。
- 新建测试计划 → 添加线程组(Thread Group):设置 Number of Threads(并发数)、Ramp-Up Period(秒)、Loop Count(循环次数)。
- 在线程组下添加 HTTP 请求(HTTP Request):配置协议、服务器名称/IP、端口、路径、请求方法、参数或 Body Data(JSON 等)。
- 添加 HTTP Header Manager(如 Content-Type: application/json)。
- 添加 断言(Response Assertion / JSON Assertion)校验业务正确性(如状态码 200 或 JSON 字段)。
- 添加监听器:
- View Results Tree(仅调试,正式压测关闭,避免内存占用);
- Summary Report、Aggregate Report 用于统计。
- 保存为 .jmx 脚本,后续用命令行执行。
三 执行压测与结果查看
- 非 GUI 执行(推荐):
jmeter -n -t test_plan.jmx -l result.jtl -e -o report/
说明:-n 非 GUI;-t 脚本;-l 结果文件;-e 生成 HTML 报告;-o 报告输出目录(需为空)。 - 多次运行取平均(示例:并发从 100 到 1000,步长 100,每档 10 次):
for threadCount in $(seq 100 100 1000); do
for i in { 1…10} ; do
./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 - 结果分析:
- HTML 报告位于 report/,可查看 Throughput(吞吐量,/s)、Average(平均响应时间)、Error % 等;
- 若数据量大,可直接读取报告目录下的 statistics.json,取 Total 对象的 throughput 字段用于对比。
四 分布式压测与常见问题
- 何时使用分布式:单机并发过高导致 JMeter 卡死/内存溢出 时,使用分布式将负载分发到多台执行机。
- 架构与前提:
- 控制机(Client)分发脚本与汇总结果;执行机(Agents/Slaves)实际发压;
- 所有机器安装相同版本的 Java 与 JMeter;
- 网络互通,放通 RMI 1099 端口及高端口范围(如 4000–5000),或临时关闭防火墙;
- 控制机与执行机建议都设置:server.rmi.ssl.disable=true(禁用 SSL,避免连接问题)。
- 执行机配置:
- 编辑 $JMETER_HOME/bin/jmeter.properties:server.rmi.ssl.disable=true;必要时设置 java.rmi.server.hostname=执行机IP;
- 启动:./jmeter-server -Djava.rmi.server.hostname=执行机IP(后台:nohup … > jmeter-server.log 2> & 1 & )。
- 控制机配置与运行:
- 编辑 $JMETER_HOME/bin/jmeter.properties:remote_hosts=192.168.1.101:1099,192.168.1.102:1099;
- 分发脚本及依赖(如 CSV 数据文件、JAR)到所有执行机的相同路径;
- 命令行运行:./jmeter -n -t plan.jmx -r -l result.jtl(-r 远程启动所有执行机)。
- 常见问题排查:
- 无法连接执行机:检查 1099 端口连通性、hostname 解析、以及 server.rmi.ssl.disable 是否一致;
- 执行机日志出现 “Created remote object …” 即表示监听成功;
- 调整执行机堆内存(编辑 jmeter 脚本中的 HEAP=“-Xms2g -Xmx4g”)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu JMeter如何进行压力测试
本文地址: https://pptw.com/jishu/773497.html
