一个请求返回结果如下,断言要求typeName与id对应且值不改变。需要用到脚本断言
在这里我用的是metersphere平台首选的beanshell语言来编写的断言脚本
import org.json.*;
//获取响应内容
String response_data = prev.getResponseDataAsString();
//创建一个jsonObject类型对象,将响应数据放进去
JSONObject data_obj=new JSONObject(response_data);
//log.info("data_obj===================================="+data_obj);
//将jsonobject类型的数据转化为jsonarray(数组)
JSONArray data_array=data_obj.getJSONArray("data");
//log.info("data_array====================="+data_array);
for(int i=0;i<data_array.length();i++){
//获取消息类型的id
int id=data_array.getJSONObject(i).getInt("id");
//获取消息类型的名称
String typeName=((JSONObject)data_array.get(i)).get("typeName");
//log.info("typeName=============="+typeName);
//log.info("id=============="+id);
if(typeName.equals("使用意见")||id==5555){
AssertionResult.setFailure(false);
}else if(typeName.equals("设备信息")||id==4444){
AssertionResult.setFailure(false);
}else if(typeName.equals("客服中心")||id==3333){
AssertionResult.setFailure(false);
}else if(typeName.equals("即时消息")||id==2222){
AssertionResult.setFailure(false);
}else if(typeName.equals("故障详情")||id==1111){
AssertionResult.setFailure(false);
}else{
AssertionResult.setFailure(true);
break;
}
}
执行结果如下:
metersphere脚本断言,与Apache JMeter的JSR223断言一样,可以参考jmeter的文档,附上连接:Apache JMeter - User's Manual: Component Reference