JMeter实战(一) 体系结构
此为开篇,介绍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实战(一) 体系结构的更多相关文章
- 4月27号开学! 第6期《jmeter实战接口自动化+性能》课程,零基础也能学
2019年 第6期<jmeter实战接口自动化+性能>课程,4月27号开学! 主讲老师:飞天小子 上课方式:QQ群视频在线教学 本期上课时间:4月27号-6月9号,每周六.周日晚上20:0 ...
- Jmeter实战
Jmeter实战 入门篇 1.下载与使用 下载地址:http://jmeter.apache.org/download_jmeter.cgi 开源,基于java编写,所以得有jdk(jre)环境,下载 ...
- JMeter实战(三) 界面使用
JMeter 有 2 种运行方式,一种是 CLI,一种是 GUI,本篇文章就来介绍一下后者,图形用户界面,因为后续文章大部分都是基于 GUI 的. 本文演示的是英文版,想用中文的同学可以在菜单栏点击 ...
- 全栈性能测试修炼宝典--Jmeter实战(三)
JMeter体系结构 1.JMeter体系结构 (1)名词解释 元件:JMeter工具菜单中的一个子菜单,比如HTTP请求.事务控制器.响应断言就是一个元件. 组件:一组元件的集合,比如逻辑控制器中有 ...
- 全栈性能测试修炼宝典-JMeter实战笔记(三)
JMeter体系结构 简介 JMeter是一款开源桌面应用软件,可用来模拟用户负载来完成性能测试工作. JMeter体系结构 X1~X5是负载模拟的一个过程,使用这些组件来完成负载的模拟 Y1:包含的 ...
- 【Jmeter自学】jmeter实战-其他请求和总结(七)
FTP测试 步骤:其他的结果树等跟http请求一样 mysql数据库测试 JDBC请求 Jmeter-分布式性能测试 jmeter结果分析:
- [转]jmeter实战
[转]http://blog.csdn.net/ultrani/article/details/8309932 本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自 ...
- 《全栈性能测试修炼宝典JMeter实战》学习记录
说明:原书中jmeter版本为2.x,我的笔记中截图为5.x
- jmeter 实战
JMeter 接口测试 什么是接口测试 概念 内部接口 方法与方法之间的交互 模块与模块之间的交互 一种调用对外包装的接口 Web接口分类 web接口分类:https.http.webService ...
随机推荐
- 用Python写一个随机数字生成代码,5行代码超简单
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 第一步,安装 random 库 random库是使用随机数的Python标准库 ...
- 沉珂日重的Java项目 Spring真的帮到我们了吗?
开局三连图. 这是刚开始时的程序结构,虽清晰已经有混乱的前兆. 业务增加,人员增加后就会沉珂日重. 几年后,最后的模样会让使用者和维护者都很无奈. 人们喜欢把Java程序的层次结构比作建筑,实际却最像 ...
- 20190926-01Redis五大数据类型之List 000 027
- tcp建立连接为什么需要三次握手和四次挥手
前言 众所周知tcp传输层协议在建立连接的时候需要三次才能建立起一个真正的可靠连接,可是为什么是三次呢,不可以是两次,四次等等呢,可以自己思考一番,带着疑问可以看下文. 三次握手 在<计算机网络 ...
- Linux:less and Aix:more
在运维工作中,经常要查询应用日志,有Linux和Aix系统,个人感觉,Linux查询日志用less命令比较方便,Aix查询日志用more命令比较方便,在此总结一下两个命令的使用方法 AIX more命 ...
- [LeetCode]105. 从前序与中序遍历序列构造二叉树(递归)、108. 将有序数组转换为二叉搜索树(递归、二分)
题目 05. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 题解 使用HashMap记录当前子树根节点在中序遍历中的位置,方便每次 ...
- Linux实战(5):Centos8安装python
Centos8正式版已经发布了,已经尝鲜的小伙伴们会发现与其他Linux发行版不同,CentOS 8默认不安装Python.接下来的操作指导大家如何安装python3. 转自链接 安装python3 ...
- 用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍
你有没有过这种体验,拍照时对着镜头,脑子一片空白.表情僵硬.手和脚无处安放,最后拍出来的照片很是奇怪.拍照软件中的固定姿势抓拍功能可以帮助你:选择一个你想要的姿势模板,当你摆出同款姿势时,软件会进 ...
- 剑指offer 59-II 队列的最大值
题目描述 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value.push_back 和 pop_front 的均摊时间复杂度都是O(1). 若队列为空,pop_ ...
- hystrix源码之插件
HystrixPlugins 获取并发相关类(HystrixConcurrencyStrategy).事件通知类(HystrixEventNotifier).度量信息类(HystrixMetricsP ...