JMeter 通过 BeanShell 脚本处理入参和回参
入参:可以通过该方式动态生成入参参数,如时间参数,随机参数等。
操作:右键 HTTP Request - Add - Pre Processor - BeanShell PreProcessor
import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Random; import java.util.List; import java.util.ArrayList; // 当前日期 LocalDate today = LocalDate.now(); String formattedDate = today .format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); // 将参数写入到变量中(当前线程使用) vars.put("today", formattedDate); // 取出变量值(默认String) vars.get("today"); // 生成随机数 int random = new Random().nextInt(100); // 将参数写入到全局变量中(所有线程共享) props.put("random ", random ); // 取出全局变量值(默认String) props.get("random ");
回参:可以通过该方式动态遍历复杂的请求结果,实现回参的在下一次请求中使用。
操作:右键 HTTP Request - Add - Post Processor - BeanShell PostProcessor
import net.minidev.json.JSONObject; import net.minidev.json.JSONValue; import net.minidev.json.JSONArray; import java.util.ArrayList; import java.util.Random; jsonStr = prev.getResponseDataAsString(); JSONObject jsonobj = (JSONObject) JSONValue.parse(jsonStr); if (jsonobj.get("respCode") == 0) { JSONArray data = (JSONArray ) jsonobj.get("data"); for(int i=0; i<data.size() ; i++){ JSONObject obj = (JSONObject) data.get(i); if ("code".equals(obj.get("code"))){ vars.put("name", obj.get("name")); break; } } }

浙公网安备 33010602011771号