此为开篇,介绍JMeter的组成结构,阅读后对JMeter形成整体认知和初步印象。

为了便于后续讲解,先明确下2个术语。

元件:如HTTP请求、事务控制器、响应断言,就是一个元件。

组件:如逻辑控制器,就是组件。组件中包含一个或多个元件。

大的叫组件,小的叫元件,也没那么严谨,你想叫控件都行。

先以组件的维度,看一下JMeter结构图:

X、Y、Z形成了一个三维立体空间。

X1~X5表示的是:5个模拟过程。

Y1表示的是:用户请求。

Y2表示的是:结果验证。

Z表示的是:结果收集。

X1【取样器】

通过访问 测试计划|线程组|取样器 添加 Sampler。

可以把它看做是一个没有界面的浏览器,可以发送请求,接收响应。支持HTTP请求、WebService请求(SOAP/XML-RPC)、Java请求等。涵盖了协议包括HTTP、FTP、JAVA、LDAP、MAIL、MongoDB、SMTP、SOAP、TCP、Junit等。还能写BeanShell脚本,一种类似Java的脚本开发语言。

X1【断言】

通过 测试计划|断言 添加 Assertions。线程组也能添加断言。

一般用响应断言(Response Assertion)比较多。可以写BeanShell实现自定义复杂断言。

X1【监听器】

通过 测试计划|监听器 添加 Listener。线程组也可以添加监听器。

可以用于展示结果。如察看结果树(View Results True),查看每次请求和响应。聚合报告(Aggregate Report),类似测试报告。

另外,也可以把测试结果数据保存到文件,供再次分析使用。

X2【前置处理器】

通过 测试计划|前置处理器 添加 Pre Processors。线程组也可以添加前置处理器。

在发送请求前,需要做一些环境或数据准备,就需要用前置处理器。比如对数据库操作前,需要先建立数据库连接。

X2【配置元件】

可以通过 测试计划|配置元件 添加 Config Element。线程组也可以添加配置元件。

它的作用是,为取样器提供配置数据。比如使用 CSV Data Set Config,从文件中读取测试数据。比如使用函数(函数助手)生成动态数据。比如使用HTTP Cookie Manager,自动记录服务器返回的Cookie信息。比如使用User Defined Variables,预置一些初始化变量。

X2【后置处理器】

可以通过 测试计划|后置处理器 添加 Post Processors。线程组也可以添加后置处理器。

它的作用是处理响应数据。比如正则表达式提取器(Regular Expression Extractor),使用正则表达式来匹配响应结果,提取部分数据。

X3【逻辑控制器】

可以通过 测试计划|线程组|逻辑控制器 添加 Logic Controller。

它用来对处理逻辑进行控制。比如只登陆一次,可以用 Once Only Controller 来实现。

X4【定时器】

可以通过 测试计划|线程组|定时器 添加 Timer。

它用来设定等待时间。比如等待5秒后再发送请求。比如让多个请求等待到同一时刻发送。

不同定时器有不同功能。

X5【线程组】

可以通过 测试计划|线程组 添加 Threads(Users)。

Threads(Users),既是Thread,也是User。JMeter一个线程模拟一个用户。

Test Fragment

可以通过 测试计划|Test Fragment 添加。线程组也可以添加。

可用于临时备份元件,Test Fragment下的元件不会被运行。封装后可被模块控制器调用,就像编程一样。

简要回顾

本文通过JMeter结构图展开。取样器、断言、监听器组合在一起就可以完成发送请求、验证结果和记录结果。前置处理器、配置元件、后置处理器都是为取样器提供数据支持的。逻辑控制器可以实现各种需求。定时器可以设置集合点和等待时间等。JMeter是用线程组来模拟的,一个线程就是一个用户。Test Fragment可以用来备份元件,底下的元件不会被运行。

参考资料

《全栈性能测试修炼宝典JMeter实战》

下一篇《JMeter实战(二) 运行原理》

JMeter实战(一) 体系结构的更多相关文章

  1. 4月27号开学! 第6期《jmeter实战接口自动化+性能》课程,零基础也能学

    2019年 第6期<jmeter实战接口自动化+性能>课程,4月27号开学! 主讲老师:飞天小子 上课方式:QQ群视频在线教学 本期上课时间:4月27号-6月9号,每周六.周日晚上20:0 ...

  2. Jmeter实战

    Jmeter实战 入门篇 1.下载与使用 下载地址:http://jmeter.apache.org/download_jmeter.cgi 开源,基于java编写,所以得有jdk(jre)环境,下载 ...

  3. JMeter实战(三) 界面使用

    JMeter 有 2 种运行方式,一种是 CLI,一种是 GUI,本篇文章就来介绍一下后者,图形用户界面,因为后续文章大部分都是基于 GUI 的. 本文演示的是英文版,想用中文的同学可以在菜单栏点击 ...

  4. 全栈性能测试修炼宝典--Jmeter实战(三)

    JMeter体系结构 1.JMeter体系结构 (1)名词解释 元件:JMeter工具菜单中的一个子菜单,比如HTTP请求.事务控制器.响应断言就是一个元件. 组件:一组元件的集合,比如逻辑控制器中有 ...

  5. 全栈性能测试修炼宝典-JMeter实战笔记(三)

    JMeter体系结构 简介 JMeter是一款开源桌面应用软件,可用来模拟用户负载来完成性能测试工作. JMeter体系结构 X1~X5是负载模拟的一个过程,使用这些组件来完成负载的模拟 Y1:包含的 ...

  6. 【Jmeter自学】jmeter实战-其他请求和总结(七)

    FTP测试 步骤:其他的结果树等跟http请求一样  mysql数据库测试 JDBC请求 Jmeter-分布式性能测试 jmeter结果分析:

  7. [转]jmeter实战

    [转]http://blog.csdn.net/ultrani/article/details/8309932 本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自 ...

  8. 《全栈性能测试修炼宝典JMeter实战》学习记录

    说明:原书中jmeter版本为2.x,我的笔记中截图为5.x

  9. jmeter 实战

    JMeter 接口测试 什么是接口测试 概念 内部接口 方法与方法之间的交互 模块与模块之间的交互 一种调用对外包装的接口 Web接口分类 web接口分类:https.http.webService ...

随机推荐

  1. 【python开发】迈出第一步,这可能是我唯一一次的Python开发了

    好久没写博了,今天就瞎唠唠吧 背景: 组内有个测试平台,是基于Python2+tornado 框架写的,之前自己维护了一套系统的UIweb自动化代码,现在需要集成进去.这很可能是自己唯一一次基于pyt ...

  2. Spark应用开发-关联分析

    在机器学习中,常用的主题有分类,回归,聚类和关联分析.而关联分析,在实际中的应用场景,有部分是用于商品零售的分析.在Spark中有相应的案例 在关联分析中,有一些概念要熟悉. 频繁项集,关联规则,支持 ...

  3. 当前PageOffice需要获取更高版本的授权才能正常运行。(Error:0x0005)

      说明当前程序的是pagoeffice3说明当前程序的是pagoeffice3.0的程序,而序列号用的是2.0的序列号,或者说是当前程序是4.0的程序,而序列号用的是3.0的序列号.即当前用的是高版 ...

  4. Activiti7 组任务

    需求:在流程定义中在任务节点的assignee固定设置任务负责人,这种情况不是很好,如果有天任务负责人请假了,你想请假,等着吧..没人审批,针对这种情况,可以给任务设置多个候选人,可以从候选中选择参与 ...

  5. springboot x.x.x RELEASE pom 第一行报错解决办法

    springboot x.x.x RELEASE pom 第一行报错解决办法 在pom.xml 文件的properties中加入maven jar插件的版本号 <properties> & ...

  6. Typora第一次使用

    一级标题 二级标题 三级标题 三个# + 空格 分割线 三个- 三个* 粗体 ctrl + B 斜体 ctrl + I 删除线 引用 一个大于号就可以了 图片: ! + [] + (图片路径) 超链接 ...

  7. python:接口开发

    一.flask flask是一个python编写的轻量级框架,可以使用它实现一个网站或者web服务.本文就用flask来开发一个接口. flask需要先安装再引用.pip install flask ...

  8. AES字节数组加密解密流程

    AES类时微软MSDN中最常用的加密类,微软官网也有例子,参考链接:https://docs.microsoft.com/zh-cn/dotnet/api/system.security.crypto ...

  9. 超详细!盘点Python中字符串的常用操作

    在Python中字符串的表达方式有四种 一对单引号 一对双引号 一对三个单引号 一对三个双引号 a = 'abc' b= "abc" c = '''abc''' d = " ...

  10. [程序员代码面试指南]二叉树问题-找到二叉树中的最大搜索二叉树(树形dp)

    题意 给定一颗二叉树的头节点,已知所有节点的值都不一样,找到含有节点最多的搜索二叉子树,并返回这个树的头节点. 题解 在后序遍历过程中实现. 求解步骤按树形dp中所列步骤.可能性三种:左子树最大.右子 ...