Jmeter分布式压测详解

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

一、什么是压力测试?

压力测试(Stress Test),也称为强度测试、负载测试,属于性能测试的范畴。
压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行被测软件系统,来测试被测系统的性能、可靠性、稳定性等。一定负载的情况下,长时间运行被测软件系统,称为稳定性测试;超大负荷地运行被测软件系统称为极限压力测试。

二、什么是分布式测试?

分布式测试是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享、分散操作、集中管理、协同工作、负载均衡、测试过程监控等目的的计算机网络测试。

三、为什么要使用分布式压力测试?

普通压力测试一般是采用单台机器对目标服务器产生的压力,因为受限于CPU、内存、网络、IO等因素的影响,通常只能模拟几十到几百用户的并发访问。分布式压测是利用多台机器同时向目标服务器产生压力,可以模拟几万到上亿级别用户的并发访问。

四、主流压力测试工具对比

(1)Webbench:开源,由Lionbridge公司开发,主要测试每秒钟请求数和每秒钟数据传输量,同时支持静态、动态、SSL。部署简单,静、动态均可测试。适用于小型网站压力测试(单例最多可模拟3万并发)。
(2)Apache bench: 开源, Apache自带的压力测试工具,主要用于测试网站每秒钟处理请求个数。多见用于静态压力测试,功能较弱,非专业压力测试工具。
(3)Tcpcopy: 开源 ,基于底层应用请求复制,可转发各种在线请求到测试服务器,具有分布式压力测试功能,所测试数据与实际生产数据较为接近。主要用于中大型压力测试,所有基于 tcp的packets均可测试。
(4)Loadrunner :付费/破解版本, 压力测试界的泰斗,可以创建虚拟用户,可以模拟用户真实访问流程从而录制成脚本,其测试结果也最为逼真。模拟最为逼真,并可进行独立的单元测试,但是部署配置较为复杂,需要专业人员才可以。
(5)JMeter: 开源免费, Jmeter 是一款使用Java开发的,开源免费的测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试).,而且用Jmeter 来测试 Restful API,非常好用。
(6)WeTest :付费, 腾讯出品的线上服务器压力工具, 最高可模拟亿级并发,可实时查看性能数据报表,提供专家级性能优化建议。我们通常要分析的性能数据,如TPS,在线用户数,事务数,网络带宽,吞吐量,CPU,内存,磁盘IO等,报告里都有。
(7)PTS:付费, 阿里云出品的PTS(Performance Testing Service)是面向所有技术相关背景人员的云化性能测试工具,有别于传统工具的繁复,PTS以互联网化的交互,面向分布式和云化的设计,更适合当前的主流技术架构。无论是自研还是适配开源的功能,PTS都可以轻松模拟大量用户访问业务的场景,任务随时发起,免去搭建和维护成本。更是紧密结合监控类产品提供一站式监控、定位等附加价值,高效检验和管理业务性能。

五、Jmeter分布式压测原理

(1)先了解几个专业术语
控制器节点(Controller Node),又叫Master:运行 JMeter GUI 的系统,它控制测试。
工作节点(Worker Nodes),又叫Slave:运行jmeter-server的系统,它从 GUI 接收命令并将请求发送到目标系统。
目标(Target):计划进行测试的网络服务器。

(2)原理:控制器节点启动时将压测脚本分发到各个工作节点上,然后通过远程启动各个工作节点,共同向目标服务器发送请求(产生压力)。测试结束以后,各个工作节点主动将压测数据回传给控制器节点,由控制器节点统一汇总数据,并输出测试报告。

注意两点:

(1)master和各个slave机器必须使用同一局域网,尽可能减少网络带宽的影响。

(2)使用非GUI模式,避免不必要的cpu、内存损耗。

六、Jmeter分布式压测前的准备工作

(1)确保master和各个slave上使用相同版本的JMeter 和 Java。混合版本将无法正常工作。

(2)master和各个slave的防火墙已关闭或打开了正确的端口,且端口未被占用。

(3)master和各个slave上安装的杀毒软件已关闭。

(4)master和各个slave在同一个子网内,尽量减少网络带宽的影响,减少时延问题。如果是多网卡环境需要保证启动的网卡都在同一个网段。

(5)确保 JMeter 可以访问服务器,可以使用ping命令查看。

(6)已经为 RMI 设置了 SSL或禁用了它。

(7)master和各个slave上安装Jmeter全部启动成功。

(8)如果压测脚本有依赖的测试数据,测试数据文件需要复制一份到Worker Nodes上,且文件路径必须Controller Node中一致。

(9)如果使用云服务器进行压测,一定要使用内网IP,不能使用公网IP,先使用ping命令检查网络是否通畅。

(10)压力测试瓶颈大都在带宽上面,需要保证slave的带宽要比Target的带宽高,不然压力上不去。

七、阿里云服务器上进行分布式压测

1、使用SpringBoot接口打包,并用jar包方式部署

(1)打包

(2)启动jar包

2、阿里云linux服务器下安装启动jdk8并配置环境变量

3、部署Java项目到阿里元服务器,守护进程讲解

守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不受用户登录注销的影响,它们一直在运行着。

4、阿里云liunx服务器上安装Jmeter

下载:wgethttps://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.1.tgz

解压:tar -zxvfapache-jmeter-5.1.tgz

拓展:

5、Jmeter非GUI界面参数讲解

FileZilla是一个免费开源的适合Windows、Mac和Linux的FTP客户端软件。FileZilla特点是:免费、跨平台、易用、下载速度非常快、功能齐全。

6、项目实战之阿里云linux服务器下非GUI界面执行Jmeter压测脚本

(1)Jmeter可视化界面开发压测脚本

(2)导出压测脚本linux_users_api.jmx保存在本地

(3)使用FileZilla工具将本地脚本上传到阿里云服务器上Jmeter安装路径的bin目录下

(4)执行压测脚本,查看日志:

7、Jmeter压测实战之jtl文件(压测结果文件)生成和查看

(1)使用FileZilla工具将阿里云服务器上的result.jtl文件下载到本地(直接拖拽到本地桌面)

(2)在本地打开Jmeter工具,Thread Group—>Add Listener—>Summary Report

(3)点击【Browse】,选择下载到本地桌面的result.jtl文件,打开。

8、Jmeter压测接口的性能优化

官网文档说明如下:

翻译下就是:

(1)使用非GUI模式:jmeter -n -t test.jmx -l test.jtl

(2)尽可能少低使用监听器,如果在监听器之前使用-l 标志,可以删除或禁用它们。

(3)在负载测试期间不要使用“查看结果树”或“聚合报告”监听器,仅在脚本编写阶段使用它们来调试脚本。

(4)不要使用大量类似的取样器,而是在循环中使用相同的取样器,并使用变量(CSV数据集)来改变样本。[此处包含控制器没有帮助,因为它将文件中的所有测试元素添加到测试计划中。

(5)不要使用功能模式。

(6)使用CSV输出而不是XML。

(7)只保存您需要的数据。

(8)使用尽可能少的断言。

(9)使用性能最好的脚本语言(请参阅JSR223部分)

(10)如果您的测试需要大量数据(特别是需要随机数据),请在可以使用CSV数据集读取的文件中创建测试数据。这避免了在运行时浪费资源。

9、Jmeter压测生成多维度图形化压测报告

(1)进度到bin目录下,执行上述指令,路径按自己实际情况来。

(2)将result目录打包成,result.tar.gz

(3)使用FileZilla工具下载本地解压

(4)找到index.html文件后,拖拽到浏览器中打开。

10、Jmeter图形化压测报告dashboard讲解

11、Jmeter图形化压测报告Charts讲解

12、阿里云Jmeter分布式压测常见问题处理

13、阿里云Jmeter分布式压实战

八、系统架构学习

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1173865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java版LeetCode热题100之二叉树的最大深度:从DFS到BFS的全面解析

Java版LeetCode热题100之二叉树的最大深度:从DFS到BFS的全面解析本文将深入剖析 LeetCode 第104题「二叉树的最大深度」,涵盖递归(DFS)与层序遍历(BFS)两种主流解法,并延伸至算法原理、复杂度分…

贾子智慧AI战略五五三三落地细则(2025‑2035):认知破壁、生态重构与文明适配三阶段系统部署

贾子智慧AI战略五五三三落地细则(2025‑2035):认知破壁、生态重构与文明适配三阶段系统部署摘要: 本细则以贾子智慧“四大支柱五五三三定律”为内核,按“认知破壁期(2025‑2027)—生态重构期&am…

5分钟Pytest快速入门

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 Pytest的入门操作使用Pytest特点非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考能够支持简单的单元测试和复杂的…

基于贾子智慧理论体系的中国 AI 发展与竞争国家战略(2025-2035)

智慧主导智能:基于贾子智慧理论的中国AI发展与竞争国家战略(2025‑2035) 摘要 本战略以贾子智慧“四大支柱五五三三定律”为框架,确立“智慧主导智能、可控优于领先”的核心原则,旨在构建区别于美国技术霸权的新范式。…

AI 时代文明跃迁的贾子智慧评估指标体系(Kucius Wisdom Assessment System for Civilization Transition, KWACTS)

AI 时代文明跃迁的贾子智慧评估指标体系(Kucius Wisdom Assessment System for Civilization Transition, KWACTS)本体系以贾子智慧理论体系的四大支柱 五五三三定律为核心,融合 “认知 - 技术 - 能源 - 经济 - 社会 - 文明” 六维协同逻辑&…

能源监测管理平打造工业园区“智慧能源大脑”

场景痛点:随着“双碳”目标深入推进及能源成本持续攀升,传统工业园区普遍面临用能“黑箱”困境:能源数据分散、依赖人工抄表、无法实时掌握整体与各企业用能情况;缺乏有效的能效分析与预警手段,用能浪费严重&#xff1…

人类社交场合

人类社交场非逻辑、非系统特征列表特征类别特征名称核心悖论/模糊性表现形式/潜规则社会功能运作逻辑权力关系映射情感维度风险与代价文化差异性关系距离的模糊弹性可进可退的距离艺术既需要亲密又需要边界,距离无固定刻度1. 身体距离的微妙调整(半步之差…

心智革命——AI搜索如何重塑人类认知与知识未来

引言:当外部记忆成为认知器官公元前4000年,苏美尔人发明了文字,人类开始了将记忆外化的历程。公元前300年,亚历山大图书馆试图收集所有人类知识。1440年,古登堡印刷机让知识大规模复制成为可能。1998年,谷歌…

污水处理DCS数据采集组态监控系统方案

某污水处理厂采用DCS系统对污水处理流程进行集中监控与控制,具备手动、自动、维护等多种运行模式,并在中控室实现工艺参数的实时展示与设备状态管理。为进一步提升管理效率与智能化水平,现需对现有系统进行数字化升级,将污水处理关…

群雄逐鹿——AI搜索产业竞争与商业模式变革

引言:万亿美元战场的全新博弈 2023-2024年,全球科技巨头在AI搜索领域的总投入超过2000亿美元。这个数字不仅体现了技术转型的规模,更揭示了一个残酷现实:传统搜索市场每年超过3000亿美元的广告收入蛋糕正在重新分割,而…

基于深度学习神经网络YOLOv4目标检测的口罩识别系统

第一步:YOLOv4介绍 YOLOv4是一种目标检测算法,它在精度和速度之间取得了最佳的平衡。它是YOLO(You Only Look Once)系列算法的最新版本,通过将目标检测任务转化为一个回归问题,实现了实时目标检测。YOLOv4…

沃尔玛购物卡回收靠谱平台TOP3推荐 - 京顺回收

在闲置卡券回收领域,沃尔玛购物卡因流通性强、受众广泛,一直是热门品类。2025年12月数据显示,专业回收平台市场份额达35%,且用户投诉率比二手平台低62%。本文从平台资质、回收效率、用户口碑三大维度,为大家推荐三…

学Simulink--基础MPPT控制场景实例:基于Simulink的双模式MPPT(快速追踪+稳态优化)仿真

目录 手把手教你学Simulink--基础MPPT控制场景实例:基于Simulink的双模式MPPT(快速追踪+稳态优化)仿真 一、引言:为什么需要双模式MPPT?——光伏系统“效率与响应”的平衡术 二、核心原理:双模式MPPT的“切换逻辑+控制算法” 1. MPPT基本原理回顾 2. 双模式MPPT设计思…

技术深潜——AI搜索的架构演进与开源生态

引言:从黑箱魔法到开放工程2024年初,Meta发布Llama 3的当天,全球范围内出现了超过5000个基于该模型的衍生项目,其中三分之一与搜索相关。这一事件标志着AI搜索技术发展的重要转折:从少数实验室的专有魔法,转…

基于Simulink的储能参与黑启动过程控制仿真

目录 手把手教你学Simulink 一、引言:什么是“黑启动”?为什么需要储能? 二、黑启动典型流程 三、系统整体架构(Simulink 模型) 控制模式切换: 四、Simulink 建模全流程 步骤1:储能与变流器建模 步骤2:V/f 控制器设计(核心) A. 电压外环(PI 控制) B. 电流…

2026年AI智能办公鼠标排行榜,分析鸿容智能办公鼠标公司介绍 - 工业品牌热点

本榜单依托全维度市场调研与真实行业口碑,深度筛选出五家AI办公营销工具领域的标杆企业,为企业与个人选型提供客观依据,助力精准匹配适配的服务伙伴。 TOP1 推荐:深圳市南方网通网络技术开发有限公司 推荐指数:★…

基于深度学习神经网络的验证码识别系统

第一步:建立验证码数据库 目前演示的是四位验证码,里面所包含的字符类别有62种 第二步:搭建模型 本文利用一个简单的cnn模型,进行端到端识别: class CNN(nn.Module):def __init__(self, num_class62, num_char4):su…

基于Pytorch框架的深度学习Vision Transformer神经网络蝴蝶分类识别系统源码

第一步:准备数据 6种蝴蝶数据:self.class_indict ["曙凤蝶", "麝凤蝶", "多姿麝凤蝶", "旖凤蝶", "红珠凤蝶", "热斑凤蝶"],总共有900张图片,每个文件夹单独放一种…

手把手教你学 GPU KMD--1.1:UMD、KMD 与 DDK 的协作关系——从应用到硬件的完整数据流解析

目录 UMD、KMD 与 DDK 的协作关系 ——从应用到硬件的完整数据流解析 一、核心角色定义 二、典型数据流:从应用调用到 GPU 执行 三、各层交互的关键机制 1. UMD ↔ KMD:通过私有 IOCTL 或 WDDM Escape 接口 2. 内存共享:如何让 UMD 描述的数据被 GPU 访问? 3. 同步…

吃尾巴

在编程和计算机科学中,我们提到的“吃尾巴”通常是指 “尾递归” (Tail Recursion) 或者更形象的 “衔尾蛇”式的数据结构。 根据语境的不同,它主要有以下几种含义:1. 最常见的意指:尾递归 (Tail Recursion) 在递归…