文章目录

  • 前言
    • JMeter 特殊组件-逻辑控制器与BeanShell PreProcessor 使用示例
      • 1. 逻辑控制器使用
        • 1.1. While Controller 使用示例
        • 1.2. 如果(If)控制器 使用示例
      • 2. BeanShell PreProcessor 使用示例

前言

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


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

1. 逻辑控制器使用

流程:
1、选择你的HTTP请求;
2、单机右键->选择插入上级
3、选择逻辑控制器

1.1. While Controller 使用示例

添加用户定义的变量:

添加变量:count

value值为循环的次数。
点击此HTTP请求右键添加后置处理器:BeanShell PostProcessor

里面写入这段代码:

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


意思是:
获取count变量,每次执行完此HTTP请求后,数值-1,并存入变量count

设置While Controller内容:

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

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

在While Controller组件上右键点击->插入上级->逻辑控制器->如果(If)控制器

在此组件上输入一下下面内容:

${whileFlag}


在用户定义的变量上新加变量whileFlag:

vaue:true代表可以通过if判断、false代表拒绝通过if判断。

2. BeanShell PreProcessor 使用示例

大概流程:

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

设置Body Data 变量:

${jsonInput}


然后选择此HTTP请求组件右键->添加->前置处理器->BeanShell PreProcessor 组件

输入内容:

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);// 创建一个空的 ListList 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不支持泛型。