Jmeter BeanShell PostProcessor提取json数据
假设现有需求:
提取sample返回json数据中所有name字段对应的值,返回的json格式如下:
{“body”:{“data”:[{“name”:”liuke”},{“name”:”test”}]}}
Jmeter添加BeanShell PostProcessor,
BeanShell代码:
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));
使用${result}引用即可。