Beanshell语法

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));

 

posted @ 2018-03-26 15:41  持之以恒的努力  阅读(556)  评论(0编辑  收藏  举报