Jmeter基础011----组件之逻辑控制器(重点)

一、逻辑控制器概述

1、概述

      逻辑控制器可以控制其下取样器何时执行以及执行的顺序,类似于计算机语言的流程控制语句,流程控制就是控制代码的执行顺序(分支+循环)。逻辑控制器自身的执行顺序是按位置顺序执行。

2、分类

简单控制器:最简单的逻辑控制器,他没有额外的功能,只是一个容器的功能,存放取样器等等原件。

分支控制器----if控制器:条件满足时,才执行控制器下的元件。

往复控制器---- forEach控制器、循环控制器:循环执行。

事务控制器:将控制器下的所有取样器作为一个事物统计、分析。

交替控制器:每次选取一个取样器执行。

二、逻辑控制器之if控制器

1、需求

      测试计划中三个http请求分别访问百度、淘宝和京东不是无差异的都执行,而是有选择性的执行,定义一个用户定义的变量,如果值是百度,就访问百度,是淘宝就访问淘宝,是京东就访问京东。

2、实现思想:

  • 搭框架(测试计划,线程组, 结果树)
  • 添加组件用户定义的变量,存储变量值为百度、淘宝或京东
  • 添加一个分支组件----if控制器,有选择性的执行http请求。if控制器的编写条件格式为:“${变量名)"==“指定值”
  • 查看结果:符合条件的执行,不符合条件不执行

3、具体实现

(1)搭框架(测试计划,线程组, 结果树),并添加用户定义的变量组件,添加变量,如下图所示:

(2)线程组右键----添加----逻辑控制器----如果(if)控制器,编辑if控制器条件,如下图所示:

(3)在if控制器下创建HTTP请求,如下图所示:

(4)运行测试计划,查看结果树。满足if控制器的条件则运行,否则不予运行,如下图所示:

 

二、逻辑控制器之循环控制器

1、需求

    循环查询所有学院信息10次。

2、思考题

   线程组属性可以控制循环次数,那么循环控制器有什么用?-----------循环控制器更灵活,线程组循环是组内所有请求都循环执行,循环控制器可以只是让组内指定的请求循环。

3、实现思想:

  • 搭框架(测试计划,线程组, 结果树),设置线程组的循环次数为1
  • 添加一个分支组件----循环控制器,设置循环次数
  • 在循环控制器下创建HTTP请求,运行测试计划,按照循环次数循环执行HTTP请求。

4、具体实现

(1)搭框架(测试计划,线程组, 结果树),设置线程组的循环次数为1,如下图所示:

 

(2)线程组右键----添加----逻辑控制器----循环控制器,设置循环控制器循环次数,如下图所示:

 

(3)在循环控制器下创建HTTP请求,如下图所示:

 

(4)运行测试计划,查看结果树。按照循环次数循环执行HTTP请求,如下图所示:

 

三、逻辑控制器之forEach控制器

1、需求

   有一组关键字[hello.python,测试]要依次取出,并在百度搜索

2、实现思想:

  • 搭框架(测试计划,线程组, 结果树,设置线程组的循环次数为1
  • 创建用户定义的变量组件,存储一组数据。数据规则:同一变量前缀_编号
  • 添加一个分支组件----forEach控制器,遍历步骤2中的数据,将数据设置进http请求。注意:索引是左闭右开的
  • 查看结果:百度遍历搜索用户定义的变量中的一组数据

3、具体实现

(1)搭框架(测试计划,线程组, 结果树),并添加用户定义的变量组件,添加一组变量,如下图所示:

 

(2)线程组右键----添加----逻辑控制器----forEach控制器,输入变量前缀和索引,如下图所示:

 

(3)在forEach控制器下创建HTTP请求,如下图所示:

 

(4)运行测试计划,查看结果树。百度遍历搜索用户定义的变量中的一组数据,如下图所示:

 

三、总结

1、概述

  控制取样器的执行顺序(分支+循环)的组件,为了实现多样的业务逻辑

2、控制器

  • 分支:if控制器
  • forEach控制器:遍历(迭代)一组数据。规则:前缀_阿拉伯数字;迭代:索引----左闭右开
  • 循环控制器:设置循环次数
原文地址:https://www.cnblogs.com/geqiandeqingmu/p/13088516.html