文章目錄
- 前言
- 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);// 創建一個空的 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不支持泛型。