Jmeter】Jmeter:体系结构

目录

一、Jmeter 结构图(x/y/z 三维空间图)  

二、Y 空间

三、Z 空间

四、X 空间

(一)X1 空间

(1)取样器             (2)断言               (3)监听器

(二)X2 空间

(1)前置处理器      (2)配置元件         (3)后置处理器

(三)X3 空间

逻辑控制器

(四)X4 空间

定时器

(五)X5 空间

线程组

一、Jmeter 结构图(x/y/z 三维空间图)  
X 空间:分为 5 个维度(X1/X2/X3/X4/X5)
Y 空间:分为 2 个维度(Y1/Y2)
Z 空间:分为 1 个维度(Z)
     Y1    Y2    Z
X1    取样器    断言    监听器
X2    前置处理器、配置元件、后置处理器         

X3    逻辑控制器     
X4    定时器     
X5    线程组
二、Y 空间
Y1:包含的是负载模拟部分,负责模拟用户请求。
Y2: 结果验证部分,负责验证结果正确性。
三、Z 空间
Z: 负载结果的收集,实践上只有一个组成部分一一 监听器 ,监听器不仅可以放在线程组之内,
也可以放在线程组之外,所以在图中我们看到它们是相交的。
四、X 空间
(一)X1 空间
【取样器】、【断言】、【监听器】组合在一起就可以帮我们完成发送请求、验证结果及记录结果三项工作。
(1)取样器
取样器的访问路径:
英文:[Test Plan]-[Thread Group]-[Add]-[Sampler]
中文:[测试计划]-[线程组]-[添加]-[取样器]
取样器(又译采样器):
1、用来模拟用户操作,向服务器(被测试系统)发出 Http 请求、 WebService (SOAP/XML-RPC Request) 请求或者 Java 请求等。

2、我们可以把 Http 请求元件看成是一个没有界面的浏览器,它可以发送 Http 请求,接收服务器的响应数据。
JMeter 5.0 版本提供的取样器元件有 24 个,基本涵盖了我们常见的各种协议:
Http 、FTP 、JAVA 、JMS 、LDAP 、 MAIL 、MongoDB 、SMTP 、SOAP 、TCP 、Junit 等,
还支持BeanShell脚本。


JMeter 5.0 版本提供的取样器元件有 24 个,基本涵盖了我们常见的各种协议:
Http 、FTP 、JAVA 、JMS 、LDAP 、 MAIL 、MongoDB 、SMTP 、SOAP 、TCP 、Junit 等,
还支持BeanShell脚本。

 (2)断言
断言的访问路径1:
英文:[Test Plan]-[Add]-[Assertions]
中文:[测试计划]-[添加]-[断言]
 
断言的访问路径2:
英文:[Test Plan]-[Thread Group]-[Add]-[Assertions]
中文:[测试计划]-[线程组]-[添加]-[断言]
断言:
1、用来验证结果是否正确,可以帮助我们来判断请求是否成功返回且是否符合要求。
 
2、和 LoadRunner 的检查点一样功能,在 JMeter 中我们不叫检查点,称作断言。
 
3、说白了就是用一个预设的结果(值、表达式、时间长短等条件)与实际结果匹配,匹配到则成功,反之失败。


JMeter 5.0 版本的断言元件有 13 个,比如响应断言、XML 断言、 BeanShell 断言,其中较常用的是响应断言;
对于复杂的断言还可以通过 BeanShell 脚本来完成 (BeanShell 是类 Java 的脚本语言,实际上 BeanShell 是一个小巧的 Java 
源码解释器,可以直接调用 Java 程序,具体有关 BeanShell 的内容请到官网 http://www.beanshell.org/ 了解)。

 (3)监听器
监听器的访问路径1:
英文:[Test Plan]-[Add]-[Listener]
中文:[测试计划]-[添加]-[监听器]
 
监听器的访问路径2:
英文:[Test Plan]-[Thread Group]-[Add]-[Listener]
中文:[测试计划]-[线程组]-[添加]-[监听器]
监听器:
1、JMeter 的测试结果需要添加监听器来收集, JMeter 结果收集程序的设计模式就是监听器模式。 
 
2、JMeter 的监听器有两个任务:
(1) 添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用。 
(2) 展示结果,JMeter 可以以表格及图形的形式展现结果,方便测试人员分析测试结果。 
我们在开发测试脚本时,不可避免需要调试,监听器也提供了辅助(比如察看结果树,我们以在其中看到请求与响应的数据)。
JMeter 监听器共有 33 个元件

(二)X2 空间
【前置处理器】、【配置元件】、【后置处理器】都是为取样器提供数据支持的,取样器关注的是业务逻辑。
(1)前置处理器
前置处理器的访问路径1:
英文:[Test Plan]-[Add]-[Pre Processors]
中文:[测试计划]-[添加]-[前置处理器]
 
前置处理器的访问路径2:
英文:[Test Plan]-[Thread Group]-[Add]-[Pre Processors]
中文:[测试计划]-[线程组]-[添加]-[前置处理器]
前置处理器:
1、在测试脚本开发过程中,我们在请求发送前可能会做一些环境或者参数的准备工作,那么我们可以在前置处理器中来完成这些工作。
 
2、比如,我们在对数据库进行操作前需要先建立一个数据库连接,那么前置处理器就可以完成这个功能。


(2)配置元件
配置元件的访问路径1:
英文:[Test Plan]-[Add]-[Config Element]
中文:[测试计划]-[添加]-[配置元件]
 
配置元件的访问路径2:
英文:[Test Plan]-[Thread Group]-[Add]-[Config Element]
中文:[测试计划]-[线程组]-[添加]-[配置元件]
配置元件:
1、性能测试中为了模拟大量用户操作我们往往需要做参数化,Jmeter 的参数化可以通过配置元件来完成,
比如 CSV Data Set Config ,它可以帮助我们从文件中读取测试数据。
 
2、另外 JMeter 也提供了众多的函数(通过函数助手可以查看到,后续会讲到〉来帮我们生成动态数据。
 
3、当然配置元件的作用不仅于此,它还可以用来记录服务器的返回数据,比如 Http Cache Manager,
自动记录服务器返回的 Cache 信息。简而言之它为取样器提供预备数据,然后由取样器发出请求。

(3)后置处理器
后置处理器的访问路径1:
英文:[Test Plan]-[Add]-[Post Processors]
中文:[测试计划]-[添加]-[后置处理器]
 
后置处理器的访问路径2:
英文:[Test Plan]-[Thread Group]-[Add]-[Post Processors]
中文:[测试计划]-[线程组]-[添加]-[后置处理器]
后置处理器:
1、后置处理器一般放在取样器之后,用来处理服务器的返回结果,比如:
(1)一个 Web 应用程序,我们登录后会返回一个 SessionID ,这个SessionID 在登录之后的业务操作过程中
会作为验证条件,验证用户是否合法登录了。
(2)我们利用取样器模拟这个请求时就需要带上这个属性,那么如何获取呢:    
① 首先我们要知道这个 SessionID 从哪里来?
——它是由服务器返回的。
② 接着我们要获取它,用什么工具获取呢?
——JMeter 帮我们提供了元件,比如正则表达式提取器,它支持正则表达式的方式来提取数据。
 
2、后置处理器就是专门用来对响应数据做处理的元件,JMeter 的关联就是通过后置处理器来完成的。

(三)X3 空间
逻辑控制器
逻辑控制器的访问路径:
英文:[Test Plan]-[Thread Group]-[Add]-[Logic Controller]
中文:[测试计划]-[线程组]-[添加]-[逻辑控制器]
逻辑控制器:
1、我们在收邮件时,只需要登录一次邮箱即可以查看多封邮件:
如果这个场景我们要在 JMeter 中实现,我们需要控制登录的次数,如例实现呢? 
——JMeter 逻辑控制器(后续说到控制器时默认为逻辑控制器) 中的 “仅一次控制器” 即可以完成。
 
2、当然了,控制器不只有这一个,还有很多其他的控制器来完成我们的各种需求,控制器用法也有攻略,
组合在一起也能够完成各种奇丽需求。


(四)X4 空间
定时器
定时器的访问路径1:
英文:[Test Plan]-[Add]-[Timer]
中文:[测试计划]-[添加]-[定时器]
 
定时器的访问路径2:
英文:[Test Plan]-[Thread Group]-[Add]-[Timer]
中文:[测试计划]-[线程组]-[添加]-[定时器]
定时器:
1、为了足够真实地模拟用户负载,我们有时会需要模拟这些请求在同一时刻发送,
就好像把大家集合在一条起跑线上,然后一声令响,同时起跑。
 
2、那么我们此时需要一个集合的功能,JMeter 中可以通过定时器来完成这个需求。
 
3、当然了,定时器可不只有这一个功能,定时器种类有很多,每一种代表了不同的功能。


(五)X5 空间
线程组
线程组的访问路径:
英文:[Test Plan]-[Add]-[Logic Controller]
中文:[测试计划]-[添加]-[线程组]
线程组:
1、性能测试需要模拟大量用户负载的情况,线程组就是用来完成这个工作的,在此元件中我们可以设置运行的
线程数(就是模拟多少用户,一线程一用户)。
 
2、线程组的设置十分简单,除了设置线程数以外,还可以设置运行时长,定时运行等。
 
3、另外第三方插件( JMeter Plugin )的扩展也让 JMeter 的场景设计更加丰富。
  


————————————————
版权声明:本文为CSDN博主「故三殇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_39720249/article/details/88565999

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Apache JMeter 源码(apache-jmeter-5.4.3_src.zip)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache JMeter 功能包括: 能够加载和性能测试许多不同的应用程序/服务器/协议类型: 网络 - HTTP、HTTPS(Java、NodeJS、PHP、ASP.NET,...) SOAP/REST 网络服务 FTP 通过 JDBC 数据库 LDAP 通过 JMS 的面向消息的中间件 (MOM) 邮件 - SMTP(S)、POP3(S) 和 IMAP(S) 本机命令或 shell 脚本 TCP Java 对象 全功能测试 IDE,允许快速记录测试计划(来自浏览器或本机应用程序)、构建和调试。 CLI 模式(命令行模式(以前​​称为非 GUI)/无头模式)从任何 Java 兼容操作系统(Linux、Windows、Mac OSX 等)加载测试 完整且可随时呈现的动态 HTML 报告 通过从最流行的响应格式、HTML、JSON、 XML或任何文本格式中提取数据的能力轻松关联 完全可移植性和100% Java 纯度。 完整的多线程框架允许多个线程并发采样和不同线程组同时采样不同功能。 缓存和离线分析/重放测试结果。 高度可扩展的核心: 可插拔采样器允许无限的测试功能。 可编写脚本的采样器(与 JSR223 兼容的语言,如Groovy和 BeanShell) 可以使用可插拔计时器选择多个负载统计信息。 数据分析和可视化插件允许极大的可扩展性和个性化。 函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值