简介

Jmeter有很多逻辑控制器,可以控制请求的执行顺序和执行逻辑,本文就Jmeter常见的逻辑控制器做一个详细的描述,并通过示例让大家了解逻辑控制器的作用。

代码的逻辑分支通常有:

条件判断IF

多条件选择Switch

循环While/For

这些逻辑控制可以分别通过Jmeter的IF控制器,Switch分支控制器,While循环控制器,ForEach循环控制器,循环控制器 来实现。

IF控制器

在实际工作中,当使用Jmeter进行接口测试或者性能测试时,有时需要根据不同条件做不同的操作,为了解决这个问题,Jmeter提供了IF控制器。顾名思义,IF控制器实现了代码中IF的功能,通过判断表达式的True/False来判定是否执行相应的操作。

示例场景:判断用户角色是否为tester,如果是tester,则执行baidu搜索功能

新建"配置元件->用户定义的变量"模拟脚本运行过程中生成的变量role,并指定值为tester

新建if控制器,通过表达式指定if的判断条件。Jmeter的If控制器支持__jexl3或者是groovy语言,在Jmeter的if控制器中填入表达式时,不能直接编写表达式语言,而是要借用Jmeter的函数生成器,生成指定语言的表达式。

在IF控制器下新建相应的操作步骤,此处发起一个baidu的Http请求;实际应用中,大家可以根据业务流编写IF控制器内的操作,当IF条件为true时,会执行其中的步骤;当IF条件为false时,会跳过IF控制器内部的步骤。

点击运行脚本,通过查看结果树可以发现IF控制器中的"请求百度"被执行。

更改用户定义的变量为其他值使得IF条件表达式的值为false,再运行脚本,会发现IF控制器中的"请求百度"语句不会被执行。

Switch控制器

Swicth控制器实现了编程语言中的Switch功能,通过动态的值选择要执行的语句,相对于if控制器的true/false判断,它通过顺序值(从0开始)来指定要运行的语句。

示例场景:根据不同输入值调用不同的搜索引擎(baidu,bing,sougou)进行查询

新建"配置元件->用户定义的变量"模拟脚本运行过程中生成的变量index,并指定index=0

新建Switch控制器,并在Switch控制器下新建三个Http请求,分别代表请求baidu,请求bing,请求sougou

运行脚本,察看结果树,会发现此时会运行baidu; 依次变更index的值为1和2,会相应的运行bing和sougou。通过本示例可以看到Switch控制器会读取index变量,并根据Switch控制器下的请求顺序执行相应的操作。

While控制器

While控制器实现了编程语言中的循环控制功能,当表达式的值为true时会一直执行循环,直到表达式不满足特定的条件,可以应用到需要根据程序运行状态来判定循环是否继续的场景。

示例:初始值为1,每运行一次加1,直到值大于3时停止循环

新建"配置元件->用户定义的变量"定义初始变量的值,start=1

新建循环控制器,指定循环运行条件,此处和IF控制器的表达式类似,通过groovy或者是javascript语言来申明表达式

新建BeanshellSampler,通过代码实现每运行一次,start值加1。因为vars.get的值和vars.put的值都是String类型,此处需要进行String和int类型的转换

运行脚本,通过查看结果树可以发现BeanshellSampler一共被调用了2次,满足While控制器中定义的条件

循环控制器

Jmeter 提供循环控制器可以实现循环调用指定次数的逻辑操作

示例:发起5次baidu调用请求

运行脚本,可以从查看结果树中看到,baidu被调用了5次

For Each控制器

Jmeter ForEach控制器可以实现”条件"循环调用,比循环控制器的功能的更强大,它可以读取一组变量,然后根据不同的变量值去循环发起请求

示例:循环删除查询到的数据

调用上游接口,查询数据

提取查询结果,获取查询到的一组用户id数据

新建ForEach控制器,指定输入变量为上游接口提取的变量,以及输出变量名

在ForEach控制器中通过输出的变量去循环删除查询到的所有用户

运行脚本,查看结果,可以看到成功的删除了查询到的数据

结合上述几种逻辑控制器,可以使我们的脚本更灵活,实现运行时的动态调用;Jmeter还提供了其他逻辑控制器用于脚本的组织和数据的搜集,详情可以参考Jmeter官网:

http://jmeter.apache.org/usermanual/component_reference.html#logic_controllers

作  者:Testfan Kitty

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

Jmeter 常见逻辑控制器详解相关推荐

  1. jmeter使用if控制器_Jmeter 常见逻辑控制器详解

    简介 Jmeter有很多逻辑控制器,可以控制请求的执行顺序和执行逻辑,本文就Jmeter常见的逻辑控制器做一个详细的描述,并通过示例让大家了解逻辑控制器的作用. 代码的逻辑分支通常有:条件判断IF多条 ...

  2. JMeter逻辑控制器 详解

    1.简介 Jmeter官网对逻辑控制器的解释是:"Logic Controllers determine the order in which Samplers are processed. ...

  3. android WebView详解,常见漏洞详解和安全源码(下)

    上篇博客主要分析了 WebView 的详细使用,这篇来分析 WebView 的常见漏洞和使用的坑.  上篇:android WebView详解,常见漏洞详解和安全源码(上)  转载请注明出处:http ...

  4. android WebView详解,常见漏洞详解和安全源码(上)

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  由于博客内容长度,这次将分为上下两篇,上篇详解 WebView ...

  5. python 元类 type_Python 使用元类type创建类对象常见应用详解

    本文实例讲述了Python 使用元类type创建类对象.分享给大家供大家参考,具体如下: type("123") 可以查看变量的类型;同时 type("类名", ...

  6. shell编程之进阶篇三常见命令详解

    常见命令详解 接下来我们介绍一些shell脚本中经常使用的linux命令:grep.sed.awk.find grep命令详解 grep命令是我们常用的一个强大的文本搜索命令. 命令格式详解 grep ...

  7. JMETER目录结构详解

                                                                 JMETER目录结构详解 JMETER安装完成之后会有很多目录文件,我们对JM ...

  8. 如何知道计算机显示器尺寸,电脑显示器尺寸怎么看(电脑显示器常见参数详解)...

    由于显示器可选的范围比较广,同一个尺寸大小的显示器,不同品牌不同型号不同参数会有上百种可供选择,其实我们只需明确了预算与用途,才可以正确选择合适自己的显示器.那么如何看显示器参数?下面装机之家分享一下 ...

  9. 《算法笔记》学习日记——6.1 vector的常见用法详解

    目录 6.1 vector的常见用法详解 问题 A: Course List for Student (25) 问题 B: Student List for Course (25) 小结 6.1 ve ...

最新文章

  1. Java绘图之AWT中的继承关系图
  2. REST、RESTful 与 RESTful API
  3. C语言空指针NULL详解
  4. github 思维导图开元软件_Windows上有哪些很棒思维导图的软件
  5. ios php 聊天_解析php做推送服务端实现ios消息推送
  6. C++基础::Stream(二)
  7. bzoj 1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富(DP)
  8. spriteatlas 白屏的问题_Discuz白屏问题解决思路
  9. tomcat编码配置gbk_Tomcat中的编码问题
  10. 蓝牙方案,蓝牙国密读卡器,TypeA/TypeB/Felca卡读写,分享蓝牙NFC读写器带USB接口,银行卡/CPU卡/NTAG213/Mifare卡蓝牙读写器,usb多通道通讯
  11. Ubuntu18.04 安装 Matlab2020a
  12. MySQL定时备份数据库(全库备份)
  13. web打印实现几种方法
  14. 信杂比公式_信噪比公式
  15. Java2048游戏源代码
  16. android 把file资源转file,Android文件管理器选择文件,获得文件路径URI转File
  17. 计算机函数乘法word,【2人回答】Word里相乘的函数是什么?-3D溜溜网
  18. 面部识别软件揭示家族成员相似性
  19. 适合编程初学者的开源博客系统(NodeJS版)
  20. 微信小程序之发送通知消息(通过openid推送消息给用户)

热门文章

  1. AI 预测世界杯比赛结果,惊掉下巴
  2. 微信小程序 考勤签到助手 源码demo
  3. YOLOv5人脸检测
  4. 学习BitSet集合中set方法的小结
  5. 周易名:传统周易结合现代人工智能起名字
  6. debian 6上安装l7 filter在应用层禁用xunlei
  7. P2700 逐个击破 并查集/生成树
  8. java狗具有特别的接飞盘的方法_训练狗接飞盘,5个方法让你快速见成效!
  9. Python 提示:无法初始化设备 PRN
  10. 吴翰清讲web安全--安全概述