事务控制器就是指一组接口的集合,事务控制器下可以是单个接口,也可以是多个接口的混合场景。当我们希望将某几个接口的组合作为一个整体去测试它的处理能力的时候就需要用到事务控制器。
在线程组下创建一个逻辑控制器》事务控制器
其中name就是给事务控制器取一个名称,下方两个复选框先不选,后面再解释
在这个事务控制器下增加一个固定定时器和两个beanshell sampler,分别都是将线程等待1秒
增加监听器聚合报告和查看结果树,将线程组线程数设置为10,运行
可以看到结果树和聚合报告中都增加了一个sample名为Transaction Controller,聚合报告中事务控制器的Average响应时间为2000ms,很显然是它下面两个取样器的响应时间之和,但是没有包括定时器的时间,但是在最后计算Throughput时值为1.1,表示每秒处理的事务数(包括其下所有的子项)为1.1个,这个值是怎么计算的?总的事务数是10个,所有事务执行完毕的时间是9秒(这个值可以从右上角的时间看到),那么10/9=1.1,很显然这个值是包含定时器的时间的。
再勾上Generate parent sample这个选项,看下效果
这时候结果树中以嵌套的方式显示,
聚合报告中也只显示了事务控制器的数据
同时在勾选"Include duration of timer and pre-post processors in generated sample" ,包括定时器和前置后置处理器的时间
可以看到聚合报告中average这项值变了,从2000变成了8000,很显然包含了定时器的时间,可能还会疑问定时器3000,取样器各1000,不应该是3000+1000+1000=5000吗?
复习下固定定时器,看下查看结果树中的显示,事务开始时间是第16秒,整个事务的加载时间是8秒
事务开始后执行第一个sample的时间是第19秒,也就是先执行了定时器3秒才执行
执行第二个sample的时间是23秒,也就是执行下一个sample之前又执行了一次定时器
所以定时器会作用于每个取样器之前执行,整个事务的时间应该3000+1000+3000+1000=8000
想更深入了解constant time,请参考
Jmeter书中不会教你的(57)——固定定时器constant timer_agrapea的博客-CSDN博客