Jmeter 逻辑控制器


目标

  • 了解-Jmeter中逻辑控制器
  • 掌握-If Controller(IF控制器)使用
  • 掌握-ForEach控制器使用
  • 掌握-循环控制器

1 为什么要学习逻辑控制器?

1.1 需求

1. name=['百度','京东','淘宝']
2. name=百度,线程组执行请求百度;name=京东,线程组执行请求京东;name=淘宝,线程组执行请求淘宝;

1.2 问题

1. Jmeter目前学习的知识无法使用判断语句去控制HTTP取样器

2. 什么是逻辑控制器?

概念:Jmeter逻辑控制器是可以控制采样器(Sampler)的执行顺序,它由多个逻辑控制语句封装成不同功能的组件组成

2.1 逻辑控制器作用域

作用域:只对其子节点的sampler有效。

3. 常用逻辑控制器

1. 如果(If)控制器
2. ForEach控制器
3. 循环控制器

3.1 如果(If)控制器

作用:条件成真,则执行控制器下所有取样器

解决方案分析

1. 测试计划->线程组
1. 测试计划->用户自定义变量
2. 线程组->如果(If)控制器
3. 如果(If)控制器->HTTP请求
4. 测试计划-察看结果树

技术难点分析

如果(If)控制器 参数设置

如果(If)控制器参数配置图

if控制器

1. 条件:"${name}"=="百度"
2. 注意:
    1) 引用变量格式${name}需要被双引号括起来
    2) 两个等号
    3) 值需要被双引号括起来 

如果(If)控制器-总结

1. 作用
2. 作用域
3. 条件格式

3.2 ForEach控制器

作用:ForEach控制器一般和用户定义的变量一起使用,在用户自定义变量中读取一系列相关的变量。

案例1

使用ForEach组件读取自定义变量,作为请求(查询学院-所有)的user变量值使用

操作分析

1. 测试计划->线程组
2. 线程组->用户定义的变量
3. 线程组->ForEach控制器
4. ForEach控制器->HTTP请求
5. 测试计划->察看结果树

技术难点分析

1. ForEach控制器参数设置
2. 用户定义的变量书写格式(前缀+_+数字)

ForEach控制器参数配置图

ForEach控制器

1. 输入前缀变量:输入要遍历变量前缀
2. Start index for loop(exclusive):遍历变量开始的索引(从0开始)
3. End index for loop(inclusive):遍历变量结束的索引(不包括结束索引)
4. 输出变量名称:定义要被引用的变量名称

ForEach控制器-总结

1. 作用
2. 使用ForEach读取用户定义的变量时,变量格式
3. ForEach参数设置

3.3 循环控制器

作用:指定循环控制器内取样器的执行次数

案例3

使用循环控制器执行(查询学院-所有)接口10次

操作步骤分析

1. 测试计划->线程组
2. 线程组->循环控制器
3. 循环控制器->HTTP请求(查询学院-所有)
4. 测试计划->察看结果树

循环控制器配置图

循环控制器

1. 循环次数:要执行的次数

循环控制器-总结

1. 作用

4. 逻辑控制器-总结

1. 如果(If)控制器
2. ForEach控制器
3. 循环控制器