TA的每日心情 | 无聊 2024-7-12 13:16 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
前言使用 rest-assured 也有一段时间了,虽然这个框架有很多优势,但最钟爱的还是json解析这块,对于我这种不爱太动脑子的人来说,拿来主义最适合了基本也满足了测试工作的日常所需 ,当然对于无法满足又想一次性解决的问题,也只能自己苦逼的去改八改八了
虽然也有在用JsonPath但与rest-assured 的JsonPath来说,rest的更加方便快捷,不过更恶心的JAONArray也在用......
示例接口:http://testerhome.com/api/v3/top ... p;type=last_actived
标准的JsonPathhttps://github.com/jayway/JsonPath
JsonPath提供了很全的操作JSON的方法
- 获取topcis列表
List<String> topics = JsonPath.read(jsonStr,"$.topics") - 获取topcis第一条记录
Object topics1 = JsonPath.read(jsonStr,"$.topics[0]"); - 获取topcis第一条记录中title的值
String topics1title = JsonPath.read(jsonStr,"$.topics[0].title"); - 获取topcis中所有title的名称
List<String> titles = JsonPath.read(jsonStr,"$.topics - .title");
- 还有一个非常有意思的使用方法,通过属性进行获取
比如:获取id=6421的对象、获取name == 恒温的
Object topicid = JsonPath.read(jsonStr,"$.topics[?(@.id == 6421)]"); Object topicname = JsonPath.read(jsonStr,"$.topics - .user[?(@.name == '恒温')]");
rest-assured的jsonpathhttps://github.com/rest-assured/rest-assured/blob/master/json-path/src/main/java/io/restassured/path/json/JsonPath.java
- 获取topcis列表
List<String> topics = jsonPath.getList("topics"); - 获取topcis第一条记录
String topics1 =jsonPath.getString("topics[0]"); - 获取topcis第一条记录中title的值
String topics1title = jsonPath.getString("topics[0].title"); - 获取topcis中所有title的名称
List<String> titles = jsonPath.getList("topics.title"); - 和jsonpath一样也可以通过属性进行获取
比如:获取id=6421的对象、获取name == 恒温的
String topicid = jsonPath.getString("topics.findAll{topics -> topics.id == 6421}");String topicname = jsonPath.getString("topics.user.findAll{user -> user.name == '恒温'}");
可以看出- rest-assured的语法上比jsonpath更加简明易懂,输写简单
- rest-assured的取值方式也更加多样化,和JAONArray差不多:getString()、getInt()、getList()、getBoolean()等等
- 取深层结构一直点下去就可以了,也不用考虑节点是不是列表、对象之类的了
对于测试同学来说,这些是不是非常的方便,也很容易上手呢
但是在实际测试过程中单纯的取值判断是不可能满足测试需要,往往还需要对结构进行整体验证,对于这类检查,只能自己苦逼的码代码了,本人非专业开发人士,相关卫道者请轻拍
有需要的同学可以拿去改八改八耍~~ 当然如有问题也请及时CALL我,我也同步修改一下。。。。。。
验证结构相关代码
|
|