Jmeter八大可执行元件的执行顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jmeter八大可执行元件的执行顺序相关的知识,希望对你有一定的参考价值。
参考技术A 1、 配置元件用来提供对静态数据配置的支持。例CSV Data Set config可以将本地数据文件形成数据池(Date Pool)。
2、 定时器
用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段。
3、 前置处理器
用于在实际的请求发出之前对即将发出的请求进行特殊处理。例当url中有SessionID一类的信息时,可以通过该处理器填充发出请求实际的SessionID。
4、 后置处理器
用于对Sampler发出请求后得到的服务器响应数据进行处理,一般用于提取响应中的特定数据。
5、 断言
用于检查测试中得到的响应数据是否符合预期。断言一般用来设置检查点,验证测试过程中的数据交互是否与预期一致。
6、 监听器
用来对测试结果数据进行处理和可视化显示的一系列原件。图形结果、查看结果树、聚合报告等都是比较常用的原件。
7、 取样器--Sampler
是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元。每一种不同类型的Sampler可以根据设置的参数向服务器发送不同的请求。
8、 逻辑控制器
逻辑控制器的作用域只对其子节点的sampler有效,作用是控制采样器的执行顺序。分为两类元件:一类用于控制Test Plan中Sampler节点发送请求的逻辑顺序控制器,常用的有 如果(If)控制器、Swirch Controller、Runtime Controller、循环控制器等。另一类用来对Test Plan中的脚本进行分组,方便Jmeter统计执行结果以及脚本运行时的控制。如事务控制器、吞吐量控制器等。
Jmeter元件及元件执行顺序
Jmeter目前可被执行的元件有8个:取样器(Sampler)、逻辑取样器(Logic Controller)、前置处理程序(Per-processors)、后置处理程序(Post-processors)、断言(Assertions)、定时器(Timers )、 配置元件(config elements )、监听器(Listeners)
(测试计划与线程组不属于元件)
取样器:
取样器(采样器)用来发送请求,接收响应,记录结果。它们按照在树中出现的顺序进行处理(有序的)。是典型的不与其它元件发生交互作用的元件。
逻辑控制器:
用来控制取样器的何时执行、执行顺序以及执行次数等,仅对其子节点取样器或逻辑控制器起作用(有序的)
前置处理器:
在其作用范围内(当前节点和子节点)的每一个取样器执行之前执行(如果不想作用于每一个取样器就把它放在取样器子节点)
后置处理器:
在其作用范围内的每一个取样器执行之后执行
断言:
对作用范围内的取样器执行结果进行检查,在取样器执行后执行
计时器:
计时器可以让其作用范围内的每个采样器在执行之前延迟一定的时间。
测试片段:
测试片段是一种特殊类型的控制器,它与线程组元件位于同一级别的测试计划树上。它与线程组的区别在于,除非被模块控制器或Include控制器引用,否则它不会执行。
仅用于测试计划中的代码重用
配置元件:
配置元素与采样器紧密配合。尽管它不发送请求(HTTP(S)测试脚本记录器除外),但它可以添加或修改请求。
会影响其作用范围内的所有元件
监听器:
从其作用范围内的每一个取样器中收集数据
执行顺序
在同一作用范围内,执行顺序如下:
(1)配置元件(config elements )
(2)前置处理程序(Per-processors)
(3)定时器(Timers )
(4)取样器(Sampler)
(5)后置处理程序(Post-processors)
(6)断言(Assertions)
(7)监听器(Listeners)
JMeter测试树包含层级结构和有序元件。
分层元件:监听器,配置元件,后置处理器,前置处理器,断言,计时器
如果其父节点是取样器,则将其应用于该取样器。如果其父节点是Controller,则它将影响该Controller的所有子节点。
前置处理程序、计时器、后置处理程序 和断言仅能对取样器作用。So,如果作用域内没有任何Sampler,则不会被执行。
有序元件:控制器,取样器
取样器和逻辑控制器是有序的,会根据在测试树中的添加顺序依次处理。
以上是关于Jmeter八大可执行元件的执行顺序的主要内容,如果未能解决你的问题,请参考以下文章