当前位置: 首页 > news >正文

【性能测试】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请求 都是 放在逻辑控制器的子级上。

http://www.jsqmd.com/news/269305/

相关文章:

  • 提示工程架构师如何用“社群”做技术调研?2个方法帮你快速获取需求
  • SSM学生信息管理系统ow05a(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • CSGHub vs HuggingFace:企业 AI 选型关键抉择,数据主权与开源创新如何两全?
  • 学长亲荐10个一键生成论文工具,专科生毕业论文轻松搞定!
  • 【心率检测】基于加速度计的呼吸速率和心率检测Matlab仿真和报告
  • 计算机毕业设计springboot疫情期间高校员工管理系统 基于Springboot框架的高校教职工疫情管理信息化系统 疫情防控期间高校人员管理系统的Springboot实现
  • 把采集系统装进容器之后,我们到底引入了什么风险
  • SSM学生选课系统xvbna(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
  • Java实现多Cron定时任务调度
  • 【结构优化】基于平衡进化人工蜂群BE-ABC算法求解蛋白质结构优化附matlab代码
  • 1.19。
  • 工业级边缘计算网关的热设计与可靠性保障:以ARM架构为例
  • Notation 英文单词学习
  • CPU 中的算术逻辑单元(ALU)的 状态标志
  • POF|西工大廖晖、刘溢浪等:数据驱动的湍流建模:基于符号回归与数据同化的双向耦合框架
  • 外文文献检索网站使用指南与资源获取方法
  • 流量困局下的破局之道:“推三返一”模式开启私域增长新引擎
  • C++(C++17/20)最佳工厂写法和SLAM应用综合示例
  • 如何高效使用论文搜索网站获取学术资源
  • POF|清华大学张宇飞团队:采用数据驱动湍流模型的三维增升装置模拟
  • 配电不透明,管理就无从谈起,这正是很多企业大楼的现状
  • ❿⁄₁₄ ⟦ OSCP ⬖ 研记 ⟧ 密码攻击实践 ➱ 传递Net-NTLMv2哈希
  • UL 认证光伏电表如何满足北美逆变器并网要求?
  • 企业级光储充电站能量协调控制系统的设计与应用
  • 2026版Java面试题库及答案解析
  • MATLAB 神经网络从入门到实战:零基础教程
  • Java多线程编程:使用场景与实现详解
  • 疆鸿智能ETHERCAT从站转DEVICENET主站详细解读,建议点赞收藏术语
  • 读懂价格背后的语言:如何用速卖通价格历史图表,预判市场趋势与库存风险
  • 免费查文献的网站推荐:实用且可靠的文献查询平台汇总