JMeter 测试笔记(二):组件及运行原理

news2024/11/24 9:27:51

说组件之前,我们先来看一下JMeter的结构图,如下图,把JMeter拆解为三个维度,X空间5个维度,Y空间2个维度,Z空间1个维度。

介绍

X1~X5是负载模拟的整个过程,Y1是负载模拟部分,这部分主要负责模拟用户请求;Y2是断言,主要负责判断结果的正确性;Z主要负责收集结果的收集,进行结果的处理。

JMeter的基本原理是建立一个线程池,多线程运行取样器产生大量负载,在运行的过程中,通过断言来验证结果的正确性,通过监听器来收集测试结果。

组件介绍

笔者用的JMeter是5.4.1版本,X1 取样器(Sampler)有23个,基本涵盖了常见的各种协议。同时,JMeter本身还支持BeanShell脚本,可以进行扩展。取样器路径如下图:【Thread Droup】—【Add】—【Sampler】。

断言

X1断言(Assertions)有15个元件,涉及的断言类型也很多,比如JSON断言、响应断言、XML断言等。当然了,也可以通过BeanShell来写脚本完成校验。断言路径如下图:【Thread Droup】—【Add】—【Assertions】。

监听器

X1监听器(Listener)有19个元件。监听器主要负责测试结果的收集。主要有两个功能:一是收集测试结果,展示在页面;二是收集测试结果,保存为文件。监听器路径如下图:【Thread Droup】—【Add】—【Listener】。

前置处理器

X2前置处理器(Pre Processors)共有元件8个。前置处理器主要是在请求前,进行一些环境或者参数的准备工作。比如:如果在测试需要建立一个数据库链接,前置处理器就可以完成这个功能。前置处理器的访问路径:

【Thread Droup】—【Add】—【Pre Processors】。

配置元件

X2配置元件(Config Element)共有20个。它的作用有两个:一是获取或者记录测试数据,比如CSV Data Set Config,就可以从文件中获取测试数据;二是提供测试函数,生成动态数据。简而言之,配置元件就是为测试提供预备数据。配置元件路径:

【Thread Droup】—【Add】—【Config Element】。

后置处理器

X2后置处理器(Post Processors)共有12个元件。主要负责响应数据的处理。访问路径:【Thread Droup】—【Add】—【Post Processors】。

总之,X2的这些元件,都是为取样器提供支持的。

控制器

X3控制器(Logic Controller)共有元件19个。如果我们要对一个结果进行判断是不是与其他值相等,这时候就可以用If控制器。当然,控制器还有其他种类,需要根据业务逻辑进行选择。访问路径如下:

【Thread Droup】—【Add】—【Logic Controller】。

定时器

X4定时器(Timer)共有9种。主要是为了请求在同一时间发送,发送多久。定时器的种类也很多,可以根据自己的需求进行选择。访问路径:

【Thread Droup】—【Add】—【Timer】。

线程组

X5线程组(Theads)。测试需要模拟用户,线程组就是做这个工作的,在此元件内,可以设置运行的线程数,运行时长以及定时运行等。访问路径:

【Thread Droup】—【Add】—【Theads】。

测试片段

测试片段(Test Fragment),它是一个辅助组件,在它的下面可以放所有元件,但是单独的测试片段是不执行的,需要被模块控制器来调用。访问路径:

【Thread Droup】—【Add】—【Test Fragment】。

以上就是JMeter的结构以及组成,从以上介绍中也不难发现,JMeter是以线程的方式来运行的。这样做,是由于JMeter是运行在JVM虚拟机上的,如果以进程方式来执行,每台负载机的进程数量就不会出现很多,在很多测试中,我们并发是要很多负载机的。显然,这样做不经济,再者,Java也是支持多线程的,所以JMeter选择了一线程的方式来运行。

今天的分享到这就结束了,下次我们将会挑几个重要的组件,聊一下JMeter中组件的用法。


最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)

 

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

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

相关文章

数字签名和数字证书的原理解读(图文)

数字签名和数字证书的区别是什么?数字证书是由权威机构CA证书授权中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档。而数字签名是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数…

类型检查:时常被忽略的编译器组件

原文来自微信公众号“编程语言Lab”:类型检查:时常被忽略的编译器组件 搜索关注“编程语言Lab”公众号(HW-PLLab)获取更多技术内容! 欢迎加入 编程语言社区 SIG-类型系统 参与交流讨论(加入方式&#xff1a…

【基于容器的部署、扩展和管理】3.3 自动化扩展和负载均衡

往期回顾: 第一章:【云原生概念和技术】 第二章:【容器化应用程序设计和开发】 第三章:【3.1 容器编排系统和Kubernetes集群的构建】 第三章:【3.2 基于容器的应用程序部署和升级】 自动化扩展和负载均衡 3.3 自动…

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 系统评估2

ChatGPT 使用 拓展资料:吴恩达大咖 Building Systems with the ChatGPT API 系统评估2 运行端到端系统以回答用户查询 import time customer_msg = f""" tell me about the smartx pro phone and the fotosnap camera, the dslr one. Also, what TVs or TV r…

HOOPS助力AVEVA数字化转型:支持多种3D模型格式转换!

行业: 电力和公用事业、化工、造船、能源、采矿业 挑战: 创建大规模复杂资产的客户需要汇集多种类型的数据,以支持初始设计和创建强大的数字双胞胎;现有版本的产品只支持半打CAD格式;有限的内部开发资源限制了增加对新…

SpringBoot:SpringBoot配置解读 ③

一、先讲思想 ①. 我们说SpringBoot方向是一直致力于快速应用开发领域的蓬勃发展。 ②. 应用层面: 简化配置,默认配置,约定配置是它的具体体现。 二、YML配置 ①. 这是一种层级结构更清晰的一种配置文件格式。 三、启动依赖配置树 官网的启…

05. Web大前端时代之:HTML5+CSS3入门系列~H5 多媒体系

1.引入 概述 音频文件或视频文件都可以看做是一个容器文件(类似于压缩的zip) 编解码器就是读取特定的容器格式,对其中的音频与视频轨进行解码,然后实现播放 解码器 解码器(decoder),是一种…

C++ 泛型编程 类型萃取器的运用

C 泛型编程 类型萃取器的运用 一、C类型萃取器的基本概念与应用(Type Traits in C)1.1 类型萃取器的定义与作用(Definition and Role of Type Traits)1.2 类型萃取器的分类与特性(Classification and Characteristics …

机器学习极简介绍(二)

人工智能AI 与 机器学习 人工智能、机器学习和深度学习是什么关系? 对于小白来说这些个概念总是混淆,人工智能 ≠ 机器学习,人工智能是更广泛的概念,它包括了所有使计算机系统具备智能行为和能力的技术和方法。机器学习是人工智…

postgres篇---docker安装postgres,python连接postgres数据库

postgres篇---docker安装postgres,python连接postgres数据库 一、docker安装postgres1.1 安装Docker:1.2 从Docker Hub获取PostgreSQL镜像1.3 创建PostgreSQL容器1.4 访问PostgreSQL 二. python连接postgres数据库2.1 connect连接2.2 cursor2.3 excute执…

ubuntu22.04下用opencv4.5.4访问照片、视频、摄像头

本文主要记录近期在学习opencv使用过程中的一些细节 前言:ubuntu22.04 OpenCV4.6.0(c)环境配置 opencv的安装过程可参考下面博文,亲测有效(容易出现问题的地方在安装下面依赖的时候,一般会出现报错,需要自己换源&…

让你不再疑惑音频如何转文字

随着科技的不断发展,我们现在可以通过各种智能设备来轻松地录制音频。但是,当我们需要将音频中的内容转换成文字时,该怎么办呢?这时候,转换工具就派上用场了!那么你知道音频怎么转文字吗?接下来…

CSS2学习笔记

一、CSS基础 1.CSS简介 CSS 的全称为:层叠样式表 ( Cascading Style Sheets ) 。CSS 也是一种标记语言,用于给 HTML 结构设置样式,例如:文字大小、颜色、元素宽高等等。简单理解: CSS 可以美化 HTML , 让 HTML 更漂亮…

【产品经理】成熟产品狗必备特质

在自己从事产品经理这个职位的3年间,看过不少产品经理成长相关的文章书籍,涵盖了挺多经验、素质、能力,平时工作中也会注意学以致用,所以每每回顾此事,都觉得这对自己的工作、个人成长起到了莫大的推进作用。 1、外部合…

Docker是什么、有什么用的介绍

文章目录 1.背景2. Docker 是什么?3.Docker 容器与虚拟机的区别4.Docker 的 6 大优势1、更高效地利用系统资源2、更快的启动时间3、一致的运行环境4、持续交付和部署5、更轻松迁移6、更轻松的维护和拓展 小结 知识搬运工: 原文出自: 原文链接…

网络渗透技术如何自学,自学黑客要多久

学习网络渗透技术是一件靠兴趣驱动的事情,只有强烈热爱一件事才能持之以恒的去做,对于那些三分钟热度的人来说还是劝你放弃吧,因为网络渗透技术自学需要很多方面的知识,没耐心是无法学会的,当然除了有想要学习的决心之…

企业研发提效抓手,揭秘云原生的效能“奇点”

导语 | 在云原生时代,研发效能治理面临新的挑战,同时也获得了新的视角。如何更好地利用云原生技术的优势,从而在根本上提升研发效能,已成为许多企业数字化转型过程中的“必答题”。今天,我们特别邀请了 Thoughtworks 创…

Git操作方法

目录 Git是什么 Git特点 Git作用 Git原理 集中式 分布式 Git安装 修改语言 Git操作 1.初始化Git仓库 2.提交工作区的内容到版本库 3.查看版本记录 4.版本回退 5.版本前进 Git 命令 通用操作 工作状态 版本回退 版本前进 远程仓 1.GitHub 2.GitLab 3.码云…

Amp it up翻译(持续更新)

最近闲来无事,看到了阮一峰在推荐这本书,无奈是英文的,但是机器翻译过来又看不懂。反正自己看的时候也要翻译。于是就自己看的时候,翻译完,理解完顺便写上去,给懒的同学看一下。 书的目录 书的目录太长了&…

C语言---自定义类型:结构体,枚举,联合

🚀write in front🚀 📝个人主页:认真写博客的夏目浅石. 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:凡人修C传 💬总结:希望你看完之后&…