Switch控制器作用:相当于开关,控制执行多个请求中的某一个
一、Switch控制器的几种使用方法
- 在线程组-逻辑控制器下添加Switch控制器,在Switch Value内设置0, 执行后只跑HTTP1请求,同理设置1,会跑HTTP2请求,如果设置很大值,例如999,默认只跑第一个请求
- 第二种写法:在Switch Value内设置请求接口的名称,只跑对应接口名称
- 第三种写法:在测试计划中设置变量,在Switch控制器内设置变量,也会只跑对应的请求
二、if控制器:可以控制多个请求时每个请求的比例
比如某个银行业务场景,存款业务约70%,取款业务约30%,那么存款接口的请求应该是总请求数的70%,取款请求是总请求数的30%
-
设置线程数:10
-
在线程组内添加IF控制器:
${__jexl3(${__counter(false,)}%2!=0)} 除于2的余数不等于0执行一次-每次自增
- 第二个IF控制器 除于2的余数等于0执行一次-每次自增
${__jexl3(${__counter(false,)}%2==0)}
-
查看结果树
-
聚合报告
跑出来的结果刚好是一半一半: 通过聚合报告查看比例是5:5 -
如果比例为1:2 线程数设置:15
第一个IF控制器设置
${__jexl3(${__counter(false,)}%3!=0)}
第二个IF控制器设置
${__jexl3(${__counter(false,)}%3==0)}
再次查看
7. 如果比例为1:4
第一个IF控制器设置
${__jexl3(${__counter(false,)}%4!=0)}
第二个IF控制器设置
${__jexl3(${__counter(false,)}%4==0)}
8. 如果比例为 7:3 线程数设置100
第一个IF控制器设置
${__jexl3(${__counter(false,)}%3!=0 || ${__counter(false,)}%10==0,)}
第二个IF控制器设置
${__jexl3(${__counter(false,)}%3==0 && ${__counter(false,)}%10!=0,)}
查看聚合报告