httpclient接口测试如何对检查点做兼容

来源:互联网 发布:网络舆论引导 编辑:程序博客网 时间:2024/06/05 14:18

本人在使用httpclient做接口测试的过程中,遇到了一个比较麻烦的问题,就是检查点设置,检查点有的取的是json某个字段值和期望值对比,有的是对json里面的date数据(也是 json格式)的某些字段值和期望值比较,有的去的是返回信息是否包含某些文本,经过不断尝试,终于写了一个检查方法, 兼容了所有的检查点设置情况,其中包括包含文本可以设置多个文本还有从数据库读取检查点为null或者empty的情况。分享代码,供大家参考。

// 获取返回值是否存在在json数据中public String getDateContains(JSONObject response, String key, String value) {String value1 = value;//存放一个value,因为后面回去value进行编辑value = value.replace(",", ",");//替换掉中文逗号if (key.equals("text")) {//如果key字段名为text,表示进入文本包含验证if (value.indexOf(",") == -1) {//如果不存在逗号,则直接进入验证boolean result = response.toString().contains(value);return result ? value1 : author;} else {//如果包含逗号,先将中文逗号转化为英文都好List<String> list = new ArrayList<>();//用list存放获取到的value中的值for (int i = 0; i < 5; i++) {//for循环获取验证文本if (value.indexOf(",") == -1) {//如果已经到头,则直接赋值并添加list,跳出循环String key1 = value;list.add(key1);break;}String key1 = value.substring(0, value.indexOf(","));//截取字符串list.add(key1);//添加listvalue = deleteCharFromString(key1 + ",", value);//删除截取到的字符串}boolean result = true;for (int i = 0; i < list.size(); i++) {if (!result) {break;}result = result & response.toString().contains(list.get(i));//遍历得到最终结果}return result ? value1 : author;//返回值}} else {return getDateValue(response, key);//如果不是text,则返回getdatevalue()方法的返回值}}

// 获取返回信息里面数据的检查点对应的值public String getDateValue(JSONObject response, String key) {String jsonValue = null;jsonValue = getJsonValue(response, key);if (jsonValue == null) {try {JSONObject jsonObject = (JSONObject) response.get("data");jsonValue = (String) jsonObject.getString(key);} catch (JSONException e) {output("json数据错误!", e);}}return jsonValue;// 返回对应值}

// 获取json数据中的相应值private String getJsonValue(JSONObject response, String key) {String jsonValue = null;try {jsonValue = (String) response.getString(key);} catch (JSONException e) {output("json数据错误!", e);}return jsonValue;// 返回对应值}
末了宣传一下自己的UiAutomator交流群,缘起于UiAutomator,又不止于UiAutomator。


原创粉丝点击