性能测试05|JMeter:分布式、报告、并发数计算、性能监控

news2025/1/8 14:25:48

目录

一、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博客

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

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

相关文章

wujie无界微前端框架初使用

先说一下项目需求:将单独的四套系统的登录操作统一放在一个入口页面进行登录,所有系统都使用的是vue3,(不要问我为啥会这样设计,产品说的客户要求) 1.主系统下载wujie 我全套都是vue3,所以直接…

SpringIOC循环依赖与三级缓存

SpringIOC循环依赖与三级缓存 Spring解决循环依赖的核心机制就是通过三级缓存: 一级缓存(singletonObjects):存储完全初始化好的Bean;二级缓存(earlySingletonObjects):存储原始实例…

【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 3:算法实现

目录 1 三种多头编码(MHE)实现1.1 多头乘积(MHP)1.2 多头级联(MHC)1.3 多头采样(MHS)1.4 标签分解策略 论文:Multi-Head Encoding for Extreme Label Classification 作者…

前端 图片上鼠标画矩形框,标注文字,任意删除

效果: 页面描述: 对给定的几张图片,每张能用鼠标在图上画框,标注相关文字,框的颜色和文字内容能自定义改变,能删除任意画过的框。 实现思路: 1、对给定的这几张图片,用分页器绑定…

【办公利器】ReNamer (批量文件重命名工具) Pro v7.6.0.4 多语便携版,海量文件秒速精准改名!

ReNamer是一款功能强大的文件重命名工具,它可以帮助用户快速方便地批量重命名文件和文件夹。 软件功能 批量重命名:ReNamer可以同时处理多个文件和文件夹,并对其进行批量重命名,从而节省时间和劳动力。灵活的重命名规则&#xff…

unity学习13:gameobject的组件component以及tag, layer 归类

目录 1 gameobject component 是unity的基础 1.1 类比 1.2 为什么要这么设计? 2 从空物体开始 2.1 创建2个物体 2.2 给 empty gameobject添加组件 3 各种组件和新建组件 3.1 点击 add component可以添加各种组件 3.2 新建组件 3.3 组件的操作 3.4 特别的…

数据库模型全解析:从文档存储到搜索引擎

目录 前言1. 文档存储(Document Store)1.1 概念与特点1.2 典型应用1.3 代表性数据库 2. 图数据库(Graph DBMS)2.1 概念与特点2.2 典型应用2.3 代表性数据库 3. 原生 XML 数据库(Native XML DBMS)3.1 概念与…

CSS——1.优缺点

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><link rel"stylesheet" type"text/css" href"1-02.css"/></head><body><!--css&#xff1a;层叠样式表…

UE5本地化和国际化语言

翻译语言 工具 - 本地化控制板 Localization Dashboard 修改图中这几个地方就可以 点击箭头处&#xff0c;把中文翻译成英语&#xff0c;如果要更多语言就点 添加新语言 最后点击编译即可 编译完&#xff0c;会在目录生成文件夹 设置界面相关蓝图中设置 切换本地化语言 必须在…

python学习笔记—15—数据容器之列表

1. 数据容器 列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict) 2. 列表 (1) 定义 tmp_list ["super", "carry", "doinb"] print(f"tmp_list {tmp_list}, tmp_list type is {type(tmp_list)}") tmp_list1 ["doi…

【简博士统计学习方法】第1章:4. 模型的评估与选择

4. 模型的评估与选择 4.1 训练误差与测试误差 假如存在样本容量为 N N N的训练集&#xff0c;将训练集送入学习系统可以训练学习得到一个模型&#xff0c;我们将这么模型用决策函数的形式表达&#xff0c;也就是 y f ^ ( x ) y\hat{f}(x) yf^​(x)&#xff0c;关于模型的拟合…

Unity自定义编辑器:基于枚举类型动态显示属性

1.参考链接 2.应用 target并设置多选编辑 添加[CanEditMultipleObjects] using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor;[CustomEditor(typeof(LightsState))] [CanEditMultipleObjects] public class TestInspector :…

cesium小知识:3D tiles 概述、特点、示例

Cesium 的 3D Tiles 是一种高效的、流式传输的三维地理空间数据格式,专为在Web浏览器中快速渲染大规模三维场景而设计。3D Tiles 支持多种几何类型,包括点云、多边形、模型等,并且可以包含丰富的属性信息和层次细节(LOD, Level of Detail)结构,以确保不同设备和网络条件下…

【微服务】7、分布式事务

在分布系统中&#xff0c;一个业务由多个服务合作完成&#xff0c;每个服务有自己的事务&#xff0c;多个事务需同时成功或失败&#xff0c;这样的事务称为分布式事务。 其中每个服务的事务叫分支事务&#xff0c;整个业务的统一事务叫全局事务。 分布式事务相关知识讲解 课程引…

基于 Boost.Asio 和 Boost.Beast 的异步 HTTP 服务器(学习记录)

已完成功能&#xff1a; 支持 GET 和 POST 请求的路由与回调处理。 解析URL请求。 单例模式 管理核心业务逻辑。 异步 I/O 技术和 定时器 控制超时。 通过回调函数注册机制&#xff0c;可以灵活地为不同的 URL 路由注册处理函数。 1. 项目背景 1.1 项目简介 本项目是一个基于…

Linux标准IOday1

1:思维导图 2:将 student.c这个练习题&#xff0c;改成链表后实现 头文件link.h #ifndef __STRUCT_H__ #define __STRUCT_H__ #include <stdio.h> #include <stdlib.h> typedef struct Student{char name[20];double math;double chinese;double english;double…

全局变量(PHP)(小迪网络安全笔记~

免责声明&#xff1a;本文章仅用于交流学习&#xff0c;因文章内容而产生的任何违法&未授权行为&#xff0c;与文章作者无关&#xff01;&#xff01;&#xff01; 附&#xff1a;完整笔记目录~ ps&#xff1a;本人小白&#xff0c;笔记均在个人理解基础上整理&#xff0c;…

gateway的路径匹配介绍

gateway是一个单独服务。通过网关端口和predicates进行匹配服务 1先看配置。看我注解你就明白了。其实就是/order/**配置机制直接匹配到orderservice服务。 2我试着请求一个路径&#xff0c;请求成功。下面第三步是请求的接口。 3接口。

RabbitMQ-基本使用

RabbitMQ: One broker to queue them all | RabbitMQ 官方 安装到Docker中 docker run \-e RABBITMQ_DEFAULT_USERrabbit \-e RABBITMQ_DEFAULT_PASSrabbit \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network mynet\-d \rabbitmq:3…

模式识别-Ch2-分类错误率

分类错误率 最小错误率贝叶斯决策 样本 x x x的错误率&#xff1a; 任一决策都可能会有错误。 P ( error ∣ x ) { P ( w 2 ∣ x ) , if we decide x as w 1 P ( w 1 ∣ x ) , if we decide x as w 2 P(\text{error}|\mathbf{x})\begin{cases} P(w_2|\mathbf{x}), &…