jmeter逻辑控制器
jmeter中的Logic Controller用于为 test plan 中的节点添加逻辑控制器
jmeter中的Logic Controller分为两类:一类用来控制test plan 执行过程中的节点的逻辑执行顺序,
列入,loop controller, if controller ,另一类则与节点逻辑执行顺序无关,用于对test plan 中的脚本进行分组,方便jmeter统计执行j结果
以及进行脚本的运行是控制等,例如,throughtput controller,Ttansaction controller,
1.控制Test Plan 中的节点执行顺序logic controller
foreach controller:
该逻辑控制器只要用于多个去读自定义变量值,
添加-配置元件-用户自定义变量,定义变量注意命名格式:变量名+下划线+数字(从1开始计数)之所以这样命名
是为了满足以后foreach控制器提取数据。
添加-逻辑控制器-foreach控制器
编辑foreach控制器:
变量前缀:就是定义用户变量下划线前面的字符串
取值范围:上图表示1=<user<=4,表示从数组user游标位置为1开始取值(而数据是从0开始计数),到游标位置为4结束(不包括5)
所以会从数组变量的第二位开始,遍历3次,所以是51zwx2,51zwx3,51zwx4
输出变量名称:每次得到的用户自定义变量的user存储到参数foreach_user中if controller 控制器:
控制下面的子节点满足条件才执行。。接上面的例子
添加if controller 条件为${__threadNum}>2 表示线程数大于2时才执行
当小于2时不会执行,现在我的线程是3
3.交换控制器 interleave controller
在每次迭代时,顺序选取该节点下的一个字节点执行
如果选中‘忽略子控制器块’选项,则该controller将其下的子controller当成单一元素处理,并仅允许每个字controller一次发出一个请求
勾选上,线程设置1,循环10,访问百度4,自学网3,好搜是3
4.loop controller循环控制器
为其下的子节点设定运行次数
5.once only controller仅一次控制
是为了让test plan 中的某些内容在整个testplan 的执行期间对每个线程仅执行一次(每个线程仅需要一次登录操作)将 once only controller 作为 loop controller的子节点
once only controller 在每次循环的第一次迭代时均会被执行
6.随机控制器:每次执行,从子节点中随机选取一个执行
7.随机顺序控制器:每次执行,按照随机产生的顺序执行其下的所有子节点,注意,该controller与random controller的不同在于,random controller随即一个子节点运行,
而random order controller 则按照随机顺序全部执行该contrpller 下的所有子节点
8.switch controller :根据指定的值n(可以使用参数)选择执行其下的n+1个子节点,wsitch controller 只接受整数值, 并且给定的值n 是以0为基础的
因此当给定的值为‘2’时,意味着该controller 下的第三个子节点会被执行, 同时,switch controller 接受参数作为其值
9、while controller
非控制test plan 中的节点智能光顺序的logic controller
事物控制器:未勾选Generate parent sampler
勾选后只显示事物控制器的聚合报告