一、认识 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文件执行时,默认就只能调用到第一个测试片段。