JMeter基础系列--组件介绍

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:3

JMeter基础系列--组件介绍


Jmeter作为一款开源的轻量级应用,常被用于性能、接口、自动化等测试中。


它具有安装方便、功能强大、界面操作简单、测试结果可视化、测试脚本无需编程、高扩展等优点,是测试童鞋工作中的常用工具。


本文将梳理Jmeter的原理和结构体系,介绍Jmeter八大元件及其用法。通过理论知识和实际应用举例相结合,带领新手快速入门Jmeter。




1 Jmeter原理

Jmeter不仅可以作为性能测试工具,还可以作为接口测试工具。作为不同类型的工具,Jmeter的原理也有所不同,具体如下:

1.1 作为性能测试工具

Jmeter通过线程组驱动多个线程的方式运行,来模拟真实用户对Web服务器的访问压力。实现过程如下图所示:



Jmeter作为Web服务器和浏览器之间的代理网关,能够录制浏览器的请求、响应Web服务器生成测试脚本。在测试脚本的基础上,Jmeter通过线程组模拟真实用户的访问。


1.2 作为接口测试工具

Jmeter向服务器提交请求,从服务器取回请求返回的响应结果,实现过程如下图所示:



作为发起请求的客户端,Jmeter是组装请求报文结构的容器,例如:请求行、请求头、请求数据等,并可将响应结果进行可视化展示。


对于接口的复杂逻辑,Jmeter有丰富的元件进行支持,如前/后置处理、响应断言、也可以自行开发插件。


组装请求报文要求对各种协议有一定的了解,例如HTTP(S)、TCP、SOAP、DUBBO等常见协议。


2 Jmeter结构体系与元件

2.1 Jmeter结构体系

把Jmeter的结构体系拆分为三维空间,无论是性能测试还是接口测试,都会按图中的体系结构运行,部分细节有所不同,结构图如下:


各个步骤的具体含义如下:


  • X1~X5:是负载的一个过程,使用这些组件来完成负载的模拟

  • X1:根据协议,通过“采样器”模拟用户请求(如采样器:HTTP请求),“断言”检查服务器响应是否正确,随后“监听器”收集结果信息;

  • X2:“前置处理器”“配置元件”“后置处理器”会完善测试脚本部分,包括参数化、关联等,都是为取样器提供数据支持;

  • X3:“控制器”控制测试脚本业务逻辑,多种控制器组合可灵活控制执行顺序;

  • X4:性能测试中常用“定时器”制作集合点,模拟用户并发;

  • X5:一个“线程组”代表一个用户;性能测试中要模拟负载场景,某些情况下要测试同时提交时是否会出现数据丢失的问题,也需要多个线程同时运行;

  • Y1:此部分负责模拟用户请求;

  • Y2:可以理解为检查点,负责验证结果正确性;

  • Z:负责结果的收集,“监听器”不仅可以放在线程组之内,而且还可以放在线程组之外。


2.2 Jmeter八大元件说明


八大元件名称


1、取样器:模拟用户的请求操作,如HTTP请求、WebService请求、Java请求等,添加路径为:【测试计划】→【线程组】→【取样器】



2、断言:验证结果的正确性,如响应断言,添加路径为:【测试计划】→【断言】


3、监听器:收集测试结果信息,如查看结果树、聚合报告,添加路径为:【测试计划】→【监听器】


4、前置处理器:为请求发送前的环境及参数做准备,添加路径为:【测试计划】→【前置处理器】


5、配置元件:为取样器提供预备数据。由取样器发出请求,如CSV(文件中读取测试数据)、函数助手(提供了众多的函数动态生成数据)、HTTP请求默认值(为影响范围内的元件提供默认值)。

另外,配置元件可以影响其范围内的所有元件,添加路径为:【测试计划】→【配置元件】


6、后置处理器:处理服务器的返回结果,比较常用的是正则表达式提取器(用于从response中获取pageId),添加路径为:【测试计划】→【后置处理器】


注:上述【前置处理器】、【配置元件】、【后置处理器】都是为取样器提供数据支持的。


(7)逻辑控制器:控制多个请求发送的循环次数及顺序等,仅对其子节点中的取样器生效。登录一次邮箱,即可查看多封邮件,仅一次控制器即可实现一次登录的场景;多次提交单据,可用循环控制器实现该场景。


逻辑控制器可以任意组合来实现不同需求,添加路径为:【测试计划】→【线程组】→【逻辑控制器】



(8)定时器:Jmeter的请求是无延时的,加入定时器可控制多个请求发送的时间频次,常用于模拟用户思考、模拟请求同一时刻发送的场景。


需要注意的是,定时器对其作用范围内的每一个取样器有效,在作用范围内的每一个取样器之前执行,添加路径为:【测试计划】→【线程组】→【定时器】


3 Jmeter测试计划要素

如果想要实施一个测试计划,需要注意以下要素:



要素一:脚本中只能存在一个测试计划

要素二:测试计划中至少有一个线程组。线程组是任何测试计划的起点,所有控制器和取样器必须在线程组下。

要素三:至少有一个取样器(测试目的就是要模拟用户请求,没有取样脚本则毫无意义)。

要素四:至少有一个监听器(收集测试结果信息,从中分析执行结果和性能)。


注:其它元件都是为要素服务的。线程组中的取样器的执行顺序默认是从上到下执行。交替控制器、随机控制器、随机顺序控制器和循环控制器等可以改变取样器的执行顺序。


4 应用举例

此处以利用Jmeter实现【登录】【提交单据】两个目的为例,为大家简单介绍Jmeter的应用方法,具体步骤如下图:



1、登录环节运用到"JSR233 PreProcessor"对登录密码处理,"正则表达式提取器"对取样器返回的值做处理,把取到的值作为下一个请求的参数;


2、提交单据环节运用到“简单控制器”“循环控制器",循环提单次数由“用户定义的变量number控制”,提单的单据编码由“随机变量”控制;


3、配置元件中的“HTTP Cookie管理器”、“HTTP信息头管理器”、“HTTP请求默认值”定义了线程中所有HTTP请求(取样器的一种)的通用配置,用以减少重复工作;


4、监听器中的“断言结果”、“查看结果树”、“聚合报告”可以查看脚本执行结果,并根据结果进行数据分析。





JMeter基础系列--组件介绍

Jmeter作为一款开源的轻量级应用,常被用于性能、接口、自动化等测试中。它具有安装方便、功能强大、界面操作简单、测试结果可视化、测试脚...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息