news 2026/5/14 6:41:50

【性能测试】11_JMeter _JMeter逻辑控制器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【性能测试】11_JMeter _JMeter逻辑控制器

文章目录

  • 一、逻辑控制器
    • 1.1 常用的逻辑控制器
  • 二、If控制器
    • 2.1 案例
    • 2.2 操作步骤
  • 三、循环控制器
    • 3.1 案例
    • 3.2 操作步骤
    • 3.3 思考
    • 3.4 仅一次控制器
  • 四、事务控制器
  • 五、ForEach控制器
    • 5.1 场景
    • 5.2 操作步骤
    • 5.3 进阶案例(与正则配合使用)
  • 六、总结

一、逻辑控制器

逻辑控制器可以按照设定的逻辑控制取样器的执行顺序。

作用:通过判断,执行分支、或者循环,改变脚本执行流程

1.1 常用的逻辑控制器

  • 如果(If) 控制器——分支
  • 循环控制器——for循环
  • ForEach控制器——for xxx in
  • 事务控制器

二、If控制器

If控制器用来控制它下面的测试元素是否运行。

添加方式: 测试计划 --> 线程组–> (右键添加) 逻辑控制器 --> 如果(If) 控制器

2.1 案例

需求:使用“用户定义的变量”定义一个变量name, name的值可以是‘baidu’或‘itcast’,根据name的变量值实现对应网站的访问。

www.baidu.com www.itcast.com

2.2 操作步骤

1、测试计划中有“用户定义的变量”—>添加 线程组

2、添加If控制器, 判断name是否等于 —> 添加HTTP请求, 用来访问itcast

3、添加If控制器, 判断name是否等于baidu —>添加HTTP请求, 用来访问百度.

4、添加查看结果树

三、循环控制器

通过设置循环次数, 来实现循环发送请求。

添加方式: 测试计划 --> 线程组–> (右键添加) 逻辑控制器 --> 循环控制器

3.1 案例

需求:循环访问百度10次

3.2 操作步骤

1、添加线程组

2、添加循环控制器—>添加HTTP请求

3、添加查看结果树

3.3 思考

1、线程组属性可以控制循环次数, 那么循环控制器有什么用?

线程组属性控制组内所有取样器的执行次数, 而循环控制器可以控制组内部分取样器的循环次数, 后者控制精度更高

2、循环控制器与线程组中的循环次数的对比 :

  • 循环控制器只控制其子节点下的HTTP请求,线程组对所有的请求都有效。
  • 假如线程组循环次数为2,循环控制器次数为3,则循环控制器下的请求执行次数为:2*3

3.4 仅一次控制器

仅一次控制器 不受 当前线程组循环控制次数影响。

四、事务控制器

  • 事务对应一个系统中的业务。因此,一个事务中可以有一个请求,也可以包含多个请求。

  • 当需要将多个请求,当成一个业务看待时,需要事务控制器。如:下单业务—登录、搜索、下单、支付。

  • 但是在多数测试中,一般一个请求对应一个业务。

五、ForEach控制器

  • ForEach控制器一般和用户自定义变量或者正则表达式提取器一起使用, 其在用户自定义变量或者从正则表达式提取器的返回结果中读取一系列相关的变量。 该控制器下的取样器都会被执行一次或多次, 每次读取不同的变量值。
  • 添加方式: 测试计划 --> 线程组–> (右键添加) 逻辑控制器 --> ForEach控制器

5.1 场景

需求:有一组关键字 [hello,python,测试], 使用用户定义的变量存储它们,要依次取出关键字,交给百度搜索,

例如: https://www.baidu.com/s?wd=hello

应用场景:需要对一组数据中的每个变量遍历提取时,可以使用在ForEach控制器。

5.2 操作步骤

1、测试计划 --> 线程组–> (右键添加) 配置元件 --> 用户定义的变量。(参数名:固定前缀 + 连续的数字后缀 )

2、添加 ForEach控制器,并配置参数

3、在ForEach控制器下方添加HTTP请求,并引用ForEach读取的数据${kw}

4、添加查看结果树

5.3 进阶案例(与正则配合使用)

需求:访问首页http://www.itcast.cn, 获取各校区名,并依次取出交给baidu做关键字搜索。

例如: https://www.baidu.com/s?wd=地址1

1、添加HTTP请求-itcast

2、在HTTP请求下,添加正则表达式提取器,提取出itcast响应中所有的地址相关的数据,并保存为参数school(列表数据)

3、添加ForEach控制器,循环提取school 列表中的每一个校区信息。

4、在ForEach控制器下添加一个HTTP请求-百度,引用ForEach控制器中定义的变量${city},作为参数。

5、添加查看结果树。

六、总结

HTTP请求 都是 放在逻辑控制器的子级上。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 17:02:57

结构化输出怎么做?OpenCSG公益课实战

由特许全球金融科技师CGFT认证项目(Chartered Global FinTech) 、模速空间与OpenCSG(开放传神)联合推出《普通人的AI掘金课——6天学会,马上能用》系列直播课程,提供了一个非常工程化的视角:当AI参与到“可…

作者头像 李华
网站建设 2026/5/7 6:25:25

2026版Java面试题库及答案解析

今年的行情,让招聘面试变得雪上加霜。已经有不少大厂,如腾讯、字节跳动的招聘名额明显减少,面试门槛却一再拔高,如果不用心准备,很可能就被面试官怼得哑口无言,甚至失去了难得的机会。 现如今,…

作者头像 李华
网站建设 2026/5/6 2:22:25

计算机毕业设计springboot网络云盘系统的设计与实现 基于Spring Boot框架的网络云存储系统开发与实现 Spring Boot驱动的网络云盘系统设计与开发实践

计算机毕业设计springboot网络云盘系统的设计与实现_10f66(配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着信息技术的飞速发展,网络云盘系统已成为现代信息管理的…

作者头像 李华
网站建设 2026/5/2 11:42:04

疆鸿智能ETHERCAT从站转DEVICENET主站详细解读,建议点赞收藏术语

疆鸿智能ETHERCAT从站转DEVICENET主站详细解读,建议点赞收藏 术语 DeviceNet:DeviceNet是ODVA推出基于CAN的一种通讯规范 EtherCAT:EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场…

作者头像 李华
网站建设 2026/5/3 7:12:50

A5E00878652(西门子)SINAMICS Powerblock核心特性与应用

A5E00878652是西门子SINAMICS系列专用Powerblock功率模块,专为中小功率变频驱动场景设计,作为核心动力转换单元,聚焦电能高效变流、电机精准调速与工业级稳定运行,广泛应用于小型风机水泵、包装机械、暖通空调及OEM自动化设备&…

作者头像 李华
网站建设 2026/5/5 13:30:44

2026年轨道轴承市场报告:行业现状、驱动因素与未来发展趋势深度解析

轨道轴承,又称铁路轴承或轨道交通专用滚动轴承,主要用于支撑车轴并减少轮轨之间的摩擦阻力。与普通工业轴承相比,轨道轴承需承受更高的载荷、更频繁的冲击以及极端温差环境,因此对材料强度、密封性、润滑性能和疲劳寿命有严苛要求…

作者头像 李华