jmeter执行顺序

本章节主要讲解”JMeter执行顺序与作用域”的内容,类似于运算符或操作符的优先级,当JMeter测试中包含多个不同的元素时,哪些元素先执行,哪些元素后执行,并不是严格按照它们出现的先后顺序依次有序执行的,而是会遵循一定的内部规则,我们称之为JMeter元素的执行顺序。

一.执行顺序

一般情况下JMeter元素按照如下顺序依次执行:

  • 0、 配置元件(Config Element)
  • 1、前置处理器(Pre Processors)
  • 2、定时器(Timer)
  • 3、取样器(Sampler)
  • 4、后置处理器(Post Processors)
  • 5、断言(Assertions)
  • 6、监听器(Listener)

  • 注意,只有取样器结果不为空的情况下才会执行4、5、6。

一个简单的例子:

jmeter执行顺序jmeter执行顺序

二.组件作用域

1、JMeter测试树元素分类

  • 在JMeter的GUI界面,测试计划就是一颗树,Test Plan是树的根节点,其他元素都是其子孙从作用域的角度来看,测试树中的元素可以分为两大类:

01、具有层次结构的元素

  • 这类元素的作用域与其所处的层次有关.

  • 这类元素包括:配置元件,前置处理器,定时器,后置处理器,断言,监听器这6大组件.

02、具有顺序结构的元素

  • 这类元素一般严格按照其出现的先后顺序依次有序的执行.

  • 这类元素不会对其他元素的功能有影响,只是起控制作用,没有作用域的概念.这类元素包括取样器与逻辑控制器.

另外,还有剩下的线程组比较特殊,线程组也不会影响其他元素的功能,但是线程组的执行顺序是可以配置的,若测试计划下包含多个线程组,默认是并行执行的,若要按照其出现的顺序依次执行,需要在测试计划下勾选”Run Thread Groups consecutively (i.e. one at a time)”.

2、作用域

  • JMeter组件作用域指的是JMeter组件(配置元件,前置处理器,定时器,后置处理器,断言,监听器)起作用的范围,在此范围内组件是有效的,可以影响取样器的行为.

  • 从前面的内容可以看出,JMeter作用域是针对组件而言的,只有层次结构的组件才有作用域的概念.

3、JMeter组件作用域规则

  • 按照组件的父节点不同,组件的作用域有如下类型:

(1)取样器作用域

  • 父节点为取样器的组件具有的作用域,仅对该取样器起作用;

(2)逻辑控制器作用域

  • 父节点为逻辑控制器的组件具有的作用域,对该逻辑控制器下的所有取样器起作用;

(3)线程组作用域

  • 父节点为线程组的组件具有的作用域,对该线程组下的所有取样器起作用;

(4)测试计划作用域

  • 父节点为测试计划的组件具有的作用域,对测试计划下的所有取样器起作用。

1,如果在一个线程组里则是顺序执行

2,如果不在一个线程组里,就勾选独立运行各个线程组,在一个运行结束后启动下一个线程组

多个http请求产生的各自的聚合报告数据
在形成的聚合报告中,发现只有一行http请求统计数据,无法确定是哪一个http请求的测试结果,还是两个请求测试结果的综合数据。

jmeter执行顺序

于是上网搜相关资料,从jmeter官网中发现以下解释:

If other samplers and timers are in the same thread, these will increase the total time, and therefore reduce the throughput value. So two identical samplers with different names will have half the throughput of two samplers with the same name. It is important to choose the sampler labels correctly to get the best results from the Report.

大意是在同一线程组中,两个同名 samplers得出来的吞吐量值会是两个不同名samplers的两倍,改成不同label,将会有如下效果,即有多条记录。(截图来自jmeter官网)

jmeter执行顺序

注意,Aggregate Report 和 Summary Report运行结果都是累加的,因此,在每次运行测试前,先清空上一次运行结果。

https://blog.csdn.net/HelloGuoYing/article/details/110923975?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=1

https://zhuanlan.zhihu.com/p/403415035

https://www.cnblogs.com/longlongleg/p/15247812.html

Original: https://www.cnblogs.com/youxin/p/16138259.html
Author: youxin
Title: jmeter执行顺序

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/546194/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JAVA设计模式-代理模式

    JAVA设计模式-代理模式 一、介绍 代理模式是一种结构型模式,它指的是给某一个对象提供一个代理对象,并且由代理对象控制原有对象的引用,可以增强原有对象的功能以及降低系统的耦合度。…

    技术杂谈 2023年6月21日
    089
  • Vue自定义组件开发:使用v-model封装el-pagination组件

    1、前言 通过封装el-pagination组件开发自定义分页组件的类似文章网上已经有很多了,但看了一圈,总是不如意,于是决定还是自己动手搞一个。 2、背景 利用el-pagina…

    技术杂谈 2023年6月21日
    076
  • Jackson 通过自定义注解来控制json key的格式

    最近我这边有一个需求就是需要把Bean中的某一些特殊字段的值进行替换。而这个替换过程是需要依赖一个第三方的dubbo服务的。为了使得这个转换功能更加的通用,我们采用了下面的方式: …

    技术杂谈 2023年6月1日
    072
  • 笔记本电池保养

    *误区二:第一次充电必须充够12小时。 这对于早期那些没有电池控制电路的镍氢电池机型是适用的,但对于如今具有智能充放电控制电路的笔记本电池来说却是个笑话,当笔记本电脑电池充满之后,…

    技术杂谈 2023年5月31日
    066
  • 013 Linux 搞懂「文件所属者更改及权限的赋予」从未如此简单(chmod、chgrp、chown)

    01 一图详解「ls -l」 02 两种符号区分表示文件和目录 03 三种访问权限及表示 04 四种符号表示文件所属者用户 05 三个变更文件所属者及修改所属者权限的命令 06 工…

    技术杂谈 2023年7月10日
    074
  • PHP通过CURL获取远程文件header头信息

    使用CURL方法获取远程文件header头信息,与内置函数get_headers不同的是,这个方法不用完整下载文件,只是下载头部信息,速度理论会快一些。 Python reques…

    技术杂谈 2023年6月1日
    091
  • 长短时记忆网络 LSTM

    3. 从公式层面理解LSTM 前边我们从宏观上解释了LSTM是如何工作的,接下来我深入到LSTM单元内部进行介绍,看看它是如何保持数据的长期依赖的。我们先来看下LSTM单元内部是什…

    技术杂谈 2023年7月11日
    061
  • 嵌入式软件架构设计-函数调用

    1 前言 函数调用很好理解,即使刚学没多久的朋友也知道函数调用是怎么实现的,即调用一个已经封装好的函数,实现某个特定的功能。 把一个或者多个功能通过函数的方式封装起来,对外只提供一…

    技术杂谈 2023年7月25日
    058
  • Accounting Calendar template

    SELECT INITCAP (TO_CHAR (TO_DATE (&year || ‘-‘ || LPAD (ROWNUM, 2, ‘…

    技术杂谈 2023年6月1日
    0100
  • 设计模式 18 中介者模式

    中介者模式(Mediator Pattern)属于 行为型模式 一提到中介,大家都非常熟悉,生活中最常见的就是房屋中介。 虽然中介要收取一定费用,但却能给房东和租客都提供大量遍历,…

    技术杂谈 2023年7月25日
    077
  • C++ std::thread 及 std::mutex

    与 Unix 下的 thread 不同的是,C++ 标准库当中的 std::thread 功能更加简单,可以支持跨平台特性。 因此在项目需要跨平台及对多线程简单应用情况下,应优先考…

    技术杂谈 2023年6月21日
    079
  • 3D Math Keynote 3

    【 3D Math Keynote 3】 1、球的表面积 Surface、球的体积 Volumn: 2、当物体旋转后,如果通过变换后的旧AABB来顶点来计算新的AABB顶点,则生成…

    技术杂谈 2023年5月31日
    093
  • 老生常谈系列之Aop–JDK动态代理的底层实现原理

    老生常谈系列之Aop–JDK动态代理的底层实现原理 前言 在Aop系列里面有两篇文章,分别是老生常谈系列之Aop–Spring Aop原理浅析和老生常谈系列…

    技术杂谈 2023年7月25日
    079
  • dremio 权限体系

    尽管dremio 的社区版没有提供rbac 以及权限管理的模块能力,但是我们通过官方文档还是可以学到不少东西的,同时也有助于我们可以自己的认证授权模块 对象层级 dremio 是基…

    技术杂谈 2023年5月30日
    0114
  • 网易云音乐解锁灰色歌曲教程

    前言 这个项目地址是Github上的一个大佬开发的,已经开源,项目地址:https://github.com/meng-chuan/Unlock-netease-cloud-mus…

    技术杂谈 2023年6月21日
    0111
  • 日常踩坑_@ConfigurationProperties显示prefix must be in canonical form

    在使用 @ConfigurationProperties时,好死不死报了一个我看不懂的红,像这样 我自然是一副很懵逼的状态,红线上写的错是prefix must be in can…

    技术杂谈 2023年7月25日
    065
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球