【Jmeter】Jmeter:体系结构

版权声明:本文为博主原创文章,欢迎转载,转载须注明出处:By 故三殇 https://blog.csdn.net/qq_39720249/article/details/88565999

目录

一、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脚本。

 


 (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 的场景设计更加丰富。

  

猜你喜欢

转载自blog.csdn.net/qq_39720249/article/details/88565999
今日推荐