Jmeter怎么控制采样器的执行顺序?

python\java等后端编程语言,可以用if-else\for\while等语句来控制代码的执行顺序,Jmeter给我们提供了更加简单的方法,即是各个现成的逻辑控制器,使用它们即可按需控制采样器的执行顺序。        

注意:控制器必须和采样器(Sampler)一起使用,放在控制器下的所有采样器会被看成一个整体,一起执行。

工作中最常用的Jmter的逻辑控制器

1、简单控制器

大部分只做容器用,不改变其下接口的执行顺序。里面可以嵌套其他控制器

2、仅一次控制器

其下子元件只运行一次,多用于登录后作其他循环操作时,将登录放在仅一次控制器里。

3、if控制器

根据条件决定是否执行其下的接口。 公式:${__jexl3(条件表达式)}

即如果括号里的条件表达式成立,则执行里面的接口,不成立,就不执行 。

4、ForEach 控制器

定义一个循环规则,往往需要跟列表一起使用。在列表里查出多个数据,然后将数据长度作为循环次数。

5、循环控制器

手动设置循环次数,直接写死数字。并且所填的循环次数会与线程组设置的循环次数 相乘,即如果线程组循环2次,此循环控制器设置循环5次,则其下的接口会执行10次。

一、简单控制器

Simple Controller用来指定了一个执行单元,它不改变元件的执行顺序,在它下面还可以嵌套其他控制器,很多时候只是做了一个容器

 

 

二、仅一次控制器

Once Only Controller 控制器下的子元件只运行一次,即使把一次控制器放在循环控制器下面,也只是运行一次。

使用场景:

比如说针对一个后台管理系统,管理员登录后新增20个员工,那么新增接口需要循环执行20次,如果没有把登录接口放在仅一次控制器里,则每一次新增都需要登录一次,不符合常理。

第一步:`线程组=>逻辑控制器 => 仅一次控制器

第二步:`在仅一次控制器右键添加HTTP取样器,登录接口。这个接口在整个系统里,不管其他接口循环多少次,它都仅执行一次

 

三、IF控制器

IF Controller根据给定表达式的值决定是否执行该节点下的子节点,条件格式:${__jexl3(条件表达式)}

使用场景:

如果登录接口返回参数errno=0,执行用户信息接口,否则不执行。

第一步:`右键登录接口 => 后置处理器 => JSON 提取器

第二步:` 点击“选项”=> 函数助手 => 选择函数“__jexl3”=>引用变量名“login_judge”

获得函数: ${__jexl3(${login_judge},)}

最终函数: ${__jexl3(${login_judge}==0,)} (判断的条件为字符串需要加"")

第三步: 在(if)控制器下添加用户信息接口,然后判断登录接口的.errno==0,所以执行个人信息

接口

 

 如果将条件改成:.errno==1,然后执行,发现这个条件不成立,则不会执行个人信息接口。

四、ForEach控制器

ForEach Controller该控制器下的取样器或控制器都会被执行一次或多次,每次读取不同的变量值

使用场景:

比如说有一个网站,有一个资讯列表,查出所有状态为正常的资讯,然后将它们禁用。

第一步:`在资讯列表查询接口按查询条件“状态=正常”来查出所有资讯,得到一个列表。

 

第二步:` 使用正则表达式将所有列表都提取出来:如下图所示,匹配数字为-1时会将列表所有内容都提取出来

 第三步:` 建一个ForEach控制器:

第四步:` 在控制器里添加禁用资讯的接口:id引用的是控制器的输出变量名称,将状态从1改成0

 第五步:`执行:如下图所示,查询接口查出来总共20条数据,然后ForEach控制器就执行了20次

 

五、循环控制器

Loop Controller 控制其节点下的元件的执行次数。

使用场景:

比如说有一个网站,有一个底部文章管理菜单:需要新增10个文章类型。

分析:可以直接执行10次底部文章的新增接口,或使用循环控制器设置循环10次,还可以在线程组那里设置循环2次,循环控制器设置循环5次。

第一步:`线程组设置循环次数为2,线程组=>逻辑控制器 => 循环控制器,循环5次。

 

第二步:` 在循环控制器右键添加HTTP取样器,新增底部文章接口。这个接口将会循环10次

第三步: `执行,查看结果树。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[3\]的内容,解决上传文件文件名中文乱码的问题需要替换原有的ApacheJMeter_http.jar文件。你可以将复制后的jar包ApacheJMeter_http.jar放在jmeter的安装路径apache-jmeter-5.4.3\lib\ext下,然后重启jmeter即可解决该问题。 #### 引用[.reference_title] - *1* [Jmeter上传附件中文乱码与录制脚本中文乱码问题解决,Jmeter5.3、5.4、5.5源码编译-44](https://blog.csdn.net/qq_18298049/article/details/106817246)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [只会用jmeter测试http? No,今天咱们学一下jmeter的ftp下载文件](https://blog.csdn.net/weixin_29901799/article/details/111943282)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Jmeter上传文件的文件名中文乱码解决方法](https://blog.csdn.net/foreveryangting/article/details/127983863)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值