目录

一、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

Jmeter】Jmeter:体系结构相关推荐

  1. 【一】Jmeter:体系结构

    目录 一.Jmeter 结构图(x/y/z 三维空间图) 二.Y 空间 三.Z 空间 四.X 空间 (一)X1 空间 (1)取样器             (2)断言               (3 ...

  2. Jmeter===Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍(转)

    Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍 要求: 今天要测试上千条数据,且每条数据要求执行多次,(模拟多用户多次抽奖) 1.用户id有175个,且没有任何排序规 ...

  3. [Jmeter]Jmeter环境搭建

    Jmeter环境搭建 1.  拷贝 \\szpc1450\apache-jmeter-2.7 整个目录到本机(我是放在D盘,以下路径说明以D盘为例) 2.  拷贝\\szpc1450\Tools\au ...

  4. Jmeter - JMeter监听器 -上篇(详解教程)

    目录 1.简介 2.预览监听器 3.常用监听器详解 3.1 察看结果树 3.2 汇总报告 3.3聚合报告 3.4后端监听器 3.5汇总图 3.6 断言结果 3.7比较断言可视化器 3.8 生成概要结果 ...

  5. Jmeter——Jmeter之命令行测试

    一. 命令行参数 1.每次启动Jmeter都会出现下面的提示 不要使用GUI模式去负载测试,GUI模式仅仅使用为编写脚本并调试 使用非GUI模式可以节省负载机资源,测试结果更加准切 配置环境变量 ex ...

  6. jmeter——jmeter+ant生成优化的HTML接口自动化测试报告

    jmeter+ant生成优化的HTML测试报告 一.最终实现效果展示 二.实现方式 1.环境搭建 2.实现原理 3.报告生成方式 三.实现步骤 1.jar包转移:实现ant调用jmeter脚本 2.j ...

  7. Jmeter——Jmeter限制网速进行测试

    一.业务需要,有时限制网速会更加符合实际,测试出真实的响应时间情况 找到apache-jmeter-3.2/bin/jmeter.properties文件 找到参数,分别为限制http即https # ...

  8. jmeter中控制器其中一个访问不到_Jmeter体系结构和运行原理

    从测试流程来讲,主要用到的元件包括[取样器]-[断言]-[监听器],组合在一起的话,就能帮我们完成"发送请求","验证结果","记录结果"三 ...

  9. java8安装_JMeter必知必会系列(2) JMeter安装部署

    2.1 JMeter环境需求 JMeter是纯Java应用程序,因此有Java运行环境的要求.不同版本JMeter对Java版本的要求不尽相同.比如: JMeter3.3仅支持Java 8 JMete ...

最新文章

  1. 报错内容 IndentationError: unindent does not match any outer indentation level
  2. android a z 快速定位,快速集成android实现listview的字母A-Z排序,界面侧边字母索引...
  3. [转载]AxureRP 7.0部件详解(一)
  4. AUTOSAR从入门到精通100讲(三十一)-AutoSar中RTE的生成准备
  5. 计算机工程师分级_这些是每个计算机工程师都应该知道的数字
  6. Jarvis:一个值得关注的多模态端到端人机对话框架,针对所有行业适配
  7. document.createElement
  8. 初学者python笔记(类的装饰器、property方法、元类)
  9. C++基础与深度解析第八章:动态内存管理
  10. Fragment与Acitvity通信
  11. OSI参考模型(1)
  12. 小米MIUI线刷包cust.img、system.img精简教程(二)
  13. python资源管理器安装_Python学习笔记-Python安装
  14. int argc,char*argv[ ]的简洁解释
  15. ac1900 linksys 恢复_AC1900路由器怎么恢复出厂设置?
  16. 【答学员问】- 该如何根据岗位学习相关技能
  17. 带你深入了解Java!十七、超市会员管理系统!
  18. Idea查看tomcat日志及部分错误例子
  19. 正式赛-ZZULIOJ-1882- 蛤玮的魔法
  20. xdg-open命令打开文件夹或其他格式文件

热门文章

  1. 前端入门css学习笔记(十一)-----溢出属性之空余空间
  2. fedora15 安装nvidia 显卡驱动
  3. ctf ordinary keyboard的加密问题
  4. BigBrother的大数据之旅 Day 4 Linux(4)
  5. 计算机修改人类记忆曲线,遗忘曲线
  6. 76Echarts - 散点图(Life Expectancy and GDP)
  7. 只有年轻人才能做数据分析师吗?
  8. python分行输入_python换行输入
  9. struct hdr_cmn
  10. python 离线翻译软件_简单翻译软件