Jmeter(三)——控制器(Logic Controller)


  1. ForEach Controller(遍历循环控制器)
    场景:http://jmeter.apache.org/demos中过滤出.jmx,并访问
    正则表达式要用()括起来,如果没有括号访问不到请求。ForEach Controller循环控制器脚本文件

    Jmeter(三)——控制器(Logic Controller)
    Jmeter(三)——控制器(Logic Controller)
    Jmeter(三)——控制器(Logic Controller)
  2. Include Controller(包含控制器):用来打入外部测试片段,在执行时会导入。但是导入的测试片段不能包含线程组,只能包含简单的控制元件及控制元件下的子元件
  3. Simple Controller(简单控制器):用来指定一个执行单元,不改变元件的执行顺序
  4. Runtime Controller(时间控制器):用来控制其子元件的执行时长
  5. Switch Controller(条件控制器):取样器(Sample)中的请求默认从0开始标号,若条件控制器不指定,默认执行第一个请求(0标号)。执行条件可以填写标号,也可以填写请求名称(严格匹配),若匹配不到则不执行。
  6. While Controller(while循环控制器):2个固定参数
    a.blank(空白,不填写任何值):循环中最后一个请求失败,则跳出循环
    b.last:循环中最后一个请求失败,则跳出循环。或者循环之前有失败则不进入循环
    Jmeter(三)——控制器(Logic Controller)
    例如:
    a.参数填写:空白不填写任何值,循环中有2个请求(第一个请求是正确的,第二个请求是错误的),执行一次就退出循环了
    Jmeter(三)——控制器(Logic Controller)
    b.参数填写:空白不填写任何值,循环中有2个请求(第一个请求是错误的,第二个请求是正确的),不会退出循环,除非手动停止
    Jmeter(三)——控制器(Logic Controller)
    c.参数填写:last,同上面的blank情况(a、b)
    d.参数填写:last,但是在循环之前有个错误的请求,不会进入到循环中执行
    Jmeter(三)——控制器(Logic Controller)
  7. Interleave Controller(交替控制器):交替执行请求
    例如:此控制下有3个请求(1、2、3),线程组循环次数设置为5次,则执行结果为1、2、3、1、2
  8. Once Only Controller(一次控制器):只执行一次,即使放在Loop controller中(循环此时设置为n次),也执行一次
  9. Throughput Controller(吞吐量控制器):
    当选择为Total Exacutions模式:
    勾选Per user  执行次数为    线程数*循环次数 和 线程数* throughput值  取其中最小的
    不勾选Per user  执行次数为    线程数*throughput值 和 throughput值 取其中最小的
  10. Module Controller(模块控制器):通过模块控制器在当前测试计划中引入新的测试片段
  11. Random Controller(随机控制器):随机执行请求,只执行一次请求
  12. Random Order Controller(随机顺序执行控制器):执行循序随机,但是每个元件都会执行一遍
    例如 循环中有1、2、3、4个请求,线程组循环次数为2
    Random Controller Random Order Controller
    2 2、1、4、3
    4 4、3、1、2
  13. Loop Controller(循环控制器):如果线程组设置了循环次数,那么下面的元件执行的次数为线程组循环数*循环控制器循环数
  14. Recording Controller (录制控制器):顾名思义是录制时候用到的,实际上他是一个位置,当用lmeter代理进行录制时,录制脚本默认存放在此控制器下,实际没有逻辑作用
  15. Transation Controller (事物控制器):把其节点下的执行器消耗时间加一起,如果事物控制器有多个取样器,每个取样器都运行成功,整个事物才算成功