所有循环控制器的父类:GenericController.java
GenericController包含一个List subControllersAndSamplers,用于存放此循环控制器下子循环控制器或者sampler。(只能是循环控制器或者sampler),subControllersAndSamplers存在于父类中,因此所有的子循环控制器都会包含各自的subControllersAndSamplers。
subControllersAndSamplers的填充过程
在解析jmx文件对应的hashtree对象时,每次解析到叶子节点时(从最底层开始),会调用下方的方法,stack.getLast()返回的是没有子节点的节点(比如一个beanshell Sampler或者http request)。stack.removeLast()会从stack移除beanshell Sampler,再次调用stack.getLast()得到上一层的ForEachController
此时调用ForEachController.addTestElementOnce(child),将eanshell Sampler添加到ForEachController的subControllersAndSamplers