jmeter-逻辑控制器-if控制器

逻辑控制器:逻辑控制器是用来决定采样器的处理顺序的元件

可以按功能分为两大类:一种是变更脚本逻辑执行顺序 另一种是将脚本进行分组

逻辑控制器使用:线程组右键→添加→逻辑控制器

就我来说工作上使用的就简单控制器 循环控制器 其他的没用过 不过还是一个一个说吧 

内容大部分都是粘自jmeter的用户手册:https://jmeter.apache.org/usermanual/component_reference.html#logic_controllers

如果控制器

根据给定表达式的值决定是否执行该节点下的子节点(我个人觉得这个控制器是脚本步骤太长结果树太多怕你瞎让你知道到那一步出问题用的- -!)

写一个场景测试一下(判断是否登录成功 成功后执行发帖操作,不成功不执行)

 第一种写法:点击Use status of last sample 利用上一个页面返回是否成功来判断是否可以执行发帖操作

ps:${JMeterThread.last_sample_ok} 的结果只有true或false它是一个变量 

Interpret Condition as Variable Expression?:默认勾选,将条件解释为变量表达式(需要使用 ${__jexl3 } 或 ${__groovy } 表达式)

官网上对此的解释是以前可以使用条件: ${__jexl3(${VAR} == 23)}这将被评估为true / false将变量结果传递给JavaScript,然后返回true/false. 如果选择了变量表达式选项,则表达式会被评估并与“ true ”进行比较,而无需使用 JavaScript。(你问我 我也不清楚既然勾选就会增加性能 那为什么不做成不使用JavaScript... 问了下群友 他们都是默认不勾选用的JavaScript )

第二种写法:使用groovy 表达式(别问我groovy与jexl3的区别 我查了一下都是用来写动态表达式的语言 你爱用哪个用哪个 没找到具体区别)

我登录脚本给用户 写了两个变量一个是test1 一个是admin if控制器里是admin用户就发贴不是就不发(两个线程 第一个 走的是test1 第二个走的是admin)看下结果树

看下结果线程1 只走到了登录并没有发帖 线程2可以发帖

第二种写法:jexl3表达式 写法和groovy一致 我就演示了 直接上图吧

脚本不会写就用函数助手







最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ​插件:开发测试dubbo接口的插件 前提: 1、java swing的基础知识 2、调用dubbo的工具类 说明...
    许你一枝花阅读 450评论 0 0
  • ​类说明: 具体类的包路径可以自定义,只需实现相应的抽象类即可,jmx文件中会包含完整的包路径。 1、TestSa...
    许你一枝花阅读 266评论 0 0
  • ​配置界面Gui的开发包含2部分: 1、初次打开空白配置界面时的开发 2、打开已有jmx文件时,初始化Gui界面的...
    许你一枝花阅读 1,171评论 0 0
  • ​b、定义final static的成员变量 此处设置的final static的成员变量,最终是对应的jmx文件...
    许你一枝花阅读 254评论 0 0
  • ​1、开发自定义的sampler需要实现一个抽象类:AbstractSampler.java 2、开发一个samp...
    许你一枝花阅读 511评论 0 0