Duriation Assertion
用于判断响应时间是否符合要求,仅需要填入期望的上限即可,单位为ms。
Size Assertion
用于判断Response的Size是否符合要求。需要选择判断条件,和Size即可。
Response Assertion
用于判断Response是否符合期望值。
从图中可以看到,操作比较简单,只需要选择想要比对的项目,比对方式,以及期望值即可。图例中,给出的是对Response Code的检查,期望值为200。当期望值不匹配时,Report将显示“Response Code mismatch”为标题的错误。
BeanShell Assertion
个人认为BeanShell断言是最为灵活的,毕竟你可以使用代码完成你想要的任何个性化检查。
如果存在BeanShell PostProcess,则BeanShell Assertion在其后运行。
可以通过prev.getResponseDataAsString获取响应数据。
示例如下。
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; JSONObject object=JSONObject.parseObject(prev.getResponseDataAsString()); System.out.println("stateWord = "+object.getInteger("stateWord")); if(object.getString("msg")!=null){ log.info("msg = "+object.getString("msg")); }else { log.info("Wrong JSON Fromat, do not find msg"); } if(object.getString("time")!=null){ log.info("time = "+object.getString("time")); }else { log.info("Wrong JSON Fromat, do not find time"); } if(object.getJSONArray("data")!=null){ JSONArray jsonArray=object.getJSONArray("data"); if(jsonArray.size()<1){ log.info("Wrong JSON Fromat, do not find any data in data list"); }else { for (int index=0;index<jsonArray.size();index++){ JSONObject obj=jsonArray.getJSONObject(index); log.info("stateWord = "+obj.getInteger("stateWord")); if(obj.getString("CustomDataLen")!=null){ log.info("CustomDataLen = "+obj.getString("CustomDataLen")); }else { log.info("Wrong JSON Fromat, do not find CustomDataLen"); } if(obj.getString("CustomData")!=null){ log.info("CustomData = "+obj.getString("CustomData")); }else { log.info("Wrong JSON Fromat, do not find CustomData"); } if(obj.getString("Signature")!=null){ log.info("Signature = "+obj.getString("Signature")); }else { log.info("Wrong JSON Fromat, do not find Signature"); } } } }else { log.info("Wrong JSON Fromat, do not find data"); }
下图为加入断言后,Report中出现列出的错误。