一、逻辑控制器概述
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控制器:遍历(迭代)一组数据。规则:前缀_阿拉伯数字;迭代:索引----左闭右开
- 循环控制器:设置循环次数