JMeter整体综述

news2024/11/18 21:46:49

JMeter整体综述

  • 1. JMeter体系结构及运行原理
    • 1.1 主要的组件
    • 1.2 运行原理
  • 2. 元件执行顺序和作用域
    • 2.1 元件执行顺序
    • 2.2 元件执行作用域
  • 3. 参考

1. JMeter体系结构及运行原理

  1. 负载模拟:负责模拟用户请求。如取样器有参数化的需求,可通过配置元件或前置处理器完成。如有关联需求,可通过后置处理器完成。

  2. 线程组:用来设置运行场景,如模拟多少用户,运行多长时间

  3. 定时器:用来模拟用户并发场景

  4. 控制器:用来控制业务的执行逻辑,如单次登录等

  5. 断言:验证结果正确性

  6. 监听器:负责结果的收集与展示

1.1 主要的组件

在这里插入图片描述

  1. 取样器(Sampler)
    模拟用户操作,向测试系统发出请求,如http请求、Web Service请求或JDBC请求
    取样器执行JMeter的实际请求交互工作。每个取样器请求都会生成一个或多个取样结果。取样结果具有各种属性,如是否成功或失败,经历的时间,数据包大小等,且可在各种监听器中查看结果

  2. 断言
    用来验证验证结果是否正确、判断请求是否成功返回值是否符合要求。常见的断言有响应断言、XML断言等

  3. 监听器
    负责结果的收集(保存到文件)与展示(图形化展示)

  4. 前置处理器

    1. 在请求发送之前进行环境或参数的准备工作,如对数据库建立连接等
    2. 为了确保作用到特定的取样器,可以将其添加到特定的取样器
  5. 配置元件

    1. 模拟用户操作过程中的参数化,比如CSV Data Set Config,可以从文件中读取测试数据,为取样器提供预备数据
    2. 记录服务器返回的数据,如Http Cache Manager,自动记录服务器返回的Cache信息
    3. 配置元件在同一范围内首先执行,即在同一范围内,先于任何取样器之前被执行
  6. 后置处理器

    1. 一般放在取样器之后,用来处理服务器的返回结果,比如正则表达式提取器
    2. 关联是通过JMeter元件从服务器的响应数据中提取动态数据的过程,动态数据可以应用于随后的取样器等
    3. 后置处理器是JMeter的关联元件,可以从服务器响应数据中查找需要的数据
    4. 诸多的后置处理器元件可以适用于不同的关联和信息抽取场景
    5. 应用于同一作用域的所有取样器,可以将其添加到特定的取样器
  7. 逻辑控制器
    确定取样器的处理顺序和逻辑控制等。如执行一次控制器,循环控制器,交替执行控制器等来满足实际运行中的复杂需求

    除仅一次控制器外,其它控制器下可嵌套别的种类的逻辑控制器

  8. 定时器

    1. 为了真实模拟用户负载,有时需要模拟在什么时候以什么规律发送请求。比如在同一时刻并发访问某一服务器。
    2. JMeter定时器控制取样器的执行时机,根据实际需求,有诸多的定时器可以选择,如固定定时器,随机定时器等
  9. 线程组:

    1. 性能测试需要模拟大量用户负载的情况,通过线程组来完成此工作,可以设置运行的线程数,即模拟的用户数,还可以设置运行时长和循环次数等

1.2 运行原理

  1. JMeter通过线程组来驱动多个线程运行测试脚本对被测服务器发起负载
  2. 负载机上可以运行多个线程组,JMeter运行场景可以在GUI和非GUI模式下运行,非GUI资源消耗相对较小
  3. JMeter中取样器,断言和监听器组合在一起就可以完成请求发送,验证结果及记录结果过程
  4. JMeter可以运行在远程控制模式下,即分布式处理

2. 元件执行顺序和作用域

2.1 元件执行顺序

JMeter测试计划脚本呈树形结构排列,元件的执行顺序是先执行根节点,再执行子节点。在同一层次中,各元件的执行顺序逻辑如下:

  1. 配置元件
  2. 前置处理器
  3. 定时器
  4. 取样器
  5. 后置处理器
  6. 断言
  7. 监听器
    在这里插入图片描述
    元件执行顺序注意事项:
  8. 定时器、断言、前置处理器及后置处理器只有在适用于取样器的情况下才会按照顺序进行处理
  9. 控制器和取样器按照在测试计划树中的顺序进行处理
  10. 其他测试元件根据其范围和测试元素的类型进行处理
  11. 如测试元件是同一种类型,则元件按照在树种出现的顺序进行处理

2.2 元件执行作用域

JMeter测试计划树包括的元件是分层并且有序的

  1. 其中监听器、配置元件、后置处理器、前置处理器、断言及定时元件是严格分层且有序执行的

  2. 控制器和取样器则是有序执行的

  3. 断言元件分层作用域

    1. 对于严格分层的元件,如断言元件在测试计划树中是分层的。如果其父节点是一个请求,则该断言应用于该请求。

    如父节点是控制器,则该断言将应用于控制器内的所有请求

3. 参考

https://www.bilibili.com/video/BV1Sv411w7wy?p=73&vd_source=99dba1420b584095a4003bd191f6c0cf

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

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

相关文章

15.JavaScript 01

文章目录一、概念二、功能三、 JavaScript发展史四、 ECMAScript:客户端脚本语言的标准1、基本语法1. 与html结合方式2. 注释3. 数据类型4. 变量5. 运算符6. 流程控制语句7. JS特殊语法8. 练习:99乘法表2、基本对象1. Function:函数(方法)对象…

上线3天,下载4万,ChatGPT 中文版VSCode插件来了

ChatGPT 的 Debug 功能,有人应用化了。 ChatGPT 这几天可谓是风头无两。作为一个问答语言模型,它最大的优点就是可以回答与编程相关的问题,甚至回复一段代码。 尽管有人指出 ChatGPT 生成的代码有错误,但程序员们还是对它写代码、…

图像配准开源数据集资源汇总

Brown 数据集 数据集下载链接:http://suo.nz/3042bh 数据集由 1024 x 1024 位图 (.bmp) 图像组成,每个图像包含一个 16 x 16 图像块阵列。每个补丁都被采样为 64 x 64 灰度,具有规范的比例和方向。 ETHZ Toys 数据集下载链接&#xff1a…

Java中的语法糖(真甜)

什么是语法糖(Syntactic sugar) 语法糖是一个计算机数据,特指在编程语言中添加的某种语法,这种语法对语言的功能没有影响,但是更方便程序员使用。语法糖让程序更加简洁,有更高的可读性。 糖嘛&#xff0c…

08.DashBoard流监控配置

08.DashBoard流监控配置 每个服务提供者都需要实现actuator&#xff0c;才可以实现流量监控。 导入Maven依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId><…

【图像去噪】空域+频域滤波图像去噪【含GUI Matlab源码 914期】

⛄一、获取代码方式 获取代码方式1&#xff1a; 完整代码已上传我的资源&#xff1a;【图像去噪】基于matlab GUI空域频域滤波图像去噪【含Matlab源码 914期】 获取代码方式2&#xff1a; 通过订阅紫极神光博客付费专栏&#xff0c;凭支付凭证&#xff0c;私信博主&#xff0…

移动端防抓包实践

目录介绍 01.整体概述介绍 1.1 项目背景1.2 思考问题1.3 设计目标1.4 收益分析 02.市面抓包的分析 2.1 Https三要素2.2 抓包核心原理2.3 搞定CA证书2.4 突破CA证书校验2.5 如何搞定加解密2.6 Charles原理2.7 抓包原理图2.8 抓包核心流程 03.防止抓包思路 3.1 先看如何抓包3.2 …

C++计算机视觉库OpenCV在Visual Studio 2022的配置方法

本文介绍在Visual Studio 2022中配置、编译C 计算机视觉库OpenCV的方法。 1 OpenCV库配置 首先&#xff0c;我们进行OpenCV库的下载与安装。作为一个开源的库&#xff0c;我们直接在其官方下载网站&#xff08;https://opencv.org/releases/&#xff09;中进行下载即可&#x…

实现无入侵式C++代码mock工具

为了实现真正无侵入式的mock&#xff0c;我们基于开源Hook框架Frida-gum提供的API&#xff0c;利用C模板进行封装&#xff0c;作者编写了一个简单实用的mock工具&#xff0c;在此开源分享&#xff08;代码详见附录&#xff09;。背景在单元测试中&#xff0c;往往需要减少被测函…

如何实现高性能网络编程-ChatGPT怎么看

hi ,大家好&#xff0c;我是大师兄。听说最近chatgpt特别火&#xff0c;那我们邀请一下chatgpt如何实现&#xff1a;我们先来小试牛刀&#xff1a;刚开始用先用英文交流一下&#xff0c;然后试一下中文&#xff1a;元芳你怎么看&#xff1f;下期直播主题--网络编程 (如何实现高…

用 AWTK 和 AWPLC 快速开发嵌入式应用程序 (7)- 用状态机实现红绿灯

AWPLC 目前还处于开发阶段的早期&#xff0c;写这个系列文章的目的&#xff0c;除了用来验证目前所做的工作外&#xff0c;还希望得到大家的指点和反馈。如果您有任何疑问和建议&#xff0c;请在评论区留言。 1. 背景 AWTK 全称 Toolkit AnyWhere&#xff0c;是 ZLG 开发的开源…

kaggle实战:基于超市消费数据的用户个性化分析案例

大家好&#xff0c;今天给大家分享一篇 kaggle 数据集的新文章&#xff1a;基于一份超市消费数据集的用户个性化分析以及用户分群的实现。 更多详细内容参考原数据集地址&#xff1a; https://www.kaggle.com/code/sonalisingh1411/customer-personality-analysis-segmentati…

实验八 网络优化与正则化(3)不同优化算法比较

目录7.3 不同优化算法的比较分析7.3.1 优化算法的实验设定7.3.1.1 2D可视化实验7.3.1.2 简单拟合实验7.3.1.3 与Torch API对比&#xff0c;验证正确性7.3.2 学习率调整7.3.2.1 AdaGrad算法7.3.2.2 RMSprop算法7.3.3 梯度估计修正7.3.3.1 动量法7.3.3.2 Adam算法7.3.4 不同优化器…

java基于Springboot的简历系统-计算机毕业设计

项目介绍 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;简历系统当然也不能排除在外。简历系统是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;…

SAP ABAP CDS view Association 引入的缘由

ABAP CDS view 支持三种 join 方式&#xff1a; Inner JoinLeft Outer joinRight outer join 我们使用 ABAP Development Tool 的 CDS view 向导创建一个 CDS view&#xff1a; 向导里包含的 $ 和大括号就是占位符&#xff0c;需要开发人员自己指定&#xff1a; 我们把占位符…

奇舞周刊475期:2022年 CSS 生态圈技术趋势!

记得点击文章末尾的“ 阅读原文 ”查看哟~下面先一起看下本期周刊 摘要 吧~奇舞推荐■ ■ ■2022年 CSS 生态圈技术趋势&#xff01;一年一度的 State of CSS 调查结果正式公布&#xff01;通过本文看看2022年 CSS 生态圈的技术趋势&#xff01;React Streaming SSR 原理解析Re…

BI技巧丨RANKX浮点运算

RANKX这个函数&#xff0c;白茶之前已经写过很多期了&#xff0c;本期是对RANKX函数一个细节问题的补充。 我们常见的数据类型有很多&#xff0c;用来聚合的主要有三种数据类型&#xff1a;文本、整数、小数。 在大部分场合&#xff0c;小数是实际FACT数据中最为常见的数据类…

[1180]clickhouse查看数据库和表的容量大小

文章目录1.查看数据库容量、行数、压缩率2.查看数据表容量、行数、压缩率3.查看数据表分区信息4.查看数据表字段的信息5. 查看表的各个指标6.跟踪分区7.检查数据大小在mysql中information_schema这个数据库中保存了mysql服务器所有数据库的信息&#xff0c; 而在clickhouse&…

[附源码]Python计算机毕业设计SSM基于健身房管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Java 变量作用域、构造方法官方教程

一、变量作用域 Java 中的变量有3种: &#x1f4d6; ① 全局变量&#xff1a;被定义在类中&#xff08;成员变量&#xff09; &#x1f4d6; ② 局部变量&#xff1a;被定义在成员方法、代码块、静态代码块中定义的变量 &#x1f4d6; ③ 参数&#xff1a;方法声明中的变量 T…