olga 发表于 2018-10-19 08:14:00

Jmeter接口测试通过SQL查询进行数据校验

import com.alibaba.fastjson.*;  import java.util.*;

  public>  /**
  * 对JSON进行排序
  * @param jsonStr
  * @return
  */
  @SuppressWarnings({ "rawtypes", "unchecked" })
  public static List generateSortedTreeMap(String jsonStr){
  //最终接受排序后的数据
  List dataList = new ArrayList();
  //对数据转换成有序的Map
  List list = new ArrayList();
  try {
  list = JSON.parseArray(jsonStr, Map.class);
  }catch(Exception e) {
  System.out.println("+++++++++转换JSON数组失败,尝试转换成JSON对象:"+e.getMessage());
  try {
  Map obj = JSON.parseObject(jsonStr, Map.class);
  list.add(obj);
  }catch(Exception e1) {
  System.out.println("+++++++++JSON对象转换失败:"+e.getMessage());
  }
  }
  for(Map map:list) {
  //获取JSON的键
  Set keys = (Set)map.keySet();
  List sortKeys = new ArrayList(keys);
  //对键进行排序
  Collections.sort(sortKeys);
  //使用有序列表来存储
  TreeMap tree = new TreeMap();
  for(String key:sortKeys) {
  tree.put(key, map.get(key));
  }
  dataList.add(tree);
  }
  return dataList;
  }
  /**
  * 对比两个JSON
  * @param json1
  * @param json2
  * @return
  */
  public static boolean compareJSON(String json1,String json2) {
  List data1List = generateSortedTreeMap(json1);
  List data2List = generateSortedTreeMap(json2);
  for(TreeMap map:data1List) {
  if(!data2List.contains(map)) {
  return false;
  }
  }
  return true;
  }
  /*
  public static void main(String[] args) {
  //JSON字符串
  //String json1 = "[{\"size\": 6,\"data\": \"hello linux\",\"data1\":{\"aa\":1,\"id\": {\"userid\": 3333,\"name\": \"hello world\"}}}},{\"data\": \"world\",\"size\": 7}]";
  //String json2 = "[{\"data\": \"world\",\"size\": 7}, {\"data1\":{\"aa\":1,\"id\": {\"userid\": 3333,\"name\": \"hello world\"}},\"data\": \"hello linux\",\"size\": 6}]";
  //String json1 = "[{\"name\": \"work\",\"passwd\": \"123456\",\"classname\": [ {\"name\": \"match\",\"score\":78},{\"name\": [ {\"name\": \"match\",\"score\":78} ]} ],\"teacher\":[ {\"name\": \"bob\",\"classname\": \"99\" }]}]";
  //String json2 = "[{\"name\": \"work\",\"passwd\": \"123456\",\"classname\": [ {\"score\":78,\"name\": \"match\"},{\"name\": [ {\"name\": \"match\",\"score\":78} ]} ],\"teacher\":[ {\"name\": \"bob\",\"classname\": \"99\" }]}]";
  //String json1="{\"size\": 6,\"data\": \"hello linux\"}";
  //String json2="{\"data\": \"hello linux\",\"size\": 6}";
  //String json1 = "{\"name\": \"testuser\",\"passwd\": \"123456\",\"classname\": [ {\"name\": \"match\",\"score\":78},{\"name\": [ {\"name\": \"match\",\"score\":78} ]} ],\"teacher\":[ {\"name\": \"bob\",\"classname\": \"99\" }]}";
  //String json2 = "{\"passwd\": \"123456\",\"name\": \"testuser\",\"classname\": [ {\"name\": \"match\",\"score\":78},{\"name\": [ {\"name\": \"match\",\"score\":78} ]} ],\"teacher\":[ {\"name\": \"bob\",\"classname\": \"99\" }]}";
  boolean result = compareJSON(json1, json2);
  System.out.println(result);
  }
  */
  }

页: [1]
查看完整版本: Jmeter接口测试通过SQL查询进行数据校验