从数据库取值和响应值做比较,使用beanshell如下:
import org.json.JSONArray; import org.json.JSONObject; res_str = prev.getResponseDataAsString(); JSONObject res_json_obj = new JSONObject(res_str); JSONArray dbd_json_array = new JSONArray("${dbd}"); // 数据库转json JSONObject dbd_json_obj = new JSONObject(); FailureMessage = ""; Failure = true; res_json_obj = new JSONObject(res_json_obj.get("data").toString()); if (!res_json_obj.isNull("list")) { JSONArray res_json_array = new JSONArray(res_json_obj.get("list").toString()); log.info("响应长度:" + res_json_array.length()); log.info("数据返回长度:" + dbd_json_array.length()); if (res_json_array.length() == dbd_json_array.length()) { for (int i = 0; i < dbd_json_array.length(); i++) { Message = "\n第"+i+"条记录:"; res_json_obj = res_json_array.getJSONObject(i); dbd_json_obj = dbd_json_array.getJSONObject(i); System.out.println(res_json_obj); Iterator keys = dbd_json_obj.keys(); while (keys.hasNext()) { String key = (String) keys.next(); String resvalue=""; String dbdvalue=""; System.out.println("key:" + key); if (key.equals(null) || key.equals("")) { Message += key + "不存在;"; FailureMessage += Message; Failure = true; log.info(Message); break; } if(res_json_obj.has(key) && dbd_json_obj.has(key)) { resvalue = res_json_obj.getString(key); dbdvalue = dbd_json_obj.getString(key); }else { Message += key + "不存在;"; FailureMessage += Message; Failure = true; log.info(Message); break; } if (resvalue.equals(dbdvalue)) { Message += key + "匹配成功;"; Failure = false; } else { Message += key + "匹配不成功,数据库值:" + dbdvalue + ",响应值:"+resvalue; FailureMessage += Message; Failure = true; log.info(Message); break; } log.info("value:" + res_json_obj.get(key)); } } } else { Message += "接口响应与数据库数据不匹配;"; Message += "响应数据:" + res_json_array + "|数据库查询结果:" + dbd_json_array; FailureMessage += Message; Failure = true; log.info("value:" + res_json_obj.get(key)); break; } } else { FailureMessage = "返回数据为空"; log.info(FailureMessage); Failure = true; return; }