1、如果(if)控制器:如果控制器下面的表达式最终取值必须是true或者false。假设我们想控制请求百度的HTTP请求是否执行,用如果控制器来实现如下:
1.1、创建线程组如下:
1.2、其中,用户定义的变量test设置为true,如下:
1.3、如果控制器引用用户定义的变量test,其设置如下:
1.4、运行后察看结果树,可以看到成功访问了HTTP请求:
1.5、如果想控制HTTP请求不被访问,那么我们只要把test的值设置为false就好:
1.6、运行后察看结果树,发现HTTP请求并没有被访问:
2、循环控制器:控制循环执行的次数,如果线程组也有循环次数,则JMeter是执行两层循环。比如,我们在线程组里面设置:线程数为1,循环次数为2,然后在循环控制器里面循环次数输入2,那么总执行次数为4:
2.1、创建线程组如下:
2.2、循环控制器设置如下:
2.3、运行线程组察看结果树如下:
3、while控制器:其节点下的元件将一直运行直到while的条件为false,可以输入表达式或者变量。
3.1、线程组设置如下:
3.2、添加while控制器如下:
3.3、执行线程组可以看到HTTP请求一直在请求中,除非你手动stop:
4、ForEach控制器:循环遍历一组相关变量的值。 将取样器添加到ForEach控制器时,每个样本都会执行一次或多次,其中在每个循环期间变量都有一个新值。 输入应包含多个变量,每个变量都用下划线和数字扩展。 每个这样的变量都必须有一个值。假设我们想在百度检索java、python、php、c++,则你可以这么设置:
4.1、新建线程组如下:
4.2、用户定义的变量如下:
4.3、ForEach控制器的设置如下,索引坐标0,1,2,3,则开始循环字段就为-1,结束循环字段就为3:
4.4、运行线程组察看结果树如下,我们可以看到检索了java、python、php和c++,共4个请求:
5、交替控制器:其节点下的取样器会交替执行。
5.1、新建线程组如下:
5.2、交替控制器控制HTTP请求1和HTTP请求2,则执行线程的时候,HTTP请求1和HTTP请求2就会交替执行:
6、仅一次控制器:此控制器下的子元件只运行一次,即使把仅一次控制器放在循环控制器下面 ,也只运行一次。我们在模拟请求时,有时只需要登录一次,就可以把登录的部分放在仅一次控制器下面。
7、随机控制器:其节点下的元件会随机运行,与交替控制器不一样的是,其节点下的元件运行顺序随机。
7.1、新建线程组如下:
7.2、随机控制器控制HTTP请求1和HTTP请求2,则执行线程的时候,HTTP请求1和HTTP请求2就会随机执行:
8、随机顺序控制器:子节点都会执行,但是其节点的执行顺序是随机的。
8.1、新建线程组如下:
8.2、随机顺序控制器控制HTTP请求1和HTTP请求2,则执行线程的时候,HTTP请求1和HTTP请求2就会随机顺序执行:
9、Runtime控制器:用来控制其子元件的执行时长 。
9.1、新建线程组如下:
9.2、Runtime控制器控制HTTP请求1,我设置了3秒,则HTTP请求1就会执行3秒后,再执行HTTP请求3:
10、吞吐量控制器:用来控制其下子元件的执行次数,并无控制吞吐量的功能。可以设置Total Executions和Percent Executions。Total Executions,按吞吐量的值来指定执行次数,此时Per User 与Total Executions一起影响执行次数(一般来说选择Total Executions就不要勾选Per User);Percent Executions,按执行次数的百分比来计算执行次数,此时吞吐量的取值是0~100,Per User是否勾选对Percent Executions没有影响。
10.1、新建线程组如下,理论上要执行20次:
10.2、吞吐量控制器控制HTTP请求1,设置吞吐量为3:
10.3、运行线程组察看结果树如下,看到只执行了3次:
11、Switch控制器:条件控制器,根据switch value执行元件,从0开始计算。
11.1、新建线程组如下:
11.2、Switch控制器控制HTTP请求1、HTTP请求2和HTTP请求3,switch value设置为1,那么就是执行HTTP请求2:
11.3、运行线程组察看结果树如下:
参考链接:https://www.cnblogs.com/suim1218/p/9257272.html