python自动化适应多接口的断言怎么做?
最近做的接口自动化,遇到了很多模块的接口,返回的断言不太相同,在放在unnitest单元测试框架+ddt数据驱动,做参数时,发现不能只通过一个方式进行断言,那么,要怎么做才能做到适配当前所有接口的断言呢?
先举个例子,大部分接口返回的内容,都是json格式,都可以通过相应的key值,进行取值
1. 登录接口,登录成功,会返回一个code
{
"code":0,
"msg": "登录成功”
}
2.第二个,新增一样商品的接口的返回报文:
{
"errcode":0,
"msg": "新增成功”
.省略其他内容......
}
可以通过例子,看到这两个对于成功,返回的key值,已经不同了
断言方式:
1. 第一种,对于返回报文简单的,可以采取完全断言
2. 第二种,对于接口返回的内容负责,只能抽取关键的进行断言
实际情况:
目前做的接口,就存在两个情况,要同时兼容这两种情况,进行断言检验
目前的实施方案:
1. 用例数据采用excel进行管理,会有一列校验类型来做区分,分别传入0或具体的key值来做判断,是做完全断言还是取其中的来做断言
2. 对于部分断言,采用的是和jsonpath结合来做,和xpath类似,比较简单易用,比如要取登录成功的code的jsonpath,可以写成是$..code,jsonpath的详细用法,可参考百度。
推荐一篇文件,关于断言:http://testingpai.com/article/1595507145193
总结:
有想法是件好事,没想法,完全下不了手,不妨,多些想法,实现适用的方法。