Jmeter分布式、测试报告、并发数计算、插件添加方式、常用图表
Jmeter分布式
应用场景
当单个测试机无法模拟用户要求的业务场景时,可以使用多台测试机进行模拟,就是Jmeter的分布
式测试。
Jmeter分布式执行原理

Jmeter分布测试时,选择其中一台作为控制机(Controller),其它机器作为代理机(Agent)
- 执行时,控制机会把脚本发送到每台代理机上
-代理机拿到脚本后就开始执行,代理机执行时不需要启动Jmeter界面,可以理解它是通过命令行模式执行的。
-执行完毕后,代理机会把结果传给控制机,控制机会收集所有代理机的信息并汇总。
分布式相关注意事项:
-
系统上的防火墙关闭或打开正确的端口
-
所有控制机、代理机、服务器都在同一网络上
-
所有机器的Jmeter和Java版本必须一致
-
关闭RMI SSL开关
Jmeter分布式配置和执行
配置 —修改bin/jmeter.properties文件:
-
代理机:
- 修改服务端口:保证每个代理机都能正常启动。如果是在同一台机器上演示需要使用不同的端口,多台机器可以不修改。例如:server_port=1999
- 将RMI SSL设置为禁用。例如 server.msi.ssl.disable=true
-
控制机
- 配置代理机远程地址:配置每个代理机的IP+port,多个代理机之间用’,'连接
例如:remote_hosts=192.168.182.100:1099,192.168.182.101:2999
- 将RMI SSL设置为禁用。例如: server.msi.ssl.disable=true
执行
- 代理机(命令行启动):
- 进入bin目录,运行jmeter-server.bat,启动jmeter

启动时如果显示的是上面这样的异常
原因:jmeter.properties的文件找到server.rmi.ssl.disable=false,改为true,并把前面的#去掉
重新启动:

- 控制机(界面方式启动):
- 进入bin目录,运行jmeter.bat,启动jmeter
选择菜单:运行–>远程启动/远程启动全部

案例:
1.请求:http://www.baidu.com
2.一台控制机和两台执行机,做分布式;要求控制机启动,两台执行机执行,反馈结果。
操作步骤:
1.配置代理机一,并启动
jmeter1:启动jmeter-server.bat文件

2.配置代理机二,并启动
jmeter2:启动jmeter-server.bat文件

3.配置控制机,并启动
主程序:启动jmeter.bat文件,启动jmeter,运行–>远程启动/远程全部启动

4.添加线程组
5.添加HTTP请求-百度
6.添加查看结果树

Jmeter测试报告
聚合报告
作用:收集性能测试结束后,系统的各项性能指标。如:响应时间、并发数、吞吐量、错误率等。
位置:测试计划–>右键–>监听器–>聚合报告

参数介绍:
- Label:每个请求的名称
- 样本:各请求发出的数量
- 平均值:平均响应时间(单位:毫秒)
- 中位数:中位数,50%<=时间
- 90%百分比:90%<=时间
- 95%百分比:95%<=时间
- 99%百分比:99%<=时间
- 最小值:最小响应时间
- 最大值:最大响应时间
- 异常%:请求的错误率
- 吞吐量:吞吐量,默认情况下表示每秒完成的请求数,一般认为它是TPS。
- 接收KB/sec:每秒接收到的千字节数
- 发送KB/sec:每秒发送的千字节数
补充:
- 正常情况下,响应时间的结果取平均值
- 当响应时间最大值特别高,(超出平均水平特别多),导致平均值不能代表正常/大部分水平时,可以使用百分比时间。
案例:
1、请求:https://www.baidu.com
2、模拟5个用户并发,控制服务器QPS为20,运行时长设置为1分钟
3、添加聚合报告,收集系统性能指标:响应时间、吞吐量、错误率、网路速率
实现:

HTML测试报告
作用:Jmeter支持生成HTML测试报告,以便从测试计划中获得图表和统计信息
命令:
jmeter -n -t [jmx file] -l [result file] -e -o [html report folder]
eg:jmeter -n -t hello.jmx -l result.jtl -e -o ./report
参数描述:
-n:非GUI模式执行的Jmeter
-t [jmx file]:测试计划保存的路径及.jmx文件名,路径可以是相对路径也可以是绝对路径
-l [result file]:保存生成测试结果的文件,jtl文件格式
- e:测试结束后,生成测试报告
- o [html report folder]:存放生成测试报告的路径,路径可以是相对路径也可以是绝对路径
注意:result.jtl和report会自动生成,如果在执行命令时result.jtl和report已存在,必须用先删除,否则在运行命令时,会报错。
案例:
1、请求:https://www.baidu.com
2、模拟5个用户并发,控制服务器QPS为20,运行时长设置为1分钟
3、使用命令行的方式运行,并收集HTML测试报告
执行案例:

Jmeter测试报告的内容介绍
仪表盘统计:

APDEX(应用性能指标):
- APDEX:满意度,范围在0-1之间,1表示达到所有用户均满意
- T(Toleration threshold):容忍或满意阈值
-F(Frustration threshold):失败阈值
- Request Summary(请求总结):
-成功与失败的请求占比,KO指失败率,OK指成功率
-
详细信息:
HTML测试报告:
-chart(详细信息图标):它包括Throughput(吞吐量)、Response Times(响应时间)等


并发数
性能测试时TPS计算
性能测试时的TPS,大都是根据用户真实的业务数据(运营数据)来计算的
运营数据:

普通计算方法:
计算公式:TPS=总请求/总时间
数据分析:
根据数据统计,在2019年第32周,日均PV为4.13万,可以估算为1天有4.13万请求(1次浏览都至少对应一个请求)
总请求数=4.13万 请求数=41300
总时间 = 1天 =1*24小时 =24*3600秒
套入公式:
TPS = 41300请求数/24*3600秒 =0.48请求数/秒
结论:按照普通计算方法,理论上每秒能够处理0.48请求,就可以满足线上的需要(只能满足最基本的要求,但是不能很好覆盖系统正常的使用情况)
二八原则计算方法:
二八原则就是指80%的请求在 20%的时间内完成
计算公式:TPS=总请求*80%/(总时间*20%)
套入公式:
TPS: 41300*0.8请求数/24*3600*0.2秒 =1.91请求数/秒
结论:按照二八原则计算,在测试环境我们的TPS只要达到1.91请求数每秒就能满足线上需要。
二八原则的估算结果会比平均值的计算方法更能满足用户需求。
计算稳定性测试并发量:

结合二八原则计算公式:TPS = 总请求数 * 80% /(总时间*20%)
- 需要在测试环境模拟用户正常业务操作(稳定性测试)的并发量为:
TPS: 40474 * 0.8 请求数 / 16 * 3600 * 0.2秒 = 2.81请求数/秒
- 并发TPS =有效请求数 * 80% /(有效时间*20%)
- 当运营数据统计越精确时,计算出的并发TPS与实际的越接近
计算压力测试并发量:

计算压力测试的并发数:TPS =峰值请求数/峰值时间 * 系数:
-需要在测试环境模拟用户峰值业务操作(压力测试)的并发量为:
TPS = 8853 请求数 / 3600秒 * 3(系数) =7.38请求数/秒
- 满足峰值请求时间段内的负载量,系数取决于项目组对于未来业务量的评估
练习:
某购物商场,经过运营统计,正常一天成交额为100亿,客单价平均为300元,交易时间主要
为10:00-14:00,17:00-24:00,其中19:00-20:00的成交量最大,大约成交20亿。
现系统升级,需要进行性能测试,保证软件在上线后能稳定运行。
请计算出系统稳定性测试时的并发(负载)量,及保证系统峰值业务时的并发(负载)量。
稳定性并发量:
-
并发TPS=有效请求数 * 80% / 有效时间*20%
-
并发TPS= (100亿/300*80%)/(3600*11个小时*20%)
压力并发量:
- 并发TPS=峰值请求数/峰值时间 * 系数
- 压力TPS=(20亿/300)/(3600*1个小时)*系数
Jmeter下载第三方插件
说明:先下载Jmeter插件管理工具包,再用此包下载Jmeter插件
下载插件管理包步骤:
- 下载包管理工具Jar包
- 将包管理工具jar包添加到Jmeter放入到 lib\ext目录下
- 重启Jmeter,可以在选项下看到插件管理器

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

需要下载的插件:

并发数及Jmeter性能测试常用图表
性能测试常用图表
Concurrency Thread Group线程组
阶梯线程组:作用是阶梯加压;图形界面显示运行状态
添加方式:测试计划–>线程(用户)—>Concurrency Thread Group

参数介绍:
- Target Concurrency: 目标并发(线程数)
- Ramp Up Time:加速时间
- Ramp-Up Steps Count:加速步骤计数
- Hold Target Rate Time:运行时间
- Time Unit:单位时间(分钟或者秒)
- Thread Iterations Limit:线程循环次数
- Log Threads Status into File:日志记录
Transations per Second
每秒完成事务数:作用是统计各事务每秒钟成功的事务个数
添加方式:测试计划–>线程组–>监听器–>Transations per Second

Bytes Throughput per Second
每秒字节吞吐量:作用是查看服务器吞吐流量(单位/字节)
添加方式:测试计划–>线程组–>监听器–>Bytes Throughput Over Time

每秒性能指标统计:
作用:
- 性能测试的结果统计,以聚合报告的结果为准
- 每秒性能指标的作用是:查看系统长时间运行过程中是否有异常出现,有则进一步分析。
练习:
1、请求:https://www.baidu.com
2、模拟5个用户并发,控制服务器QPS为20,运行时长设置为1分钟
3、添加性能测试常用图表

PerfMon组件监控服务器资源
作用:用来监控服务端的性能资源指标的工具,包括CPU、内存、磁盘、网络等性能数据。
添加方法:线程组–>监听器–>jp@gc - PerfMon Metrics Collector
注意:使用之前需要在服务器端安装监听服务程序并启动

监控服务器资源指标的步骤:
- 下载安装包ServerAgent-2.2.3.zip,链接地址:https://github.com/undera/perfmon-agent
- 上传到服务器上,并解压ServerAgent-2.2.3.zip
- 启动,如果是windows运行ServerAgent.bat,如果是linux 运行startAgent.sh
- 启动这个工具后,jmeter的插件jp@gc - PerfMon Metrics Collector就可以收集服务端的资源使用率,并在jmeter中查看了。
案例一:
1. 启动windows上安装的Tpshop商城项目
2. 使用Jmeter编写脚本,访问首页,控制运行时间为60s,并同步监控服务器资源指标。
监控性能指标的步骤(windows服务器):
1.上传ServerAgent-2.2.3.zip到windows服务器上,并进行解压
2.启动ServerAgent程序ServerAgent.bat
3.添加线程组,配置持续时间为60s
4.添加HTTP请求-首页
5.添加PerfMon组件
6.添加聚合报告

监控性能指标的步骤(linux服务器):
- 下载ServerAgent程序,并上传到服务器上
- 通过xshell工具上传到指定的目录下
- 手动启动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监控组件,并配置

相关文章:
Jmeter分布式、测试报告、并发数计算、插件添加方式、常用图表
Jmeter分布式 应用场景 当单个测试机无法模拟用户要求的业务场景时,可以使用多台测试机进行模拟,就是Jmeter的分布 式测试。 Jmeter分布式执行原理 Jmeter分布测试时,选择其中一台作为控制机(Controller),…...
3D三维模型展示上传VR全景创建H5开源版开发
3D三维模型展示上传VR全景创建H5开源版开发 新增三级分类(项目分类、项目、默认场景) 新增热点 前台创建项目、场景 场景跳转、提示信息 新增热点图标选择 新增预览场景是显示关联场景 新增3D模型展示功能 当然可以!以下是一个关于3D三维模…...
js中!emailPattern.test(email) 的test是什么意思
test 是 JavaScript 正则表达式(RegExp)对象的方法之一,用于测试一个字符串是否与正则表达式匹配。正则表达式是一种用于匹配字符串的模式,通常用于验证输入数据、查找和替换文本等。 使用 test 方法 test 方法语法如下…...
半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法| 文献速递-深度学习结合医疗影像疾病诊断与病灶分割
Title 题目 Semi-Supervised Medical Image Segmentation Using Adversarial Consistency Learning and Dynamic Convolution Network 半监督医学图像分割:基于对抗一致性学习和动态卷积网络的方法 01 文献速递介绍 医学图像分割在计算辅助诊断和治疗研究中扮演…...
Scikit-Learn支持向量机回归
Scikit-Learn支持向量机回归 1、支持向量机回归1.1、最大间隔与SVM的分类1.2、软间隔最大化1.3、支持向量机回归1.4、支持向量机回归的优缺点2、Scikit-Learn支持向量机回归2.1、Scikit-Learn支持向量机回归API2.2、支持向量机回归初体验2.3、支持向量机回归实践(加州房价预测…...
ElasticSearch的桶聚合
桶聚合 在前面几篇博客中介绍的聚合指标是指符合条件的文档字段的聚合,有时还需要根据某些维度进行聚合。例如在搜索酒店时,按照城市、是否满房、标签和创建时间等维度统计酒店的平均价格。这些字段统称为“桶”,在同一维度内有一个或者多个桶。例如城市桶,有“北京”、“天…...
vue引入aos.js实现滚动动画
aos.js官方网站:http://michalsnik.github.io/aos/ aos.js介绍 AOS (Animate on Scroll) 是一个轻量级的JavaScript库,用于实现当页面元素随着用户滚动进入可视区域时触发动画效果。它不需要依赖 jQuery,可以很容易地与各种Web开发框架&#…...
python+selenium之点击元素报错:‘NoneType‘ object has no attribute ‘click‘
今日遇到一个很奇怪的问题 case1:当使用顺序结构直接从登录到点击页面菜单,则可以正常点击菜单 case2:若把登录分离开,采用封装的方法点击菜单则会提示:‘NoneType’ object has no attribute ‘click’ 具体页面如下,…...
Web 品质国际化
Web 品质国际化 随着互联网的普及和全球化的推进,Web品质国际化已成为现代企业发展的必然趋势。Web品质国际化不仅仅是网站的多语言支持,更是一种全面的文化、技术和市场适应性的体现。本文将探讨Web品质国际化的概念、重要性以及实施策略。 一、Web品质国际化的概念 Web品…...
绿色免费离线版JS加密混淆工具 - 支持全景VR加密, 小程序js加密, H5网站加密
自从我们推出在线版的免费JS加密混淆工具以来,受到了广大用户的热烈欢迎。特别是全景开发人员,他们使用该工具加密VR插件的JS代码, 添加域名锁等,都非常有效地保护了插件的代码资源。 最近,我们收到了许多用户的反馈,…...
文心一言 VS 讯飞星火 VS chatgpt (284)-- 算法导论21.2 2题
二、对定理 21.1 的整体证明进行改造,得到使用链表表示和加权合并启发式策略下的 MAKE-SET 和 FIND-SET 的摊还时间上界为 O(1),以及 UNION 的摊还时间上界为 O(lgn)。如果要写代码,请用go语言。 文心一言: 在Go语言中实现使用链…...
计算机组成原理网课笔记2
存储系统基本概念...
C++ | Leetcode C++题解之第143题重排链表
题目: 题解: class Solution { public:void reorderList(ListNode* head) {if (head nullptr) {return;}ListNode* mid middleNode(head);ListNode* l1 head;ListNode* l2 mid->next;mid->next nullptr;l2 reverseList(l2);mergeList(l1, l…...
手写一个JSON可视化工具
前言 JSON 平时大家都会用到,都不陌生,今天就一起来实现一个 JSON 的可视化工具。 大概长成下面的样子: 树展示 相比于现有的一些 JSON 格式化工具,我们今天制作的这个小工具会把 JSON 转为树去表示。其中: 橙色标…...
洁盟超声波清洗机怎么样?2024爆款机型声波清洗机测评、一篇看懂
随着现在近视率的逐年上升,戴眼镜的人群越来越多!当然他们也在面临着一个眼镜清洗的问题!因为长期佩戴眼镜,镜框还有镜片上面都是会积累灰尘、油污、污垢以及细菌,脏脏的不仅令眼镜不美观,同时在长期的佩戴…...
react 自定义鼠标右键点击事件
功能:鼠标右键点击节点时,出现“复制”功能,点击其他部位,隐藏“复制”;鼠标右键事件的文案,始终在鼠标点击位置的右下方;点击复制,提示复制成功 效果图: 代码࿱…...
make V=1 分析
文章目录 make V1 make V1 # 顶层 Makefile 580 -include include/config/auto.conf 584 -include include/config/auto.conf.cmd ...... 593 include/config/%.conf: $(KCONFIG_CONFIG) include/config/auto.conf.cmd 594 $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig 595…...
每天一个数据分析题(三百五十八)-图表决策树
图中是某公司记录销售情况相关的表建立好的多维分析模型,请根据模型回答以下问题: 1)该模型属于哪种连接模式? A. 星型模式雪花模式 B. 星座模式雪花模式 C. 星座模式星型模式雪花模式 D. 以上都不对 数据分析认证考试介绍…...
HarmonyOS 页面路由(Router)
1. HarmonyOS页面路由(Router) 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块,通过不同的url地址,可以方便地进行页面路由,轻松地访问不同的页面。本文将从页面跳转、页面返回和页面返回前增加一个询问…...
Python 正则表达式语法
Python 中的正则表达式是通过 re 模块提供的,它支持大多数正则表达式的语法。以下是一些基本的正则表达式语法元素: 字符匹配: . 匹配任意单个字符,除了换行符。\d 匹配任意数字,等同于 [0-9]。\D 匹配任意非数字字符,…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
