专栏首页dongfangerJMeter实战(一) 体系结构

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实战(二) 运行原理》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JMeter实战(三) 界面使用

    JMeter 有 2 种运行方式,一种是 CLI,一种是 GUI,本篇文章就来介绍一下后者,图形用户界面,因为后续文章大部分都是基于 GUI 的。

    dongfanger
  • 2020测试工具索引

    在整理过程中,我会尽量去官网找到官方对该工具的描述,包括中文和英文,保证原汁原味。

    dongfanger
  • 5分钟轻松学正则表达式

    这个表达式可以接受 john_doe、jo-hn_doe、john12_as,但是无法匹配到 Jo,因为它包含了大写的字母而且太短了。

    dongfanger
  • 无崩溃,无漏洞:嵌入式内核的自动验证(CS)

    内核是许多计算机系统中最安全和最关键的组件,因为最严重的错误会导致整个系统崩溃或被利用。因此,使用正式的方法来保证内核不受这些错误的影响是可取的,但是这样做所需...

    柴艺
  • Work.com与社会的客户关系管理化(Internet)

    一个前一段时间我记录与和未来的CRM公司播客有点集中在银行和信用社,CRMNext,并提出了涉及什么是对CRM地平线的问题之一。老实说,没有人真正知道,但是因为...

    用户8054058
  • 旧事物也可以是新事物

    在过去的七个月或更长时间里,许多人的工作速度低于全速工作,但有些人却比其他人做得更多。即将发布影响CRM的大量新技术,但是即使没有到10月为止的最新公告,人们也...

    田冠宇
  • 六个也许你需要转变CRM的标志(computing application)

    在当今不断发展的业务环境中,每个运营决策都是至关重要的-包括管理客户的最佳实践。客户关系管理平台是该过程的组成部分。实际上,拥有11名以上员工的公司中有91%使...

    木樾233
  • 【论文推荐】最新七篇知识图谱相关论文—知识表示学习、增强神经网络、链接预测、关系预测与提取、综述、递归特性生成、深度知识感知网络

    【导读】专知内容组整理了最近七篇知识图谱(Knowledge graphs)相关文章,为大家进行介绍,欢迎查看! 1. Does William Shakesp...

    WZEARW
  • 2020-08-26:裸写算法:树的非递归先序遍历。

    从根节点开始,每次迭代弹出当前栈顶元素,并将其孩子节点压入栈中,先压右孩子再压左孩子。

    福大大架构师每日一题
  • 前端资源分享——只为更好前端

    一、团队组织 网站说明腾讯 AlloyTeam 团队腾讯Web前端团队,代表作品WebQQ,致力于前端技术的研究ISUX腾讯社交用户体验设计,简称ISUX,腾...

    wangxl

扫码关注云+社区

领取腾讯云代金券