当前位置: 首页 > news >正文

【第三方软件测评机构:Apache JMeter分布式负载测试过程】

Apache JMeter 分布式负载测试,通常被称为“主从模式”,是一种通过多台压力机协同工作,由一台控制机统一调度,共同向目标系统施加负载的测试方法。目的是突破单机性能瓶颈,模拟出足够高的并发用户数,以真实地评估系统的性能与承载能力。

名词解释:

控制机 
运行 JMeter GUI,负责管理测试计划(.jmx 文件),并将其分发至所有压力机;协调测试启动、停止;接收并聚合来自各压力机的原始测试结果。无需极高性能,但需要稳定的网络连接以管理整个测试集群。

压力机 
无头地执行控制机下发的测试计划,根据指令向被测系统发起真实请求,并将原始性能数据实时回传至控制机。需要具备较高的网络I/O和CPU处理能力。操作系统、Java版本应尽量保持一致,且必须与控制机网络互通。一台压力机可模拟的线程数受其硬件资源(CPU、内存、网络带宽)限制。

被测系统 
待进行性能测试的应用程序、服务器或集群。压力机与SUT应处于同一网络区域,以减少网络延迟对测试结果的干扰。

分布式测试配置
第一步:环境准备与校验


网络连通性:确保控制机与所有压力机之间、所有压力机与被测系统之间的TCP/IP连接畅通。通常使用 ping 和 telnet <ip> <port> 命令验证。
防火墙设置:关闭压力机上的防火墙或开放相关端口。JMeter 分布式通信默认使用 1099 端口(RMI注册端口)和一个随机高位端口(用于实际数据传输),为避免问题,通常建议在防火墙中开放一个端口范围(如 1099-1110)。
Java与JMeter安装:在所有压力机和控制机上安装完全相同版本的 Java Development Kit (JDK) 和 Apache JMeter。将其解压至完全相同的绝对路径下可以避免许多潜在问题。

第二步:压力机配置


1.定位到 JMeter 的 bin 目录。
2.找到 jmeter.properties 文件。
3.编辑该文件,找到 remote_hosts 配置项。
4.将其值修改为控制机的IP地址和默认端口(例如:remote_hosts=192.168.1.101:1099)。注意:此步骤是在压力机上指定控制机的地址,而非列举所有压力机。
5.启动压力机上的 Agent 服务。在 bin 目录下执行脚本:
Windows: jmeter-server.bat
Linux/Unix: ./jmeter-server
6.启动成功后,命令行会显示:Started remote object ...

第三步:控制机配置


1.在控制机上编辑 jmeter.properties 文件。
2.找到 remote_hosts 配置项。
3.将其值修改为所有压力机的IP地址和端口,多个地址用逗号分隔(例如:remote_hosts=192.168.1.102:1099,192.168.1.103:1099,192.168.1.104:1099)。这是控制机识别整个集群的关键配置。

第四步:执行分布式测试


1.在控制机上打开 JMeter GUI,加载并完善测试计划(.jmx 文件)。
2.【强烈建议】 先在控制机上使用 localhost 进行单机测试,验证脚本逻辑正确无误(参数化、关联、断言等)。
3.脚本验证无误后,选择菜单栏中的 “运行” (Run) -> “远程启动” (Remote Start),然后选择要启动的单个压力机,或直接选择 “远程全部启动” (Remote Start All)。
4.控制机将自动把 .jmx 文件及依赖(如 CSV 数据文件)分发至各压力机。压力机接收到指令后开始执行测试,并将采样结果实时发送回控制机。
5.通过 JMeter 的监听器(如聚合报告)实时查看汇总的测试结果。

第五步:测试终止与结果收集


测试完成后,通过 “运行” -> “远程停止” (Remote Stop) 或 “远程全部停止” (Remote Stop All) 来终止测试。
控制机收集到的结果数据是各压力机数据的聚合。建议将结果保存为 CSV 格式(在“聚合报告”等监听器中配置),以便后续进行更详细的分析。


文章转载自:

http://B0fQPI3O.pwLxy.cn
http://DYZt60JE.pwLxy.cn
http://udTd2mih.pwLxy.cn
http://vocvZr0K.pwLxy.cn
http://8w2CgOIb.pwLxy.cn
http://zX4FpgDD.pwLxy.cn
http://IU8upnFh.pwLxy.cn
http://3e4vSZUb.pwLxy.cn
http://cqKKOw6M.pwLxy.cn
http://eShB3oGt.pwLxy.cn
http://G3F4XfPH.pwLxy.cn
http://XU3JJ3Iy.pwLxy.cn
http://Quisahr9.pwLxy.cn
http://pyc3z6pN.pwLxy.cn
http://u5pFHIwz.pwLxy.cn
http://hyD5oEtT.pwLxy.cn
http://DDaPfxNh.pwLxy.cn
http://n4Ygdavp.pwLxy.cn
http://QjpWgY4u.pwLxy.cn
http://hKeSWHCm.pwLxy.cn
http://BYpQRbQP.pwLxy.cn
http://33NAJSgI.pwLxy.cn
http://JgAZIL0G.pwLxy.cn
http://3oQ3OVNs.pwLxy.cn
http://qvyAtcQr.pwLxy.cn
http://7g2qeE5x.pwLxy.cn
http://VBAaQEya.pwLxy.cn
http://kQR0mNvm.pwLxy.cn
http://Xti9xfL2.pwLxy.cn
http://jcBLU2uH.pwLxy.cn
http://www.dtcms.com/a/385729.html

相关文章:

  • 【案例教程】R语言数据统计分析与ggplot2高级绘图实践应用
  • 大数据时代时序数据库选型指南:为何 Apache IoTDB 成优选(含实操步骤)
  • qt QCandlestickLegendMarker详解
  • Apache IoTDB(6):深入解析数据库管理操作——增删改查与异构数据库实战指南
  • 华为任旭东:开源协作,激发创新,共创智能世界 | GOSIM HANGZHOU 2025
  • 领码方案|权限即数据:企业系统中的字段级访问控制架构实战(Ver=1.1)
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘lxml’ 问题
  • Linux -- 应用层协议Http
  • MongoDB 与 MySQL:异同详解与场景选择指南
  • 金融数学专业核心课程有哪些?需要学编程吗?
  • 链接 HTTPS 出问题怎么办?(HTTPS 链接 异常 证书错误 iOS 链接 https 抓包 443 端口 调试 全攻略)
  • Linux系统学习之进阶命令汇总
  • [特殊字符] Get Jobs【工作无忧】
  • 基于springboot的计算机在线考试管理系统
  • 深入浅出CRC校验:从数学原理到单周期硬件实现 (4)硬件实现代码
  • 【面试场景题】谈谈你对Seata的理解
  • C++基础:clang的分步编译-了解build细节
  • OS-内存管理 真题复盘总结
  • 一阶低通滤波在运动控制中的应用
  • Redis核心数据类型解析
  • 在 Ubuntu 22.04 系统中,如何安装最新版 MySQL和Navicat Pro 17
  • 立创·庐山派K230CanMV开发板的进阶学习——颜色识别
  • 大模型学习:Transformer模型构建
  • C++ STL之deque的使用和模拟实现
  • 【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
  • SpringBoot中的循环依赖以及解决办法
  • np.linalg 函数一览
  • 网络:UDP协议
  • 【开题答辩全过程】以 JAVA汽车年审管理系统为例,包含答辩的问题和答案
  • 【Linux网络编程】Socket-UDP