1. Transaction Controller- 把几个Sampler组合在一起,一起计算响应时间等数据
    jmeter-逻辑控制器Controller1.1 参数Generate parent sample
    把组合后的总sample当作父sample放在最上面,其他都是子
    jmeter-逻辑控制器Controllerjmeter-逻辑控制器Controller1.2 参数 Include duration of timer and pre-post processors in generated sample
    如果Transaction Controller下面有Timer或前置、后置处理器的话,如果勾选这个选项,会把这些组件所用的时间也计算进来
    jmeter-逻辑控制器Controller2. If Controller-条件成立时才执行If Controller里面的子Sampler
    定义一个变量wo=‘123’
    jmeter-逻辑控制器ControllerIf Controller配置中如果不选“Interpret Condition as Variable Expression?”, 判断条件用的是js语法。
    比如‘123’==‘123’ 或 ‘${变量名}’==‘值’
    jmeter-逻辑控制器Controller两个sampler都执行了
    jmeter-逻辑控制器Controller
    2.1 参数“Interpret Condition as Variable Expression?” 只判断该变量的值是否为true(大小写都可以)
    jmeter-逻辑控制器Controllerjmeter-逻辑控制器Controllerjmeter-逻辑控制器Controller
    如果wo对于123,不满足条件,Debug Sampler-1不执行
    jmeter-逻辑控制器Controller
    jmeter-逻辑控制器Controller
    2.2 参数 Evaluate for all children?
    如果不勾选这个选项,只在If Controller处判断一下条件,满足就执行里面所有sampler;
    如果勾选这个选项,在If Controller处判断满足条件后,里面每个sampler执行前还都要判断一次

测试计划中设置了wo的值等于true,wo1的值为false
jmeter-逻辑控制器Controller
在Debug Sampler-1下面加了一个ForEach Controller来改变wo的值为false
jmeter-逻辑控制器Controller程序执行到ForEach Controller时wo的值还是true,就把Debug Sampler-2执行了,但这是把wo的值该为false了。
执行到Sampler-3时由于勾选了“ Evaluate for all children?”所以还会再判断wo的值,这是wo已经是false了不满足条件,所以不执行了

  1. Loop Controller-控制执行几次里面的Sampler
    jmeter-逻辑控制器Controller4. ForEach Controller-有一个变量组(可以是test1,test2,test3,也可以是test_1,test_2,test_3),组里有几个变量就执行几次并且会生成一个新的变量,其值为该次循环中test?的值

在测试计划中定义一个变量组wo1 wo2 wo3
jmeter-逻辑控制器Controller加入一个ForEach Controller控制组件,参数Input variable prefix中填写变量组的变量组的前缀wo,参数Output variable name中填写要新生成的变量名 test,参数Add“_"before number? 是选择变量名和数字间有无_, 参数Start index 和 End index是选择变量组中的起始位置
jmeter-逻辑控制器Controller循环执行了三次,每次test的值分别为wo1,wo2,wo3的值
jmeter-逻辑控制器Controller
4. Once Only Controller-不管外部循环多少次,该控制器里面的Sampler只执行一次
jmeter-逻辑控制器Controllerjmeter-逻辑控制器ControllerDebug Sampler-1在该控制器内,只执行一次
jmeter-逻辑控制器Controller5. Simple Controller-只起到分组的作用,没有其他实际意义
jmeter-逻辑控制器Controller

相关文章: