JMeter之事务控制器实践

ForEach Controller(循环控制器)

组件使用说明

ForEach Controller(循环控制器)

选项说明:

①需要循环遍历名称(name);
②循环变量的下标起点(name_0);
③循环变量的下标终点(name_4);
④引用变量名称定义;
⑤在变量后加_(name_);

实现逻辑说明:

①就是分别循环取name_0到name_4变量对应的值;
②然后通过引用变量test实现值的传递;

示例:

1、线程组设置

ForEach Controller(循环控制器)

2、用户变量定义

ForEach Controller(循环控制器)

3、ForEach Controller配置

ForEach Controller(循环控制器)

说明:

①下标的起始值是从0开始的
②下标的终止值是(n-1)

4、Java调试

ForEach Controller(循环控制器)

5、执行结果分析

ForEach Controller(循环控制器)

说明:

①通过结果可以知道,同一个请求,执行了4次,分别使用不同的值。

Runtime Controller(控制器)

组件使用说明

Runtime Controller(控制器)

说明:

①用于控制runtime controller控制器下的组件的执行时长;
②Runtime(seconds)单位为秒;
③Runtime(seconds)值为0时,下面的组件不执行;

示例

1、线程及用户变量配置

Runtime Controller(控制器)

Runtime Controller(控制器)

2、Runtime Controller配置

Runtime Controller(控制器)

说明:

①配置为6秒;

3、Java调试

Runtime Controller(控制器)

4、执行结果分析

Runtime Controller(控制器)

说明:

①执行耗时为6秒;
②在6秒的时间内,其下的组件执行多次。

Switch Controller(控制器)

Switch Controller 条件控制器,和高级语言Java中的Switch逻辑控制语句使用原理相同,当我们业务流程有多个分支时,我们只执行满足场景的请求及组合,用接口自动化应该怎么来实现呢?

要实现以上的需求,可以使用Switch Controller控制器,下面介绍具体的使用方法

Switch Controller(控制器)

说明:

①Swith value:其控制下元件的匹配值;

示例:

1、用户变量

Switch Controller(控制器)

2、Swith Controller配置

Switch Controller(控制器)

说明:

①执行指标为3的请求;

Switch Controller(控制器)

②Switch Controller 下的请求编号是从0开始的计算的,不是从1开始的,这点需特别注意;

Switch Controller(控制器)

说明:

①预期是执行test-4,结果是40。查看执行结果是否匹配。

3、执行结果分析

Switch Controller(控制器)

说明:

①实际结果与预期结果一致。

While Controller(控制器)

组件使用说明

While Controller(控制器)

①While Controller会一直运行,直到条件(Condition)为false;
②Condition的可能值如下:

  • 为空(不输入任何值) -- 直到某次sample执行失败才会退出循环;
  • LAST -- 直到最后一个sample请求失败,才会退出循环;
  • 其它 -- 条件值等同于字符串"false"(等同于输入框中输入false)时,退出循环;

示例:

1、用户变量定义

While Controller(控制器)

2、While Controller配置

While Controller(控制器)

说明:

① Condition为空,直到其组件下的请求有失败的,则退出。

3、java调试

While Controller(控制器)

4、执行结果分析

While Controller(控制器)

说明:

没有失败的请求时,其下的组件会一直执行。

Interleave Controller(控制器)

组件使用说明

Interleave Controller(控制器)

说明:

① 忽略子控制模块:如果勾选,则将子控制器作为一个请求,只执行一次(如下面有 上面提到的While Controller,里面只会执行一次下面样例)。如果不勾选,则子控制器中样例都执行。
② 用途:该组件的请求交换执行。

示例:

1、线程组配置

Interleave Controller(控制器)

说明:

①一个线程执行3次。

2、 用户自定义变量

Interleave Controller(控制器)

3、Interleave Controller配置

Interleave Controller(控制器)

Interleave Controller(控制器)

4、执行结果分析

Interleave Controller(控制器)

说明:

从结果可以看到,交换控制器的请求执行了3次,每次执行的请求都不同。

在新版JMeter中该控制器,还有个选项:

Interleave across threads 跨线程交替。选中此项,则交替控制器下的请求将应用至所有线程和循环中迭代。

示例

1、当勾选上此项,线程组配置

Interleave Controller(控制器)

说明:线程数配置为3。

2、执行结果分析

Interleave Controller(控制器)

说明:从结果中看到,线程间也进行了交替;与前面单线程执行3次的结果一致。

Once Only Controller(控制器)

原理:此控制器下的组件只会运行一次,如把登陆放到该组件下。

Once Only Controller(控制器)

示例:

1、线程组配置

Once Only Controller(控制器)

说明:

①一个线程,循环3次;

2、用户变量定义

Once Only Controller(控制器)

3、once only controller

Once Only Controller(控制器)

4、执行结果分析

Once Only Controller(控制器)

说明:

①可以看到仅一次控制器下的组件,执行了一次,和预期相符。

If Controller(控制器)

原理:通过条件来判断该组件的请求是否执行:满足条件就执行,即返回True;不满足条件就不执行。

If Controller(控制器)

说明:

①输入判断条件,可以填写变量;
②interpret conditon as Variable Expression?:勾选此项时,使用表达式判断。如:

If Controller(控制器)

示例:

1、线程配置

If Controller(控制器)

2、用户变量定义

If Controller(控制器)

3、if controller配置

If Controller(控制器)

说明:

表达式做为判断条件;

If Controller(控制器)

说明:

变量做为判断条件;

4、执行结果分析

If Controller(控制器)

说明:

判断条件为True,该组件下的请求被执行。

待大家的实践

随机控制器:随机控制器下的请求是随机的,即请求随机执行,所有请求不一定都会执行。
随机顺序控制器:控制下的所有请求都执行,只是顺序是随机的。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值