beanshell 响应数据的解析与变量的保存
获取响应的数据
response = prev.getResponseDataAsString()
//prev.getResponseDataAsString是Jmeter提供的方法,可以调取上次请求的响应字符串
response = prev.getResponseDataAsString();
验证statusCode的值是否为200
import org.json.*; import java.util.Arrays; //获取上一个请求的返回 String jsonString = prev.getResponseDataAsString(); JSONObject responseJson = new JSONObject(jsonString); //判断返回值是否和预期一致 if (responseJson.getInt("statusCode") != 200) { //把断言失败置为真,即用例失败,并在结果树中显示FailureMessage Failure = true; FailureMessage = "statusCode的返回值有误"; }
验证respone中message的值是否与预期一致
import org.json.*; import java.util.Arrays; //获取上一个请求的返回 String jsonString = prev.getResponseDataAsString(); JSONObject responseJson = new JSONObject(jsonString); String fbpcontent = responseJson.getString("message"); if (!fbpcontent.equals("不能发送小于当前时间点的定时任务")) { //把断言失败置为真,即用例失败,并在结果树中显示FailureMessage Failure = true; FailureMessage = "message与实际值不一致"; }
数据解析 针对如返回信息解析 groups 的数据
{ "priorityGroups": { "proId": 1234, "name": "项目一", "groups": [ { "id": "50356", "items": [ { "proId": 1360, "n": "PC端", "index": 1 }, { "proId": 1361, "n": "iOS端", "index": 2 } ] } ] }, "promotion": { "proId": 1364, "cusId": 84, "name": "项目二", "from": 1470821215, "to": 1470907615, "status": 1, "objectId": 1069, "createBy": 394, "eff": 1470821215000, "createTime": 1470821155000 } }
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
String jsonContent = prev.getResponseDataAsString();
JSONObject response = new JSONObject(jsonContent);
JSONArray groups = response.getJSONObject("priorityGroups").getJSONArray("groups");
String strGroups = groups.toString();
BeanShell的获取数据解析,还可以使用Gson提供的方法
//prev.getResponseDataAsString是Jmeter提供的方法,可以调取上次请求的响应字符串
response = prev.getResponseDataAsString();
//使用Gson提供的方法解析json
JsonParser parser = new JsonParser();
JsonObject responseObj = (JsonObject) parser.parse(response);
变量 的读取与保存 vars中的变量仅对当前线程组内可见
变量的读取
vars.get("goodId");
变量的保存
vars.put("new_value", value) ;
对象 的读取与保存
对象的读取
vars.getObject("OBJECT_NAME");
对象的保存
vars.putObject("object_name", Object);
跨线程读取和保存变量 props
变量的获取
props.get("goodId")
变量的保存
props.put("new_value", value)