Jmeter核心结构和运行原理(1)

news2024/12/23 18:29:15

Jmeter核心结构和运行原理

  • 一、Jmeter核心结构和运行原理
    • 1、JMeter核心结构
    • 2、JMeter的体系结构
    • 3、JMeter运行原理
      • a、GUI模式:
      • b、非GUI模式:
      • c、单机模式:
      • d、分布式模式

一、Jmeter核心结构和运行原理

1、JMeter核心结构

测试计划
线程组
配置元件
前置处理器
取样器
定时器
后置处理器
断言
监听器
逻辑控制器

测试计划:如果把JMeter的结构看成一棵树,测试计划就是树的根,所有JMeter脚本都在测试计划下去运行

线程组:线程组是任何一个测试计划的开始点。在一个测试计划中的所有元件都必须在某个线程组下。所有的任务都是基于线程组。因为JMeter是基于线程去运行请求的

配置元件:配置元件提供对静态数据的支持。如:数据库配置、JMeter变量定义、读取外部数据文件的配置等等

前置处理器:执行JMeter取样器之前,会被运行的元件;相当于pytest中的钩子,主要用来准备测试数据。

取样器:JMeter编写核心业务脚本的元件,所有其他元件本质上都是作用于取样器。

定时器:让每个线程中的每个请求按照设置的时间停顿,可以控制请求的频率,性能测试中会使用它进行吞吐量的限制。

后置处理器:执行JMeter取样器之后,会被运行的元件;主要用于处理响应数据

断言:断言取样器的响应结果的元件,通过它可以让程序帮助我们判断实际结果与预期是否一致

监听器:监听并采集所有元件的运行结果,例如监听器中的查看结果树可以采集取样器的运行结果

逻辑控制器:控制JMeter业务脚本的运行逻辑

2、JMeter的体系结构

在这里插入图片描述
X维度描述不同的组件、Y维度描述性能、Z维度描述监听

X1:用户脚本,断言
X2:对用户脚本的补充,例如数据准备、参数化、销毁还原数据等等
X3:控制用户脚本的业务流程
X4:控制用户脚本的执行周期,在性能测试中可以控制请求的频率;也可以设置集合点进行并发测试
X5:JMeter基于线程组来控制线程运行用户脚本
Y1:对性能的划分,使用取样器、配置元件、控制器、定时器
Y2:负责校验用户脚本的运行结果
Z:负责收集用户脚本的执行结果,它可以采集多个线程组的执行结果

不同层次从下往上执行
同一层次从左向右执行
线程组——》定时器——》控制器——》前置处理器——》配置原件——》采样器——》后置处理器——》断言——》监听器

3、JMeter运行原理

JMeter是以线程的方式运行的,通过线程组来驱动多线程运行测试脚本
JMeter的运行方式,可以分为两种:

a、GUI模式:

图形用户界面运行模式,可视化,更加直观,使用鼠标操作,方便实时查看运行状态,如测试结果、运行线程数等;

b、非GUI模式:

命令行模式,对负载机的资源消耗更小,GUI模式会影响负载量的生成,比如非GUI模式100个线程可以产生100TPS的负载,而GUI模式只能产生80TPS的负载;

基于JMeter的分布式设计,JMeter可以分为单机模式运行和分布式模式运行

c、单机模式:

本地模式运行
在这里插入图片描述

d、分布式模式

一台JMeter控制机(Master)控制远程的多台负载机器(Slave)来运行
控制机:控制机也是一台负载机,只不过是多台负载机中被选中作为管理机的那台机器
负载机:向被测服务器发起请求的机器
在这里插入图片描述

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

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

相关文章

MongoDB基本使用(一)

MongoDB基本使用 Nosql简介 NoSQL(NoSQL Not Only SQL ),意即”不仅仅是SQL”。 在现代的计算系统上每天网络上都会产生庞大的数据量, 这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd’s提出的关系…

总结910

目标规划: 月目标:6月(线性代数强化9讲,考研核心词过三遍) 周目标:线性代数强化5讲,英语背3篇文章并回诵,检测 每日规划 今日已做 1.早上回顾之前背诵的文章 2.写自我总结&#…

Java 中常见的数据结构

数据结构简介 数据结构是计算机科学中用于组织和存储数据的一种方式或方法。它定义了不同数据元素之间的关系,以及对这些数据元素进行操作和访问的规则和技术。 数据结构可以用来描述问题的抽象模型,并提供处理该问题的操作和算法。它可以通过逻辑和物…

wpf增加系统托盘图标

使用系统托盘,可以为用户提供一个简便快捷的操作习惯。 wpf中增加系统托盘图标有2种 第一种,使用Hardcodet.NotifyIcon.Wpf开源组件 1.建立一个wpf程序 2.安装Hardcodet.NotifyIcon.Wpf 3.增加图片 图片选择资源,否则获取不到路径 4.界面…

TypeScript - 函数(上)

目录 1、介绍 2、函数类型表达式 3、呼叫签名 4、构造签名 5、泛型函数 6、推论 7、约束 8、使用约束值 9、指定类型参数 1、介绍 函数是JavaScript应用程序的基础。 它帮助你实现抽象层,模拟类,信息隐藏和模块。 在TypeScript里&#xff0c…

Linux——进程的概念

task_struct task_struct 是linux下管理进程的结构,称为PCB,进程控制块。linux所有的指令本质上都是一个进程。进程 task_struct 进程的数据、代码、可执行程序,有属性、有内容。 进程是系统的工作单元。系统由多个进程组成,包…

Linux定时任务--crontab

linux内置了cron进程,cron搭配shell脚本,就可以完成特定的需求,有定时任务的效果。 crontab指令即cron table的简写,相关的配置文件目录如下: /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务&#xf…

论文笔记--On the Sentence Embeddings from Pre-trained Language Models

论文笔记--On the Sentence Embeddings from Pre-trained Language Models 1. 文章简介2. 文章概括3 文章重点技术3.1 BERT模型的语义相似度能力分析3.2 Anistropic各向异性3.3 BERT-flow3.4 Flow-based model 4. 文章亮点5. 原文传送门6. References 1. 文章简介 标题&#x…

树莓派Pico|RP2040简介|PINOUT|点灯示例

文章目录 一、Pico简介:二、几个比较重要的git仓库:三、使用前必读:四、PINOUT五、点灯一、如何安装固件二.安装Thonny编程环境配置三、点亮板载的LED灯Pico点亮板载LED灯的代码:PicoW点亮板载LED灯的代码: 一、Pico简…

[LeetCode周赛复盘] 第 107 场双周赛20230624

[LeetCode周赛复盘] 第 107 场双周赛20230624 一、本周周赛总结6898. 字符串连接删减字母1. 题目描述2. 思路分析3. 代码实现 6895. 构造最长的新字符串1. 题目描述2. 思路分析3. 代码实现 6898. 字符串连接删减字母1. 题目描述2. 思路分析3. 代码实现 6468. 统计没有收到请求…

Linux系统之部署Dailynotes个人笔记管理工具

Linux系统之部署Dailynotes个人笔记管理工具 一、Dailynotes介绍二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查本地yum仓库状态 四、部署Node.js 环境4.1 下载Node.js安装包4.2 解压Node.js安装包4…

ThreadPoolExecutor的应用

前面描述的线程池的创建方式大都是Executors类中创建出来,基于ThreadPoolExecutor去new出来实现的。 我们为什么要自定义线程池 在线程池ThreadPoolExecutor中提供了7个参数,都作为非常核心的属性,在线程池去执行任务的时候,每个…

Nginx-Goaccess(实时日志服务)

goaccess的功能 1、使用webscoket协议传输(双向传输协议)2、基于终端的快速日志分析器3、通过access.log快速分析和查看web服务的统计信息、PV、UV4、安装简单、操作简易、界面炫酷5、按照日志统计访问次数、独立访客数量、累计消耗的带宽6、统计请求次…

物理引擎--Open Dynamics Engine(ODE)

物理引擎--Open Dynamics Engine--ODE 1 介绍1.1 概述1.2 代码1.3 wiki1.4 特征1.5 许可 2 安装使用3 概念3.1 背景3.2 刚体3.2.1 岛屿和禁用实体 3.3 一体化3.4 积分器3.5 关节和约束3.6 关节组3.7 关节误差和误差减少参数 (ERP) Joint error and the Error Reduction Paramet…

Scala函数式编程【从基础到高级】

目录 函数基础 基本语法 函数参数 函数至简原则 至简原则细节 函数高级 高阶函数 函数的3种高阶用法: 1、函数作为值传递 2、函数作为参数传递 匿名函数作参数传递 3、函数作为返回值传递 匿名函数的至简规则 高阶函数的应用 案例-将数组中的元素全部…

【LeetCode】 动态规划 刷题训练(三)

文章目录 931. 下降路径最小和题目解析状态转移方程完整代码 64. 最小路径和题目解析状态转移方程完整代码 174. 地下城游戏题目解析状态转移方程完整代码 931. 下降路径最小和 点击查看:下降路径最小和 给你一个 n x n 的 方形 整数数组 matrix ,请你找…

chatgpt赋能python:Python搜题软件:为你量身定制的智能搜索助手

Python搜题软件:为你量身定制的智能搜索助手 随着互联网的普及,我们每天需要面对海量的信息,其中包含了我们所需要的一切答案。但是,如何快速而准确地找到这些答案呢?这时候,一款智能化的搜题软件就非常有…

【不推荐】win 安装 rust 1.70 (MSVC)

目录 一、下载二、安装三、配置环境变量四、检查是否安装成功五、参考文章 一、下载 官网地址:https://www.rust-lang.org/zh-CN/ https://forge.rust-lang.org/infra/other-installation-methods.html 历史版本下载地址: 二、安装 注意:安…

Redis:redis基于各大实战场景下的基本使用

文章目录 前言String 命令实战1.业务缓存对应redis中的指令伪代码 2.分布式锁对应redis中的指令伪代码 3.限流对应redis中的指令伪代码 List 命令实战1.提醒功能对应Redis中的指令伪代码 2.热点列表对应Redis中的指令伪代码 Hash 命令实战1.用户资料缓存对应redis中的指令伪代码…

RabbitMQ学习笔记(尚硅谷)

文章目录 一. 消息队列1. 定义2. 作用2.1 流量消峰2.2 应用解耦2.3 异步处理 3. 分类4. MQ的选择5. RabbitMQ5.1 概念5.2 四大概念5.3 六大模式5.4 RabbitMQ 工作原理5.5 安装 6. 代码实现 二. Hello World (简单模式)1. 生产者代码2. 消费者代码 三. Work Queues (工作队列模式…