Python3学习笔记_接口问题总结_20200623
1、为什么得到预期结果是从postman获取?
从postman中得到的结果是开发写的接口实际返回的结果,如果跟接口文档写的不一样,那就是有bug
自己的写的代码请求接口如果与postman写的返回的结果不一致,那就是自己写的代码有问题
其实,使用postman请求接口,就能知道有没有bug,我们写的代码返回与postman得到的做比较,
如果这个接口是稳定性的,那么只是为了回归保障性测试
2、为什么代码写的接口和postman请求,传参一样,接口地址一样,为啥得到的结果确不一样?
基本就是自己代码写的有问题:
检查预期结果是否写对了
检查传参是否正确
打印一下传的参数就知道了
3、得到的结果不一样,如果预期结果没问题,那代码写的接口请求回来不对说明研发写的不对或者是自己写的代码不对,是这样吗?
说明是自己写的代码不对
4、那怎么来判定是自己写的代码不对还是研发写的接口有问题?
只要postman返回的结果与接口文档一致就不是bug
如果自己写的代码返回的跟预期结果不一致就是自己代码的问题
5、在中间层中声明了该类的属性,为啥使用的时候还要用对象名.属性?
使用了装饰器,在调用的使用应该是要用对象名.属性来调用
6、在if替换中,使用data接收和使用test_info[‘data’]接收不一样,使用data接收会报错,使用test_info[‘data’]接收就不会,这是为啥?
因为如果使用data接收,不满足if的话,json=data传入的值就不对了,所以要使用test_info[‘data’]
7、如果用例中传参没有计算的话,使用eval()和json.loads()应该是一样的,那为啥实际接口使用中确不是这么回事呢?
先打印一下传参看看情况
8、换成eval之后,Excel中如果是传的数据的值如果是布尔型的,不是应该是true/false吗?这样eval()就转成了字典,现在是传的时候Excel写True/False才可以?
应该eval只是把外层的引号去掉,并不会自动把true转成True,而json.loads()不仅会把外层的引号去掉,还会把里面的数据转换成字典形式
eval()只能转去掉引号后是Python的数据类型,如果不是则不能转
eval()可转:① 将字符串列表转换为列表 ② 将字符串元组转换为元组 ③ 将字符串字典转换为字典