CentOS下JMeter如何进行网络测试
导读:在 CentOS 上使用 JMeter 进行网络测试 一 环境准备 安装 Java 8(JMeter 5.x 要求 Java 8+):sudo yum install -y java-1.8.0-openjdk-devel;验证:java...
在 CentOS 上使用 JMeter 进行网络测试
一 环境准备
- 安装 Java 8(JMeter 5.x 要求 Java 8+):sudo yum install -y java-1.8.0-openjdk-devel;验证:java -version。
- 下载并解压 Apache JMeter(.tgz),建议放到 /usr/local,并配置环境变量:
export JMETER_HOME=/usr/local/apache-jmeter-5.5
export PATH=$JMETER_HOME/bin:$PATH
验证:jmeter -v。 - 建议在服务器本机或内网搭建一个轻量 HTTP 服务用于验证(如 Nginx/Apache),并放行防火墙端口(例如 80/8080),以便进行网络连通性与吞吐测试。
二 创建测试计划
- 线程组:设置并发用户数(Number of Threads)、启动时间(Ramp-Up Period)、循环次数或持续时间(Loop Count / Scheduler)。
- HTTP 请求:配置 Server Name or IP、Port、Protocol(http/https)、Method(GET/POST 等)、Path;GET 参数可放在“Parameters”,POST 可在“Body Data”或“Files Upload”。常用选项:KeepAlive、Redirect Automatically。
- HTTP Header Manager:添加必要请求头(如 Content-Type、User-Agent 等)。
- 监听器:调试用 查看结果树,性能分析用 聚合报告(含 Samples、Average、Median、90% Line、Min、Max、Error%、Throughput、KB/sec 等关键指标)。
三 非 GUI 运行与报告
- 执行压测(非 GUI,适合服务器环境):
jmeter -n -t /path/to/test_plan.jmx -l /path/to/results.jtl -e -o /path/to/report
参数说明:- -n 非 GUI 模式;-t 指定脚本;-l 保存结果(.jtl);-e 测试结束后生成报告;-o 输出 HTML 报告目录。
- 仅生成报告(已有 .jtl 结果时):
jmeter -g /path/to/results.jtl -o /path/to/report - 报告查看:打开 report/index.html 分析 吞吐量、响应时间分布、错误率 等。
四 网络专项测试要点
- 带宽与吞吐:用 HTTP 请求持续下载大文件或返回大数据体,观察 Throughput(KB/sec) 与 响应时间 随并发变化。
- 连接与长时稳定性:启用 KeepAlive,结合 Ramp-Up 与 Scheduler 做长时压测;必要时添加 HTTP Cookie Manager 维持会话。
- 延迟与抖动:关注 Average/Median/90% Line,并配合服务器/网络监控定位瓶颈。
- 结果校验:添加 响应断言(如检查 HTTP 状态码 200 或响应体中不含错误关键字),避免“200 但业务失败”的误判。
- 参数化与场景:使用 CSV Data Set Config 提供多用户/多参数数据,模拟更真实的网络访问分布。
五 性能与稳定性调优
- JVM 调优:编辑 jmeter 或 jmeter.sh,设置堆大小(如 -Xms2G -Xmx8G),避免超过物理内存的 2/3;可按需设置 MaxMetaspaceSize。
- 文件句柄与进程数:
- 临时:ulimit -n 102400
- 永久:/etc/security/limits.conf 增加
- soft nofile 65536
- hard nofile 65536
- soft nproc 65565
- hard nproc 65565
- TCP 参数(/etc/sysctl.conf):
net.ipv4.tcp_syncookies=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1(注意在某些内核版本上可能不推荐)
net.ipv4.tcp_fin_timeout=30
net.ipv4.ip_local_port_range=1024 65000
执行 sysctl -p 生效。 - JMeter HTTP 客户端:在 jmeter.properties 中设置 httpclient4.idletimeout=10000(毫秒),减少空闲连接占用。
- 服务端配合:如被测为 Nginx,可适当提升 worker_connections 与 keepalive_timeout,避免成为瓶颈。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下JMeter如何进行网络测试
本文地址: https://pptw.com/jishu/773031.html
