jmeter学习6(逻辑控制器)

以前对jemeter的了解太局限只能使用它进行简单的场景设置,现在慢慢学习更加深入,要创建更复杂的测试流程场景,逻辑控制器必不可少
jmeter学习6(逻辑控制器)
jmeter中的逻辑控制器主要分为两大类型:
1、控制测试计划执行过程中节点的逻辑执行顺序
2、对测试计划中的脚本进行分组,方便JMeter统计执行结果以及进行脚本的运行时控制等
一、逻辑控制类:
1)如果(If)控制器
jmeter学习6(逻辑控制器)
如上图添加if控制器,当条件满足threadNum>4时执行
选项:Interpret Condition as Variable Expression表示,判断变量值是否等于字符串true(不区分大小写),为true时执行
Evaluate for all children:如果选中这一项,在每个子结点执行前都会计算表达式 (我模拟的场景暂时没太理解这个选项的功能作用)
这种情况下勾选该选项有什么区别呢??
2、循环控制器(Loop Controller)
jmeter学习6(逻辑控制器)
控制其下面子节点循环的次数,如上图控制“访问简书”这个sample循环执行五次
3、仅一次控制器(once only controller)
jmeter学习6(逻辑控制器)
在测试计划执行期间,该控制器下的子结点对每个线程只执行一次,在整个测试计划中同一个线程的多次请求会被跳过。
jmeter学习6(逻辑控制器)
如图虽然在循环内,但是一个线程只访问了一次“百度新闻”,该控制器可用于登录这个动作
4、Random Controller(随机控制器)
每次执行时,从其子节点中,随机选择一个进行执行
jmeter学习6(逻辑控制器)
5、Random Order Controller(随机顺序控制器)
随机顺序控制器类似简单的控制器,它会一次执行每个子元素,但是节点的执行顺序是随机的(正常的情况下是依次按顺序执行)
6、事务控制器(transaction controller)
生成一个额外的采样器用于统计该控制器下子节点的所有时间。该统计数据可以在聚合报告中看到。
jmeter学习6(逻辑控制器)
jmeter学习6(逻辑控制器)
Generate parent sample:控制结果的显示结构。若勾选,总时长和子节点时长按层级显示,未勾选,平行显示
jmeter学习6(逻辑控制器)
Include duration of timer and pre-post processors in generated sampler:勾选时,会统计定时器时间(默认仅统计采样器时间)
7、Switch控制器(Switch Controller)
Switch控制器通过给该控制器中的Value赋值,来指定运行哪个采样器。有两种赋值方式
1、jmeter学习6(逻辑控制器)
2、jmeter学习6(逻辑控制器)
得到的结果
jmeter学习6(逻辑控制器)
在想实际应用场景该是怎样的
8、吞吐量控制器(Throughput Controller)
控制其下的子节点的执行次数与负载比例分配,也有两种方式:
Total Executions:设置运行次数
Percent Executions:设置运行比例(1~100之间)
设置循环次数5
jmeter学习6(逻辑控制器)
吞吐量总次数设置为3
jmeter学习6(逻辑控制器)
设置吞吐比例为40%
jmeter学习6(逻辑控制器)
结果如下:不勾选per user选 项,执行次数=吞吐量值=3次;40% * 线程组循环次数5= 2次
jmeter学习6(逻辑控制器)
当勾选per user:
执行次数=user数量(对应线程数) * 吞吐量值
执行次数=循环次数* 40%* user数量(对应线程数)
以上是部分逻辑控制器,以上只是简单的理解了逻辑控制器的含义与用法,我觉得具体的使用还需要根据测试过程中遇到的场景来进行选择,剩下的逻辑控制器有机会遇到的时候继续补充记录