news 2026/4/18 7:05:30

【性能测试】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/4/18 6:28:11

贵州省考报名今天开始!详细报名流程秒懂

贵州的考公人集合啦!2026贵州省考报名通道已经正式开启🔛 从照片调整到选岗缴费,我把全流程都给你们整理好啦👇⏰ 关键时间节点 ✅ 报名时间:1月19日9:00—1月23日 ✅ 初审时间:1月19日—1月25日 ✅ 缴费时…

作者头像 李华
网站建设 2026/4/18 3:28:08

配电不透明,管理就无从谈起,这正是很多企业大楼的现状

安科瑞刘鸿鹏172 一 ⑥⑨⑦② 一 5322在企业大楼的配电系统中,用电规模不断扩大、负载类型日趋复杂,传统断路器“只分合、不感知”的局限性正逐渐显现。运维人员往往只能在故障发生后被动处理,缺乏对回路运行状态的持续掌握,这不仅…

作者头像 李华
网站建设 2026/4/18 6:26:03

C++(C++17/20)最佳工厂写法和SLAM应用综合示例

现代 C&#xff08;C17/20&#xff09;下的最佳工厂写法一、现代 C 工厂设计的基本原则 在 C17/20 下&#xff0c;好的工厂写法通常满足&#xff1a;RAII 明确所有权 返回 std::unique_ptr<T> 为默认无 switch / 无 RTTI支持扩展而不修改&#xff08;OCP&#xff09;构造…

作者头像 李华
网站建设 2026/4/18 8:09:35

一次分析变批量生产:OpenCSG公益课方法

由特许全球金融科技师CGFT认证项目&#xff08;Chartered Global FinTech) 、模速空间与OpenCSG&#xff08;开放传神&#xff09;联合推出《普通人的AI掘金课——6天学会&#xff0c;马上能用》系列直播课程&#xff0c;最实用的一点是&#xff1a;它不把AI当“灵感工具”&…

作者头像 李华
网站建设 2026/4/18 7:57:20

【量化基础】数据驱动决策:从零接入StockTV实时行情API

【量化基础】数据驱动决策&#xff1a;从零接入StockTV实时行情API 在算法主导交易的今天&#xff0c;数据质量直接决定了策略的生死。本文将从量化基础切入&#xff0c;手把手教你如何用Python对接专业级数据源StockTV&#xff0c;为你的策略注入毫秒级竞争力。 一、量化交易的…

作者头像 李华
网站建设 2026/4/18 8:16:36

突破C2Q瓶颈,MLGO微算法科技高性能可重构计算机实现量子算法真实级仿真,推动量子仿真进入新阶段

在量子计算技术快速发展的当下&#xff0c;如何以现实可行的方式进行量子算法的验证与评估&#xff0c;成为产业界与科研界共同面临的重要挑战。量子硬件虽然已进入噪声中型量子&#xff08;NISQ&#xff09;阶段&#xff0c;但其量子比特数量、纠缠深度和抗噪性能依然受到严苛…

作者头像 李华