每天进步一点点,关注我们哦,每天分享测试技术文章
本文章出自【码同学软件测试】
码同学公众号:自动化软件测试
码同学抖音号:小码哥聊软件测试
对于接口测试来说,只判断响应状态码为200是远远不够的,我们经常必须去验证响应内容中的业务字段是否正确,本文将采用Rest-Assured框架来实现接口响应的判断。如果对rest-assured框架不太了解的同学,可以参考这篇文章:
“技术干货|接口测试框架rest-assured搭建(符源码)”
1
接口信息的调试
当我们在做接口测试时,通常希望将接口的请求及响应信息打印出来帮助我们debug,那么在Rest-assured框架中如何将接口信息打印在控制台呢,如下图代码红框中框出来的:
![](https://img.haomeiwen.com/i18223020/aa21b5b4d9dca2c5.png)
控制台打印出请求信息如下:
![](https://img.haomeiwen.com/i18223020/56ddd1a924bfbf2a.png)
响应信息如下:
![](https://img.haomeiwen.com/i18223020/0ab5e29354ef8dd0.png)
2
针对接口响应信息做断言
2.1 判断响应中单字段对应的内容是否正确
以上图中的响应结果中的message字段为例,因为响应结果是json格式的,因此我们可以采用body()方法来直接提取,并且采用equalTo()来对比。
使用前先导入
import static org.hamcrest.Matchers.*;
具体代码如下:
![](https://img.haomeiwen.com/i18223020/075b90339b5951ad.png)
免费领取码同学软件测试课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章+ 私信「码同学666」获取资料哦
2.2 判断响应中多个字段对应的内容是否正确
body()方法中可以针对多个字段连续判断,用逗号隔开多个判断
具体代码如下:
![](https://img.haomeiwen.com/i18223020/098bb3715d1da0a3.png)
还有另外一种写法,写多个body()方法,如下:
![](https://img.haomeiwen.com/i18223020/a8193efc0656d0ef.png)
2.3 判断响应中的某个字段对应的数值的大小
比如上述接口中的id值对应的是数字,我想判断id对应的数字小于2,代码如下:
![](https://img.haomeiwen.com/i18223020/ec266ca4cae28c00.png)
那么大家可以想想如果想判断比某个数字大呢?这里可以给大家列举一下:
1、lessThan(x):表示比某大小
2、lessThanOrEqualTo(x):表示小于等于
3、greaterThan(x):表示比某个值大
4、greaterThanOrEqualTo(x):表示大于等于
2.4 判断响应中的多个相同字段的值
比如有一个接口是获取用户列表,响应结果如下:
![](https://img.haomeiwen.com/i18223020/54aef0b004d4b2c2.png)
目标是判断响应中所有的userName都正确,具体实现代码如下:
![](https://img.haomeiwen.com/i18223020/678543d8715473c7.png)
其中path:data.userName表示选取响应结果中data字段下的所有userName字段
hasItems表示结果中是否包含这几个选项,需要一一对应哦
在上述案例中做断言时都用到了一个path参数,该参数表示使用某种路径表达式从响应结果中提取相应内容,那么在Rest-assured中针对json格式的响应结果采用JsonPath来提取,针对xml格式的响应结果采用xmlPath来提取,关于这两种类型的提取规则我们下次再说
免费领取码同学软件测试课程笔记+超多学习资料+学习完整视频,可以关注我们公众号哦:自动化软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
网友评论