1、ctx
获取JmeterContent实例获取当前运行时信息
ctx.getThreadNum()-----》ctx.getThreadNum().toString()
2、vars
a) vars.get(String key):从jmeter中获得变量值
b) vars.put(String key,String value):数据存到jmeter变量中
3、log.error()
4、定时器Thread.sleep()
5、Props
直接访问/设置Jmeter属性
6、prev - (SampleResult):
a) getResponseDataAsString():获取响应信息
b) getResponseCode() :获取响应code
栗子:
BeanShell PostProcessor提取json数据
需求:提取sample返回json数据中所有name字段值,返回的json格式如下: {“body”:{“apps”:[{“name”:”111”},{“name”:”222”}]}} jmeter中添加后置处理器BeanShell PostProcessor
import org.json.*;
String response_data = prev.getResponseDataAsString();
JSONObject data_obj = new JSONObject(response_data);
String apps_str = data_obj.get("body").get("apps").toString(); JSONArray apps_array = new JSONArray(apps_str); String[] result = new String[apps_array.length()]; for(int i=0;i<apps_array.length();i++){ JSONObject app_obj = new JSONObject(apps_array.get(i).toString()); String name = app_obj.get("name").toString(); result[i] = name; } vars.put("result", Arrays.toString(result));