一.先看有报错后jmeter显示:
二.jmeter添加beanshell断言
try{
String userName=vars.get("userName");
String prefix=userName+"【断言前置说明"+${currentPage}+"页】";
StringBuilder sb = new StringBuilder();
String sql="select " ;
String response= prev.getResponseDataAsString();
String url=vars.get("jdbcurl");
String username=vars.get("jdbcusername");
String psword=vars.get("jdbcpsword");
if(response.contains("data")){
AssertionTool at = new AssertionTool(url,username,psword);
String [] keys =new String[]{"data","list"}; //返回json数据的data下面的list
String assertResut = at.assertResultListWithJsonKeys(prefix,assertRecommendProductModelSql,response,keys);
sb.append(assertResut);
if(assertResut!=null&&!assertResut.isEmpty()){
Failure = true;
FailureMessage=assertResut;
}
}else{
Failure = true;
FailureMessage=prefix+"系统异常:"+response;
}
}catch (Exception e){
Failure = true;
ByteArrayOutputStream buf = new java.io.ByteArrayOutputStream();
e.printStackTrace(new java.io.PrintWriter(buf, true));
Failure = true;
FailureMessage=new String( buf.toByteArray()); ;
try {
buf.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
二、实现代码:
创建数据库
根据不同类型将返回列名称跟数据放入hashMap中
再根据sql的结果hashmap的key获取返回的数据的值,再进行对比: