httpclient如何验证响应字段值是否为数字
2017-09-29 13:29
274 查看
本人在使用httpclient做接口功能测试的过程中,有一个需求是验证字段值是否是数字,我设计的用例格式是一个verify_key对应一个verify_value的格式,经过尝试和验证,终于解决了这个问题。数据库中verify_key值为int的时候,我就去验证后面verify_value中的字符是否在相应的json数据中,如果在就去查找后面的值是否是数字,此处不一定是int类型。如果是多个字段使用逗号隔开,不区分中英文逗号,因为会在程序中做兼容。分享代码,供大家参考。
最后一个方法是,从json数据中获取对应值的方法,如果验证失败,就会调用验证包含的方法,如果失败继续调用验证字段值方法,防止一些用例编写上的错误。
其中checknum的方法如下:
这里并未使用正则匹配,主要原因两个,第一我对正则使用并不非常有把握,时间紧,第二,非数字的相应内容并不十分清楚。以后会继续优化代码。
// 获取验证字段类型 private String getDateType(JSONObject response, String key, String value) { String value1 = value;// 存放一个value,因为后面回去value进行编辑 if (key == null || key.isEmpty()) { return value1; } if (key.equalsIgnoreCase("int")) { if (!response.toString().contains(value1)) { return author; } value = value.replace(",", ",");// 替换掉中文逗号 if (value.indexOf(",") == -1) {// 如果不存在逗号,则直接进入验证 boolean result = checkNum(response.toString(), value1); return result ? value1 : author; } else {// 如果包含逗号,先将中文逗号转化为英文都好 List<String> list = new ArrayList<>();// 用list存放获取到的value中的值 for (int i = 0; i < 10; i++) {// for循环获取验证文本 if (value.indexOf(",") == -1) {// 如果已经到头,则直接赋值并添加list,跳出循环 String key1 = value; list.add(key1); break; } String key1 = value.substring(0, value.indexOf(","));// 截取字符串 list.add(key1);// 添加list value = deleteCharFromString(key1 + ",", value);// 删除截取到的字符串 } boolean result = true; for (int i = 0; i < list.size(); i++) { if (!result) { break; } result = result & checkNum(response.toString(), key);// 遍历得到最终结果 } return result ? value1 : author;// 返回值 } } else { return getDataContains(response, key, value1);// 如果不是int,则返回getdatevalue()方法的返回值 } }
最后一个方法是,从json数据中获取对应值的方法,如果验证失败,就会调用验证包含的方法,如果失败继续调用验证字段值方法,防止一些用例编写上的错误。
其中checknum的方法如下:
public boolean checkNum(String text, String key) { boolean result = true; key = "\"" + key + "\""; String key1 = text; String key0; String key2; while (result) { if (!key1.contains(key)) { break; } key1 = key1.substring(key1.indexOf(key)); key0 = key1.substring(0, key1.indexOf(",")); key2 = key0.substring(key0.indexOf(":") + 1); result = isNumber(deleteCharFromString("\"", key2)); key1 = deleteCharFromString(key0, key1); } return result; }
这里并未使用正则匹配,主要原因两个,第一我对正则使用并不非常有把握,时间紧,第二,非数字的相应内容并不十分清楚。以后会继续优化代码。
相关文章推荐
- js验证输入字段是否含有字母数字function checkChar(ic) { if (ic >= 48 && ic <= 57) { return 1; } if ((i
- 如何验证接口响应json字段值不为空
- 在c#.net中,如何判断文本框中的值是否是数字?我想验证身份证输入是否正确。
- ORACLE验证字段值是否为数字
- c# 如何验证一个数字是否是2的幂
- JS如何判断字段是否为数字值
- 如何验证字符串是否为纯数字
- 验证年龄字段是否为数字
- Javascript如何验证是否是数字
- 验证文字字段输入的是否是数字或英言文字母
- [导入]数据库中字段为NULL,业务逻辑层中如何实现判断是否为NULL
- 面试题之HTML 的 form 提交之前如何验证数值文本框的内容全 部为数字? 否则的话提示用户并终止提交?
- Asp.net如何验证TextBox控件只输入数字(五种情况分析)
- httpClient如何接收格式错误的响应头部信息
- 判断字段内容是否为数字
- 验证是否是数字的正则
- js如何判断输入是否为正整数、浮点数等数字的函数
- js如何验证用户输入的只能是数字?
- Oracle sql判断一个字段是否全数字 或含有中文
- iOS开发如何判断字符串是否是整数,浮点数,纯数字