JMeter—逻辑控制器

JMeter逻辑控制器

JMeter逻辑控制器可以对元件的执行逻辑进行控制,除仅一次控制器外,其他可以嵌套别的种类的逻辑控制器 

一、ForEach控制器

  定义一个循环规则,关键参数说明:

  输入变量前缀:可以在"用户自定义的变量"中定义一组变量,控制器可以从中获取到变量对应的值,然后作为循环控制器的循环条件,还可以输出变量作为取样器的参数

    Start index for loop:循环变量下标起点

    End index for loop:循环变量下标终点

    输出变量名称:循环控制器生成的变量名称

    Add ""before number?:变量前缀是否加""作为分隔符

  实现步骤如下:

    1、新建一个线程组,然后新建一个http请求,访问http://jmeter.apache.org/demos/,Meter官网提供的脚本 

    2、使用正则表达是提取步骤1访问页面中的所有链接

    3、添加一个ForEach 控制器,添加参数,start和end index for loop参数可以不填,不填就默认执行变量列表中的所有元素 

    4、在ForEach 控制器中添加http请求,访问由ForEach控制器传递的参数  

    5、在http请求下添加监控器-察看结果树。执行脚本,结果如下  

二、简单控制器

  用来制定了一个执行单元,他不改变元件的执行顺序,在他下面还可以嵌套其他控制器。简单控制器的属性只有名称和注释

三、Include Controller

  用来导入外部的测试片段(非完整的测试计划),在执行时会执行导入的测试计划。但是被导入的测试计划有特殊要求,它不能有线程组,只能包含简单控制器及控制器下的元件。简单的说就是相当于家了一个执行单元,一个封装了的业务操作单元,类似我们程序开发中的函数一样。

  文件名参数:必填项,如果没有会报错

四、Runtime Controller

  用来控制其子元件的执行时长,单位为秒

  Runtime(seconds):默认为1,去掉1则默认为0,此时不执行其节点下的元件

五、Switch Controller

  类似于高级语言中的Switch逻辑控制语句。

  Switch Value:匹配值,可以为数字,也可以为字符。为字符时匹配取样器名称,如果匹配不上就会默认并找取样器名称为default的取样器,如果没有则不运行。如果为数字则从switch控制器下的第一个取样器为0,第二个为1依次算起

六、While Controller

  While条件控制器,其节点下的元件将一直运行知道While条件为false  

  Condition:接受变量表达式与变量。如图当inputUrl=7时,则inputUrl小于7的会一直运行  

七、交替控制器

  节点下的取样器交替执行。

  Ignore sub-controller blocks:忽略子控制器,即子控制器失效,由交替控制器接管

八、仅一次控制器

  控制器下的子元件只运行一次,即使将仅一次控制器放在循环控制器下面,也只运行一次

九、吞吐量控制器

  用来控制其下元件的执行次数,并无控制吞吐量的功能。想要控制吞吐量可以使用Constant Throughput Timer

  Percent Executions:按执行次数的百分比来计算执行次数,此时Throughput取值是0~100。Per User是否勾选对percent executions模式无影响

  Per User:如果选择则按虚拟用户数来计算执行次数。如果不选择则默认执行所有的虚拟用户

  Total Executions:按Througput的值来制定执行次数,小于0则不执行

十、如果(if)控制器

  通过条件判断来控制节点下的元件是否执行

  Condition:判断条件,勾选Interpret Condition as Variable Expression?时condtion使用变量表达式来设置条件

  Evaluate for all children:判断条件是否针对所有的字节的,只在if controller的入口处判断一次

十一、模块控制器

  可以通过模块控制器在当前测试计划中引入新的测试片段(也叫脚本片段,由控制器、取样器及辅助元件构成,鞥能够完成负载的模拟)。模拟控制器也可以引入当前测试计划中的控制器

  Module To Run:下来列表,列出了测试计划及工作台包含的控制器,在此选择引入哪一个脚本片段

十二、随机控制器

  节点下的元件随机执行

十三、随机顺序执行控制器

  节点下的元件随机执行,但是每个元件只执行一次

十四、循环控制器

  控制节点下的元件执行次数。时间节点下的执行次数为线程组设置的循环次数乘循环控制器的次数

  循环次数:要么设置永远,要么填写具体的次数,只能选择一个

十五、录制控制器

  录制时候用的

十六、事务控制器

  事务响应时间是我们衡量业务性能的主要指标,事务控制器可以把其他节点下的取样器执行消耗时间累加在一起,便于统计。同时对每一个取样器的执行时间进行统计。

  如果事务控制器下的取样器有多个,只有当所有的取样器都运行成功,整个事务控制器定义的事物才算成功

    generate parent sample:选择是否生成一个父取样器

    include duration of timer and pre-post processors in generated samle:是否包含定时器,选择将在取样器前与后加上延时


以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

各位想获取资料的朋友请 点赞 + 评论 + 收藏 ,三连!

三连之后我会在评论区挨个私信发给你们~

相关推荐
旧曲重听112 小时前
为什么现在 RAG 越少越少提及了
数据库·程序人生·职场和发展·agent
恣逍信点13 小时前
《凌微经》助读:本体论根基——“无之自悖”与“形性一体”
人工智能·科技·学习·程序人生·生活·交友·哲学
CodeCaptain14 小时前
遐思心智 (01):万古更新,AI在此
人工智能·程序人生·ai
川石课堂软件测试3 天前
性能测试|Nginx中间件监控与调优
linux·python·nginx·中间件·单元测试·压力测试·harmonyos
郝学胜-神的一滴4 天前
CMake 038:OBJECT目标复用编译+Linux动态库版本自动化管理
linux·c++·程序人生·软件工程·软件构建·cmake·工程配置
恣逍信点5 天前
论“无中生有”之元逻辑——《凌微经——对称性共生关系论》随读
人工智能·程序人生·知识图谱·学习方法·业界资讯·交友·哲学
郝学胜-神的一滴5 天前
Qt 高级编程 034:深耕QWidget底层内核—彻底吃透无边框窗口设计核心原理
开发语言·c++·qt·程序人生·软件开发·用户界面
可触的未来,发芽的智生5 天前
发现-认知系统记忆架构工程启示录
数据库·人工智能·python·程序人生·sqlserver
humors2215 天前
问题六问:从认知到行动的思维框架
程序人生