接口自动化测试之旅--JsonSchema
来源:互联网 发布:设备吞吐量测试软件 编辑:程序博客网 时间:2024/06/16 12:41
接口自动化测试之旅–JsonSchema
针对接口测试结果校验,现在除了对返回值一一的校验以外,由于一一校验的不完整性,由此增加了JsonSchema的校验方式,可以全局方式校验 JSON结构
在线 JSONSchema 生成地址:http://JSONschema.net/#/home
JAVA工程增加jar包
<dependency> <groupId>com.github.fge</groupId> <artifactId>json-schema-validator</artifactId> <version>2.2.6</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.3.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.3.0</version> </dependency>
封装成方法
/** * JSON Schema 比对 * 生成格式文件地址: http://JSONschema.net/#/home * @param data 本地源JOSNS数据 * @param schema JSON Schema * @return */ public static Boolean validationJSONSchema(String data,String schema){ ProcessingReport resultReport = null; try{ //源jsonNode JsonNode dataValue = JsonLoader.fromString(data); log.info("源JSONSchema:" + dataValue.toString()); //目标jsonNode JsonNode schemaValue = JsonLoader.fromString(schema); log.info("目标JSONSchema:" + schemaValue.toString());// ProcessingReport resultReport = factory.getValidator().validateUnchecked(sourceJSONNode,targetJSONNode); resultReport = factory.byDefault().getValidator().validateUnchecked(schemaValue,dataValue); if(resultReport.isSuccess()){ log.info("JSON Schema匹配 通过"); return true; } }catch (Exception e){ e.printStackTrace(); log.info("JSON Schema匹配 失败"); } log.info("JSON Schema匹配 失败"); Iterator<ProcessingMessage> it = resultReport.iterator(); while (it.hasNext()) { log.info(it.next()); } return false; }
测试验证:
/** * 测试查询章节详情 */ @Test public void testGetTrainingChapter() throws IOException { String chapterId = "189"; String userId = "10980500000"; int pageIndex = 1; int pageSize = 20; JSONObject result = JSONObject.fromObject(sampleApi.getTrainingChapter(chapterId,userId,pageIndex,pageSize)); String dataValue = fileMethodUtils.readTxtViaResources("JSONSchema/SampleApi/getTrainingChapter/200.txt"); String schemaValue = result.toString(); //JSON格式比对 Assert.assertTrue("JOSN格式比对结果:",validationJSONSchema(dataValue,schemaValue)); }
0 0
- 接口自动化测试之旅--JsonSchema
- WEB接口测试之Jmeter接口测试自动化 (一)
- WEB接口测试之Jmeter接口测试自动化 (二)
- 接口自动化测试系列之PHPUnit-接口测试基础
- 接口自动化测试系列之PHPUnit-接口测试的步骤
- 接口自动化测试介绍之Requests
- 接口自动化测试之http请求实践
- 【接口测试】接口自动化测试
- 接口自动化测试
- 接口自动化测试初探
- 接口自动化测试
- 接口自动化测试框架
- SoapUI接口自动化测试
- http接口自动化测试
- 接口自动化测试第一步
- postman接口自动化测试
- 接口自动化测试框架
- WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)
- Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
- 哈夫曼树建立与求最短带权路径长度
- $.ajax()详解
- [leetcode] -6 ZigZag Conversion
- 扑克牌原始顺序
- 接口自动化测试之旅--JsonSchema
- MySQL漂流记之常用(二)--数据库垂直扩展和水平扩展
- 代理(代理服务器)
- 学习博客 有微信项目
- netcat 瑞士军刀
- OSAL系统框架专题
- 2017入职规划
- 4.2 对Direct3D进行初始化
- Ubuntu:从源码安装tensorflow r1.0