首页 > 其他分享 >Jmeter:逻辑控制器(二)

Jmeter:逻辑控制器(二)

时间:2024-01-27 21:23:26浏览次数:31  
标签:控制器 执行 逻辑 循环 线程 sampler Jmeter 节点

一 前言

环境:
Jmeter 5.3 window 10

本篇继续记录逻辑控制器

二 逻辑控制器

1 吞吐控制器

按照官方的说法,此控制器的命名并不正确,因为它并不直接控制吞吐量
该控制器用来控制其子节点的执行的频率,有两种模式

  • 执行百分比
  • 执行次数
    image

未勾选per user的情况下,假设线程组那里配置循环10次线程数为1 或线程数为10 循环1
百分比那里填写20 则控制器下的子节点只会执行2次
执行次数填写3 则控制器下的子节点只会执行3次

勾选per user时 只有配置为总执行次数才有效,配置百分比无效
而且只有 线程组配置里的每个线程的循环次数>吞吐数时才会生效,每个线程的执行次数为吞吐数
每个线程的循环次数<=吞吐数时,每个线程的执行次数为 线程组配置的的循环次数
线程组那里配置线程数为10

注意:官方提醒,该控制器与其它控制器结合使用,很可能会变得非常复杂,但如果结合运用用得比较好,也能也非常好的效果

个人认为,无论什么控制器,尤其是控制执行频率的控制器结合在在一起使用,都很可能变得异常复杂,产生一个意外的效果

1.1 示例

例1
image
image
image
例2
image
image
例3
image
image
结果
image
例4
image
image
结果
image

2 事务控制器

image

事务控制器的作用:自行生成一个代表该控制器的sampler,以便统计其子节点(默认只会统计其子节点中所有sampler)在执行时所花费的总时间


image
image
查看聚合报告
image
结果数
image

注意:报告中控制器所代表的总数据是可能大于其子节点的数据总和的
关于食物控制器的选项
Generate Parent Sample:选中的话 ,控制器所生成的sampler会作为父节点,在结果树中,控制器和其子节点会按照层级嵌套显示,在聚合报告等其他监听器中,只会显示控制器生成的sampler所代表的总的数据,不会显示子节点的数据。 未选中的话,就像上面示例样,控制器与其子节点会平行显示出来

Include duration of timer and pre-post processors in generated sample:
勾选的话,控制器所代表的sampler会包含其子节点中定时器、预处理器与后置处理器所执行的时间。不勾选的话就是默认统计子节点中所有sampler所执行的时间

勾选Generate Parent Sample后监听器的变化
image
image

3 运行时间控制器

image

3.1 例子

3.1.1 例1

image
image
image

由上可知,在配置时间内,该控制器会让子节点重复运行,有点像循环控制器,循环控制器是通过控制次数,而它则是控制时间

3.1.2 例2

运行时间配置成0
image

由上可知 时间为0时,控制器下的节点根本为执行

4 while控制器

image
类似编程语言中的while判断与循环,会一直运行其子节点
条件输入框有种可填

  • 空白(不填):控制器子节点最后一个sampler失败时推出循环
  • LAST:有和空白一样的效果,除此外,进入循环前的最后一个sampler失败时也不会进入循环
  • 计算结果为False的任何变量与函数:计算结果为False时推出或不进入循环

注意:所谓失败,指代断言失败或者请求不成功导致的失败

4.1 例子

4.1.1 例1

image
image
image

如上,控制器子节点的最后一个sampler失败后就会退出循环
上面如果把百度3和百度4调换一下位置,则百度2 3 4就会一直循环执行下去

4.1.2 例2

image
image
image
image
image
image
结果
image
可以看到while循环器下的节点并未执行

4.1.3 例3

把之前例2稍微改下
刚开始loop定义为False
image
在 while之前的sample的后置处理器中 把loop改为True
image
在循环器下的第2个sampler的后置处理器中再次把loop改为False
image
在下面一个sampler的名称中加上变量或者加一个debug sampler判断之前beanshell处理是否正确
image
结果
image

可以看到,在while循环中 并不是判断条件变为False后就马上推出循环,而是再次回到循环判断时来判断是否推出循环

标签:控制器,执行,逻辑,循环,线程,sampler,Jmeter,节点
From: https://www.cnblogs.com/MyRecords/p/17985112

相关文章

  • 注册和登录后端逻辑
    注册逻辑:用户在前端输入账户和密码、以及校验码(todo)校验用户的账户、密码、校验密码,是否符合要求非空账户长度不小于4位密码就不小于8位账户不能重复账户不包含特殊字符密码和校验密码相同对密码进行加密(密码千万不要直接以明文存储到数据库中)向数据库插入用户数......
  • Odoo 15开发手册第八章 业务逻辑 - 业务流程的支持
    在前面的文章中,我们学习了如何使用模型层构建应用数据结构,然后使用ORMAPI和记录集查看和操作这些数据。本章中,我们把前面所学串到一起实现一些应用中常见的逻辑模式。我们会学习一起触发业务逻辑的方式,以及支撑这些方式的一些常见模式。我们还将学习一些重要的开发技巧,如打日志、......
  • 在springboot中controller控制器的crud语句@RequestBody遗落的报错
    在进行java练习的过程中,对一个单链表进行增删改查时发现了如下错误:对编译器的控制台进行检查之后,发现了报错语句如下:2024-01-2619:43:52.551ERROR18544---[p-nio-80-exec-5]o.a.c.c.C.[.[.[/].[dispatcherServlet]:Servlet.service()forservlet[dispatcherSe......
  • Jmeter 之常数吞吐量作用
    一  添加方法:线程组右键->添加->定时器->常数吞吐量定时器二作用:常数吞吐量定时器的作用:设置最大的吞吐量不超过设置的值注意:如果线程能发送的请求远远低于设置的最大值,那么这个最大值不会发挥作用 三基于计算吞吐量:是指控制吞吐量的对象,主要使用3类:......
  • jmeter 将response body内容全部导出并保存到文件
    1.使用正则表达式,获取response内容2.使用beanshell后置处理器处理并保存数据脚本:importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importorg.apache.jmeter.samplers.SampleResult;Stringseq=vars.get("seq");//使用变量获取正则......
  • jmeter 用命令执行jmx脚本
    前提:环境变量需要配置 cmd命令模式下,可以输入命令 jmeter-n-tD:\jmeterplan\meter.jmx-lD:\result\meter.jtl-e-oD:\jmeterplan\result ......
  • Jmeter 的 jar 包开发环境搭建
       配置maven环境:1、下载地址:https://maven.apache.org/download.cgiwindows环境下载下面这个: 解压下载完的文件 2、编辑系统变量win+r键,输入sysdm.cpl回车,打开环境变量设置页面,1)新建一个:MAVEN_HOME值输入:D:\apache-maven-3.9.62)编辑path变量,在path值的最......
  • Jmeter json断言的使用
    1添加方式:取样器右键->添加->断言->JSON断言作用:使用JSON表达式提取实际数据与预期进行比较 2首先我们来了解下断言组件的各个功能:AssetJSONPathexists:JSON表达式Additionallyassertvalue:增加断言的预期数据Matchasregularexpression:允许......
  • 逻辑门
    与&and 或|or 非~not 异或^xor相异为1,相同为0同或~^或者^~xnor相同为1,相异为0逻辑或||  逻辑与&&  与非 nand 或非 nor  ......
  • 【Jmeter工具】七、配置元件
    概念配置元件作用:设置相关请求的静态数据配置,为取样器设置默认值和变量,不用每次都重复配置。如进行参数化设置、存储服务器的响应信息、设置默认值、初始化设置等。配置元件在Jmeter执行过程中,在相同作用域下会被最先执行。Jmeter各个元件的执行顺序为:配置元件->前置处理器->定......