jmeter 逻辑控制器之 include controller

发布时间 2024-01-03 13:32:38作者: 苹果芒

一、认识 Include Controller

Include Controller :译为包含控制器,用来添加 Test Fragment(测试片段)。具体是什么意思呢,我们先来了解下 Test Fragment(测试片段)。

1、理解 Test Fragment(测试片段)

如下是创建一个 Test Fragment。

 

创建成功后,发现 Test Fragment 与线程组 处于同一个层级,而且默认是不启用的。如下图:

可以看到 Test Fragment 的设置界面除了名称和注释,没有其他设置项,那么它到底是干嘛用呢。选中 Test Fragment ,点击 Jmeter 菜单上的帮助(有问号的书图标),查看官方解释。

可知,Test Fragment 需要与 include Controller或者Module Controller配合使用,Test Fragment  作为一个测试片段 被引入。具体的我们来看看与  include Controller 的使用吧。

 

2、认识  Include Controller 

线程组下 添加 Include Controller ,

  设置界面如下,只有一个文件名设置项。

  既然要引入 测试计划文件,那么我们就先来创建一个单独的测试计划吧。

二、Include Controller 配合 Test Fragment 的使用

1、先创建一个单独的带有Test Fragment 的测试计划,并保存起来,如下:

 

2、在 include 控制中引入该 测试计划

 

  执行结果:

 到这里,大家应该理解了  Include Controller 和  Test Fragment 了吧。

我的理解就是,Test Fragment 相当于一个独立的部分,可以被其他jmx测试计划引用,实现了 样例的片段化,模块化,遇到重复需要的,比如登录、注册之类的,就可以用Test Fragment 和 Include Controller 了。

这里是包含有测试片段的jmx文件:

 这里是包含有include controller的正常的普通线程组的jmx文件:

执行结果:

 

 

1) Include controller控制器和Http sample的执行顺序是:谁放在前面,谁就先执行!

2)在线程组中的Http sample中还可以引用 Include控制器引入的那个jmx文件中的变量。

3)线程组中的beanshell 后置处理器因为是全局的,所以在每个http sample执行后 都会被执行一次。这里就会被执行3次。其中有2次是”Include控制器引入的那个jmx文件中的http sample执行后自动被窒执行的2次“,还有一次是上图中的http sample执行后自动被执行的1次。

4)如果测试片段的jmx中有多个片段,那么在include controller引用的jmx文件执行时,默认就只能调用到第一个测试片段。