JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例

这篇具有很好参考价值的文章主要介绍了JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例

1. 逻辑控制器使用

流程:
1、选择你的HTTP请求;
2、单机右键->选择插入上级
3、选择逻辑控制器
JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter

1.1. While Controller 使用示例

添加用户定义的变量:
JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter
添加变量:count
JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter
value值为循环的次数。
点击此HTTP请求右键添加后置处理器:BeanShell PostProcessor
JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter
里面写入这段代码:

String count = vars.get("count");
int countInt = Integer.parseInt(count);
countInt = countInt - 1;
vars.put("count",countInt+"");

JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter
意思是:
获取count变量,每次执行完此HTTP请求后,数值-1,并存入变量count

设置While Controller内容:

${__groovy(vars.get("count") !="0")}

JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter

1.2. 如果(If)控制器 使用示例

在While Controller组件上右键点击->插入上级->逻辑控制器->如果(If)控制器
JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter
在此组件上输入一下下面内容:

${whileFlag}

JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter
在用户定义的变量上新加变量whileFlag:
JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter
vaue:true代表可以通过if判断、false代表拒绝通过if判断。

2. BeanShell PreProcessor 使用示例

大概流程:

首先在HTTP请求的Body Data 上设置变量,然后添加BeanShell PreProcessor,代表的是执行HTTP请求之前会先走BeanShell PreProcessor 组件,然后将传参值输入到刚刚我们在Body Data 上设置的变量,发起请求。

设置Body Data 变量:

${jsonInput}

JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter
然后选择此HTTP请求组件右键->添加->前置处理器->BeanShell PreProcessor 组件
JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例,JMeter,jmeter
输入内容:


import cn.hutool.json.JSONObject;
import java.util.ArrayList;
import java.util.List;

//==================================================================================================

// 生成随机字符串作为parentId的值
long randomParentId = ${__Random(100,500)};
String msg = "[\"12\",\"2342\"]";
log.info(msg);

// 创建一个空的 List
List inputList = new ArrayList();

// 添加字符串元素到列表中
inputList.add("value1");
inputList.add("value2");
inputList.add("value3");

// 设置JSON数据
String jsonData = "{\n" +
        "  \"pages\": {\n" +
        "    \"page\": 1,\n" +
        "    \"pageSize\": 10\n" +
        "  },\n" +
        "  \"param\": {\n" +
        "    \"isDelete\": \"string\",\n" +
        "    \"level\": \"string\",\n" +
        "    \"parentId\": \"string\",\n" +
        "    \"parentIds\": [\n" +
        "      \"string\"\n" +
        "    ],\n" +
        "    \"pkIds\": [\n" +
        "      \"string\"\n" +
        "    ]\n" +
        "  }\n" +
        "}";


// 将随机生成的parentId值替换到jsonInput中
JSONObject jsonObject = new JSONObject(jsonData);
// 替换parentIds值为随机生成的值
jsonObject.getJSONObject("parameter").put("parentIds", inputList);
jsonObject.getJSONObject("parameter").put("parentId", randomParentId);
// 将JSON数据设置为JMeter变量
vars.put("jsonInput", jsonObject.toString());


特别注意:在JMeter中,不要写关于泛型的代码,JMeter不支持泛型。文章来源地址https://www.toymoban.com/news/detail-660015.html

到了这里,关于JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Jmeter教程】_事务控制器

    目录 一、添加事务控制器 二、事务控制器参数说明 三、运用事务控制器 统计性能测试结果一定会关注TPS,TPS表示 每秒处理事务数 ,JMeter默认每个事务对应一个请求。我们可以用逻辑控制器中的 事务控制器 将多个请求统计为一个事务。 Generate parent sample:如果事务控制器下

    2024年02月11日
    浏览(32)
  • Jmeter调用测试片段 —— 模块控制器

    可以使用模块控制器调用测试片段。模块控制器提供了一种在运行时将测试片段替换为当前测试计划的机制。测试片段可以位于任何线程组中。 1、打开一个Jmeter窗口,添加好线程组、用户定义变量、模块控制器、测试片段、察看结果树。 2、用户定义变量同样定义好访问ip及

    2024年02月05日
    浏览(41)
  • Jmeter 控制器表达式写法

    在测试场景中有用到IF控制器,当javascript表达调试通过后,看到IF控制器的提示,显示jexl3 和groovy 表达式性能更好,故想转换成jexl3 或groovy 表达式,但来来回回试了一个小时,才全部调试通过,所以在此记录一下,方便后续查询。 在Jmeter的测试计划中添加IF控制器,当变量

    2024年02月12日
    浏览(23)
  • 【P38】JMeter 随机控制器(Random Controller)

    可以让控制器内部的逻辑随机执行一个,一般用来模拟业务的不确定性;随机控制器在线程迭代或者控制器循环的时候均会触发 选择线程组右键 添加 逻辑控制器 随机控制器(Random Controller) 忽略子控制器块(Ignore sub-controller blocks):子控制器功能失效,由交替控制器代替

    2024年02月07日
    浏览(32)
  • 【P30】JMeter 事务控制器(Transaction Controller)

    可以生成一个额外的样本,这样能够将它的所有子元素作为一个计量单元进行监听;事务控制器本身不包含任何业务逻辑,只是组合出一个新的计量单元 选择线程组右键 添加 逻辑控制器 事务控制器(Transaction Controller) Generate parent sample:选中,事务控制器将作为其他取样器

    2024年02月06日
    浏览(72)
  • 【P31】JMeter 循环控制器(Loop Controller)

    可以对部分逻辑按常量进行循环迭代 选择线程组右键 添加 逻辑控制器 循环控制器(Loop Controller) Loop Count:设置运行次数,Infinite 勾选为永久运行 2.1、设置循环次数 (1)、测试计划右键 添加 线程(用户) 线程组 参数默认即可 (2)、线程组右键 添加 取样器 调试取样器

    2024年02月07日
    浏览(37)
  • 【P34】JMeter ForEach控制器(ForEach Controller)

    可以对一个组变量进行循环迭代;该组件通常与后置处理器中的 JSON 提取器、正则提取器、边界提取器等进行联合使用 选择线程组右键 添加 逻辑控制器 ForEach控制器(ForEach Controller) 输入变量前缀(Input variable prefix):默认为一个空字符串作为前缀 开始循环字段(不包含)

    2024年02月06日
    浏览(36)
  • 【P33】JMeter 临界部分控制器(Critical Section Controller)

    可以对指定代码块增加同步锁,确保此代码块由单线程执行;通过 Java synchronized 实现 选择线程组右键 添加 逻辑控制器 临界部分控制器(Critical Section Controller) 锁名称(Lock name):锁名为空,认为每个锁为不同的锁;锁名相同,多个锁认为是同一个锁,同一个时间点

    2024年02月07日
    浏览(40)
  • Jmeter——循环控制器中实现Counter计数器的次数重置

    近期在使用Jmeter编写个辅助测试的脚本,用到了多个Loop Controller和Counter。 当时想的思路就是三个可变的数量值,使用循环实现;但第三个可变值的数量次数,是基于第二次循环中得到的结果才能确认最终次数,每次的结果还会有不一样的情况。基于思路,先写了个线性脚本

    2024年03月18日
    浏览(46)
  • 阶段七第二章连接数据库,逻辑控制器,定时器,分布式

    准备工作 : 1.启动数据库 2.加载mysql的JDBC驱动 · 方法1:在测试计划下方的位置,点击浏览添加JDBC的jar包 · 方法2:将JDBC的jar拷贝到lib目录,并重启jmeter 3.JDBC连接池配置参数: 编写JDBC脚本步骤 :(搜索指定商品,在返回结果中检查是否包含指定商品的ID的URL) 1、添加JDBC

    2024年01月22日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包