🌈赏金任务 - JMeter体系结构是什么?JMeter有哪些组件?

赏金任务每周更新,请持续关注哦 :love_letter:

题目

  • 模拟面试场景,面试官提问以下问题,你如何回答。
  • JMeter体系结构是什么?JMeter有哪些组件?

参与方式

  • 本帖下方回复你的答案即可

赏金

  • 100元京东购物卡

活动时间

  • 2023年2月20日 - 2023年2月26日

本周赏金任务汇总:🌈 赏金任务发布 2023-02-20

本问题参与赏金活动,详情点击 :rainbow: 赏金活动上线啦 丨做赏金任务挑战千元奖金 查看活动介绍

JMeter体系结构是什么

JMeter是一个用于性能测试和负载测试的开源工具,其体系结构如下:

组件名称 作用
Test Plan(测试计划) 测试计划是JMeter测试的最高级别的元素。它包含了一组控制器(Controller)、用户定义的变量、监听器和其他配置元素,它们一起描述了测试的行为
Thread Group(线程组) 线程组是一个测试计划中的子元素,它描述了一组用户并发访问被测试系统的行为。可以在线程组中设置虚拟用户数、循环次数、请求延迟等属性
Sampler(取样器) 取样器是一个用于模拟用户行为的元素,它会向被测试系统发送请求,比如HTTP请求、FTP请求等
Logic Controller(逻辑控制器) 逻辑控制器用于控制测试的流程,比如循环控制器、条件控制器、随机控制器等
Timer(定时器) 定时器用于模拟用户之间的时间间隔,可以设置一些固定的时间间隔或者随机时间间隔
Assertions(断言) Assertions用于验证请求的响应结果是否符合预期,比如可以验证响应代码、响应内容等
Configuration Element(配置元素) 配置元素包括了一些测试的配置,比如HTTP Cookie管理器、HTTP Header管理器、用户定义的变量等
Listener(监听器) 监听器用于收集测试结果,并以图形或者表格等形式展现出来,比如可以展示测试请求的响应时间、吞吐量等数据

JMeter有哪些组件?

逻辑控制器、配置元件、定时器、前置处理器、取样器、后置处理器、断言、监听器。

1:体系结构
Jmeter可以对Web应用进行测试,同时也提供了Web录制功能;另外还支持Java请求、JMS、EJB、WebService、JDBC、FTP、LDAP、SMTP、Junit、Mail、MongoDB、JSR223等测试。基本上我们场景的应用类型都可以用Jmeter进行测试。除此之外,我们还可以方便的扩展Jmeter功能来满足我们特定的测试需求。Jmeter也支持Socket协议的测试。另外JMeter也很方便来进行性能自动化测试。
2:组件介绍

1.线程组

性能测试需要模拟大量用户负载的情况,线程组就是用来完成这个任务的,在线程组中我们可以设置运行的线程数(用户数),运行时长,循环次数等

2.逻辑控制器

控制循环次数等

3.配置元件

性能测试过程中为了模拟大量用户操作我们需要做参数化,那么 Jmeter 参数化就可以通过配置元件来完成,另外 Jmeter 也提供了众多的函数(函数对话框),来帮助我们生成动态的数据

4.定时器(集合点)

为了足够真实的模拟用户负载,我们有时会需要模拟这些请求在同一时刻发送,就好像把大家集合在一条起跑线上同时起跑,那么我们就需要一个集合的功能

5.前置处理器

在脚本开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作,如对数据库操作前需要先建立数据库连接或者使用"用户参数"对用户账号密码参数化

6.取样器 smapler

用来模拟用户操作,向服务器(被测系统)发出 http 等请求

7.后置处理器

后置处理器一般放在取样器后,用来处理服务器返回的结果

8.断言(检查点)

用来验证结果是否正确,用一个预设的结果与实际结果匹配

9.监听器

  • 测试结果需要添加监听器来收集
  • 添加监听器,可以保存结果到文件,结果可以供再次分析使用
  • 展示结果,可以以表格及图形的形式展示结果,方便测试人员分析结果

体系结构:

  • 元件:代表JMeter工具菜单中一个子菜单(功能),比如Http请求就是一个元件;
  • 组件:一组元件的集合,如逻辑控制器就是组件,它还包含事务控制器;

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

JMeter 是一个 Java 编写的开源软件,用于压力测试和性能测试。它采用插件化的体系结构,可以通过插件扩展其功能。JMeter 的体系结构主要分为以下几个组成部分:

  1. Test Plan:Test Plan 是整个测试的顶层节点,它包含了所有的测试组件,包括线程组、配置元件、监听器、前置处理器、后置处理器等。
  2. Thread Group:线程组是 JMeter 进行测试的基本单元,它模拟了用户并发访问系统的行为。在一个线程组中,可以定义多个线程,每个线程模拟一个用户并发访问系统。
  3. Samplers:Sampler 是 JMeter 中用于模拟用户请求的组件,它模拟了用户在系统中执行的具体操作,如发送 HTTP 请求、发送 JMS 消息等。
  4. Logic Controller:Logic Controller 是用于控制测试流程的组件,如 If Controller、Loop Controller、While Controller 等。
  5. Configuration Elements:Configuration Element 是用于配置测试的组件,如 HTTP Request Defaults、HTTP Cookie Manager 等。
  6. Timer:Timer 用于模拟用户请求之间的时间间隔,可以根据需要配置时间间隔。
  7. Assertions:Assertions 用于校验响应结果是否符合预期,如 Response Assertion、Duration Assertion 等。
  8. Listeners:Listeners 用于收集测试结果,并以报告的形式展示出来,如 Summary Report、Aggregate Report 等。

总体来说,JMeter 的体系结构非常灵活,可以通过不同的组件组合,满足不同的测试需求。同时,由于其插件化的设计,也为用户提供了很大的扩展性和自定义性。

体系结构:
负载–》断言–》监听器
负载:可通过设置线程组、采样器、逻辑控制器等设计场景
断言:设置断言后,可判断成功和失败的数据
监听器:可通过监听器,监控各种指标,作为测试结果判断依据

组件:
线程组、采样器、逻辑控制器:用于设计场景。常用的是http请求,java请求、sql请求等
定时器:使负载更接近真实使用场景。常用的是高斯定时器,普通定时器
前置后期处理器:将请求数据前后关联。常用的是json、正则提取
断言:各种类型断言,用于判断接口返回是否成功。常用的是文本、json、beanshell断言
监视器:监控指标数据,查看结果树、聚合报告、响应时间、tps等
其他组件:csv,counter,http header/cookies/cache/管理器,http请求默认设置,jdbc

一、JMeter体系结构是什么?
基于各种协议,通过多线程与各种元件的组合方式来模拟设计不同的用户场景,所有元件都基于线程组运行。结构图如下:
image

二、JMeter有哪些组件?
组件:一些元件的集合(一个或多个),如逻辑控制器为组件,包含了事务控制器,If控制器等元件
JMeter组件包括:线程组,表达式,配置元件,逻辑控制器,断言,监听器等
1.线程组:
线程组是每个测试计划的起点,测试计划中的所有元件都必须依托于线程组,且每个线程组是独立运行,不会相互干扰。常用的除了用基础线程组,还有阶梯加压线程组
2.表达式
JDBC关联,JSON关联,Xpath关联,正则关联,比较常用的是正则,方便提取测试所需内容
3.配置元件:
HTTP信息头管理器
HTTP请求默认值
JDBC Connection Configuration(1个计划可以设置多个),
4.定时器:
常用的有用户集合点,固定定时器(线程等待时间,性能测试中相当于用户思考时间)等
5.逻辑控制器:
If,While,循环控制器,事务控制器等 可以根据控制器来判断是否执行下个节点任务
6.断言:
利用不同断言手法,获取实际响应字段与预期值进行匹配对比,常用响应断言,JSON断言,beanshell的断言
7.监听器:
监听工具可用来记录TPS,响应时间,并发数,错误率,对分析产品性能用处很大
8.其他工具:
常用内置函数解析器(__BeanShell,正则,随机函数)

JMeter体系结构是什么?
JMeter是一个负载测试与网络性能测试的运行器,可以用来测试应用程序,系统以及网络。它的体系结构包含了Java/Jakarta BeanShell的脚本编译机、XML文件解析器、数据集变量及文件configuration elements等等。它还包括了对HTTP、FTP、TCP、WebServices等协议的支持,以及对多种报告形式的支持。
JMeter有哪些组件?
1、线程组:指定发出测试请求的用户数量。
2、监听器:它可以收集和显示测试结果。
3、控制器:它可以调节JMeter测试计划流程。
4、构建器:它可以从已有测试计划生成新的测试计划。
5、 断言:它可以检查接收到的响应,以便检查发送的请求的内容。
6、定时器:它可以调节发出请求的速率和频率。
7、后处理器:它可以获取前面的脚本的结果,然后进行处理。