性能测试05|JMeter:分布式、报告、并发数计算、性能监控
目录
一、JMeter分布式
1、应用场景
2、原理
3、分布式相关注意事项
4、分布式配置与运行
二、JMeter报告
1、聚合报告
2、HTML报告
三、并发用户数(线程数)计算
四、JMeter下载第三方插件
五、性能监控
1、Concurrency Thread Group 线程组
2、性能测试常用图标
1️⃣Transactions per Second
2️⃣Bytes Throughput per Second
3、PerfMon组件监控服务器硬件资源
一、JMeter分布式
1、应用场景

当单个测试机无法模拟用户要求的业务场景时,可以使用多台测试机进行模拟,就是Jmeter的分布 式测试。
2、原理

3、分布式相关注意事项
- 关闭防火墙
- 所有的控制机、代理机、服务器都在同一个网络上
- 所有机器的JMeter 和Java版本必须一致
- 关闭 RMI SSL 开关:在JMeter配置文件里改
4、分布式配置与运行
建立代理机器:
因为JMeter是免安装的,为了方便起见,所以可以直接把 apache-jmeter-5.6.3 安装文件复制粘贴放别的文件夹中,复制n份就有了n台代理机器。此时JMerer的原文件就是控制机。
这种方式建立的代理机器就保证了网络和版本一致。


操作步骤:假设只需要两台代理机即可完成需求
- 配置代理机一,并启动
- 配置代理机二,并启动
- 配置控制机,并启动
- 添加线程组
- 添加HTTP请求-百度
- 添加查看结果树
二、JMeter报告
1、聚合报告

【注意】
- 正常情况下,响应时间的结果取平均值
- 当响应时间最大值特别高(超出平均水平特别多),导致平均值不能代表正常/大部分水平时,可以使用百分比时间
2、HTML报告
作用:JMeter支持生成HTML测试报告,以便从测试计划中获得图表和统计信息
命令:
# 格式
jmeter -n -t [jmx file] -1 [result file] -e -o [html report folder]# 例子
jmeter -n -t hello.jmx -1 result.jtl -e -o ./report
参数描述:


另外:平常在JMeter中保存的的测试文件就是.jmx文件
案例:


三、并发用户数(线程数)计算
普通方法:
- 并发tps = 总请求数/总时间
- 只能满足最基本的要求,但是不能很好覆盖系统正常的使用情况
二八原则:满足绝大多数应用场景
- 并发tps = 总请求数 * 80% / 总时间 * 20%
- 满足系统绝大多数情况下的应用场景的需要
根据业务运营数据的统计计算(通常用来做稳定性测试)
- 并发TPS = 有效请求数 * 80% / 有效时间 * 20%
- 当运营数据统计越精确时,计算出的并发TPS与实际的越接近
根据用户峰值业务操作来计算(通常用来做压力测试)
- 并发TPS = (峰值请求数 / 峰值时间 )* 系数
- 满足峰值请求时间段内的负载量,系数取决于项目组对于未来业务量的评估
案例:

四、JMeter下载第三方插件
需要先下载JMeter插件管理工具包,再用此包下载JMeter插件
① 安装插件管理包
- 在Jmeter官网上(Install :: JMeter-Plugins.org)下载插件管理器Plugins-manager-1.10.jar
- 将JAR包放入到JMeter的lib\ext目录下
- 重启Jmeter,可以在选项下看到Plugins Manager选项

② 安装指定的插件
- 打开Plugins Manager插件管理器
- 选择Available Plugins,当前可用的插件
- 选择需要下载的插件(等待右方文本内容展示出来)
- 右下点击角的下载按钮,自动的完成下载,Jmeter会自动重启

五、性能监控
需安装以下指定插件:

1、Concurrency Thread Group 线程组
阶梯线程组:跟普通线程组很像,作用是阶梯加压;图形界面显示运行状态
添加方式:测试计划→线程(用户) →Concurrency Thread Group
参数:


2、性能测试常用图标
作用:
- 性能测试的结果统计,以聚合报告的结果为准
- 每秒性能指标的作用是:查看系统长时间运行过程中是否有异常出现,有则进一步分析
1️⃣Transactions per Second
每秒完成事务数:作用是统计各个事务每秒钟成功的事务个数
添加方式:测试计划→线程组→监听器→ Transactions per Second
2️⃣Bytes Throughput per Second
每秒字节吞吐量:作用是查看服务器吞吐流量(单位/字节)
添加方式:测试计划 →线程组 →监听器 →Bytes Throughput Over Time
3、PerfMon组件监控服务器硬件资源
作用:用来监控服务端的性能资源指标的工具,包括cpu、内存、磁盘、网络等性能数据
添加方法:线程组→监听器→jp@gc - PerfMon Metrics Collector
原理:

监控性能指标的步骤(windows服务器):
- 下载ServerAgent程序,链接地址:https://github.com/unpera/perfmon-agent
- 并上传到服务器上(是指程序所在的服务器,如果是本机运行,本机就是服务器),并解压ServerAgent-2.2.3.zip
- 手动启动ServerAgent程序,启动后,窗口放旁边不用管
- windows服务器就运行startAgent.bat
- linux服务器就运行startAgent.sh。
- 在Jmeter中添加PerfMon监控组件,并配置
- 添加线程组及HTTP请求脚本,并配置,运行即可监控资源指标
监控性能指标的步骤(linux服务器):
- 下载ServerAgent程序,并上传到服务器上
- 通过finalshell工具上传到指定的目录下(finalshell就是个远程控制工具,用其他的也可)
- 手动启动ServerAgent程序,windows服务器startAgent.bat,linux服务器startAgent.sh
(1)解压缩: unzip ServerAgent2.2.3.zip
(2)进入ServerAgent目录,赋权限:
cd ServerAgent-2.2.3
chmod -R 777 *
(3)启动ServerAgent程序
./startAgent.sh
- 添加HTTP请求 - 请求litemall首页
- 在Jmeter中添加PerfMon监控组件,并配置
全部内容:
性能测试01|性能测试理论-CSDN博客
性能测试02|JMeter:安装、元件、线程组、HTTP请求、查看结果树、参数化-CSDN博客
性能测试03|JMeter:断言、关联、web脚本录制-CSDN博客
性能测试04|JMeter:连接数据库、逻辑控制器、定时器-CSDN博客
性能测试05|JMeter:分布式、报告、并发数计算、性能监控-CSDN博客
相关文章:
性能测试05|JMeter:分布式、报告、并发数计算、性能监控
目录 一、JMeter分布式 1、应用场景 2、原理 3、分布式相关注意事项 4、分布式配置与运行 二、JMeter报告 1、聚合报告 2、HTML报告 三、并发用户数(线程数)计算 四、JMeter下载第三方插件 五、性能监控 1、Concurrency Thread Group 线程组…...
关于Java面试题大全网站无法访问的解决方案
如果Java面试题大全网站无法访问,你仍然可以通过以下渠道获取高质量的Java面试题资源: 1. 国内网站 牛客网: 网址:https://www.nowcoder.com/特点:提供大量Java面试题和在线编程练习,适合刷题和模拟面试。推…...
CSS进阶和SASS
目录 一、CSS进阶 1.1、CSS变量 1.2、CSS属性值的计算过程 1.3、做杯咖啡 1.4、下划线动画 1.5、CSS中的混合模式(Blending) 二、SASS 2.1、Sass的颜色函数 2.2、Sass的扩展(extend)和占位符(%)、混合(Mixin) 2.3、Sass的数学函数 2.4、Sass的模块化开发 2.5、Sass…...
SwiftUI 撸码常见错误 2 例漫谈
概述 在 SwiftUI 日常撸码过程中,头发尚且还算茂盛的小码农们经常会犯这样那样的错误。虽然犯这些错的原因都很简单,但有时想要快速准确的定位它们却并不容易。 况且这些错误还可能在模拟器和 Xcode 预览(Preview)表现的行为不甚…...
JavaScript系列(9)-- Set数据结构专题
JavaScript Set数据结构专题 🎲 在前八篇文章中,我们探讨了JavaScript的语言特性、ECMAScript标准、引擎工作原理、数值类型、字符串处理、Symbol类型、Object高级特性和Array高级操作。今天,让我们深入了解JavaScript中的Set数据结构。Set是…...
开发培训-慧集通(iPaaS)集成平台脚本开发Groovy基础培训视频
Groovy是一种基于Java虚拟机(JVM)的敏捷开发语言,结合了Python、Ruby和Smalltalk的许多强大特性。它旨在提高开发者的生产力,通过简洁、熟悉且易于学习的语法,Groovy能够与Java代码无缝集成,并提供强大…...
【软考网工笔记】计算机基础理论与安全——网络规划与设计
HFC 混合光纤同轴电缆网 HFC: Hybrid Fiber - Coaxial 的缩写,即混合光纤同轴电缆网。是一种经济实用的综合数字服务宽带网接入技术。 HFC 通常由光纤干线、同轴电缆支线和用户配线网络三部分组成,从有线电视台出来的节目信号先变成光信号在干线上传输…...
【设计模式】 基本原则、设计模式分类
设计模式 设计模式是软件工程中的一种通用术语,指的是针对特定问题的经过实践验证的解决方案。设计模式并不是最终的代码实现,而是描述了如何解决某一类问题的思路和方法。 如果熟悉了设计模式,当遇到类似的场景,我们可以快速地…...
mac m2 安装 docker
文章目录 安装1.下载安装包2.在downloads中打开3.在启动台打开打开终端验证 修改国内镜像地址小结 安装 1.下载安装包 到官网下载适配的安装包:https://www.docker.com/products/docker-desktop/ 2.在downloads中打开 拖过去 3.在启动台打开 选择推荐设置 …...
Vue3-pinia的具体使用和刷新页面状态保持解决方案
在 Vue 3 中,Pinia 是一个官方推荐的状态管理库,它替代了 Vuex(Vuex在Vue3中依然可以正常使用),提供了更加简洁和现代的 API,同时能够与 Vue 3完美配合。在本回答中,我们将详细介绍 Pinia 的使用…...
用ResNet50+Qwen2-VL-2B-Instruct+LoRA模仿Diffusion-VLA的论文思路,在3090显卡上训练和测试成功
想一步步的实现Diffusion VLA论文的思路,不过论文的图像的输入用DINOv2进行特征提取的,我先把这个部分换成ResNet50。 老铁们,直接上代码: from PIL import Image import torch import torchvision.models as models from torch…...
创建.net core 8.0项目时,有个启用原生AOT发布是什么意思
启用原生 AOT 发布(Native AOT publishing) 是指在 .NET 6 及更高版本中使用 Ahead-of-Time (AOT) 编译 技术,将应用程序提前编译为本地机器代码,从而生成更高效、更快速启动的可执行文件。 1. AOT 编译是什么? AOT …...
2.1.7-1 io_uring的使用
一、背景 (1)下面几个有关异步操作的例子: a)客户端和服务端的异步关系,就是客户端发送请求后不需要等待结果,接下来发送其他请求。 b)对于服务端,客户端来请求后,服务…...
群论学习笔记
什么是对称? 对称是一个保持对象结构不变的变换,对称是一个过程,而不是一个具体的事物,伽罗瓦的对称是对方程根的置换,而一个置换就是对一系列事物的重排方式,严格的说,它也并不是这个重排本身…...
深入解析-正则表达式
学习正则,我们到底要学什么? 正则表达式(RegEx)是一种强大的文本匹配工具,广泛应用于数据验证、文本搜索、替换和解析等领域。学习正则表达式,我们不仅要掌握其语法规则,还需要学会如何高效地利…...
yolov5核查数据标注漏报和误报
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、误报二、漏报三、源码总结 前言 本文主要用于记录数据标注和模型预测之间的漏报和误报思想及其源码 提示:以下是本篇文章正文内容,…...
日志聚类算法 Drain 的实践与改良
在现实场景中,业务程序输出的日志往往规模庞大并且类型纷繁复杂。我们在查询和查看这些日志时,平铺的日志列表会让我们目不暇接,难以快速聚焦找到重要的日志条目。 在观测云中,我们在日志页面提供了聚类分析功能,可以…...
如何让用户在网页中填写PDF表格?
在网页中让用户直接填写PDF表格,可以大大简化填写、打印、扫描和提交表单的流程。通过使用复选框、按钮和列表等交互元素,PDF表格不仅让填写过程更高效,还能方便地在电脑或移动设备上访问和提交数据。 以下是在浏览器中显示可填写PDF表单的四…...
GXUOJ-算法-补题:22级《算法设计与分析》第一次课堂练习
2.最大子数组和 问题描述 代码解答 #include<bits/stdc.h> using namespace std; const int N1005; int sum,n,a[N]; int res-1;int result(){for(int i0;i<n;i){if(sum<0) suma[i];else{suma[i];resmax(res,sum);}}return res; } int main(){cin>>n;for(i…...
源代码编译安装X11及相关库、vim,配置vim(3)
一、vim插件安装 首先安装插件管理器Vundle ()。参照官网流程即可。vim的插件管理器有多个,只用Vundle就够了。然后~/.vimrc里写上要安装的插件: filetype offset rtp~/.vim/bundle/Vundle.vim call vundle#begin() Plugin VundleVim/Vundle.vim Plugin powerline…...
如何用番茄小说下载器构建个人数字图书馆:5步快速入门指南
如何用番茄小说下载器构建个人数字图书馆:5步快速入门指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在网络小说阅读日益流行的今天,你是否遇到过这样的困扰&a…...
SQL复杂数据聚合_嵌套子查询与GROUP BY配合
GROUP BY后不可直接选择未分组且未聚合的字段,MySQL 5.7和严格模式PostgreSQL会报错1055;正确做法是用子查询、窗口函数或ANY_VALUE()(需确认组内无差异),并注意NULL处理、索引优化与语义边界。GROUP BY 后不能直接选未…...
第8篇 | Adaptive AUTOSAR的十字路口:高性能计算的标准化之路
当Classic Platform被形容为“精密的瑞士钟表”时,Adaptive Platform更像是“可扩展的云计算平台”。两者的哲学差异,决定了它们的应用边界。 Adaptive AUTOSAR核心模块 Adaptive平台引入的新模块: ara::com:服务发现与通信(SOME/IP、DDS可选)。 ara::exec:进程生命周期…...
Spring IOC 源码学习 声明式事务的入口点耙
springboot自动配置 自动配置了大量组件,配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后,springboot会根据类路径上的jar包来自动配置bean(比如:springboot发现类路径上的MyBatis相关类ÿ…...
别再只玩Midjourney了!手把手教你用国内API调用Google Gemini 3 Pro Image(Nano Banana 2)做电商海报
电商设计新利器:用Google Gemini 3 Pro Image打造高转化率商品海报 当Midjourney还在艺术创作领域大放异彩时,Google Gemini 3 Pro Image已经悄然改变了电商视觉设计的游戏规则。作为一名长期服务电商品牌的视觉设计师,我发现这款工具在商品展…...
深夜告警炸裂?这份Linux故障排查“作战地图”请收好匚
先唠两句:参数就像餐厅点单 把API想象成一家餐厅的“后厨系统”。 ? 路径参数/dishes/{dish_id} -> 好比你要点“宫保鸡丁”这道具体的菜,它是菜单(资源路径)的一部分。 查询参数/dishes?spicytrue&typeSichuan -> …...
动态捕食猎物关系手册:生态可信性构建与玩家长期行为响应策略
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
Lattice Diamond IP核配置实战:从新建项目到生成BIT文件的完整流程
Lattice Diamond IP核配置实战:从新建项目到生成BIT文件的完整流程 在FPGA开发领域,Lattice Diamond以其轻量级和高效性赢得了不少开发者的青睐。不同于Xilinx和Altera(现Intel)的庞大工具链,Diamond提供了更简洁的工作…...
Jasmine漫画浏览器终极指南:打造跨设备无缝阅读体验的完整教程
Jasmine漫画浏览器终极指南:打造跨设备无缝阅读体验的完整教程 【免费下载链接】jasmine A comic browser,support Android / iOS / MacOS / Windows / Linux. 项目地址: https://gitcode.com/gh_mirrors/jas/jasmine Jasmine漫画浏览器是一款革…...
从死元组到事务回卷:图解PostgreSQL的MVCC机制与VACUUM底层原理
从死元组到事务回卷:图解PostgreSQL的MVCC机制与VACUUM底层原理 当你在PostgreSQL中执行一条简单的UPDATE语句时,数据库内部究竟发生了什么?这个看似平常的操作背后,隐藏着一套精妙的多版本并发控制(MVCC)机…...


