ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

使用python精准断言接口response

2022-01-06 16:34:24  阅读:231  来源: 互联网

标签:tuple python self value exp expected type response 精准


背景

领导:

断言resful接口返回所有数据,不是单个数据,是所有数据是否正确。

 

解决方案:

1、python 内置模块,difflib.ndiff

确实能找出不同,似乎是解决了问题,领导不满意的是给出的比较结果不够友好,相同的不同的都有,能不能再友好一点

想了许久,确实没有那么好用。另辟他路了

 

2、python 第三库,jsonSceam,模版对比

这个包,经过思考,多用于数据类型的校验等等,而且1个返回就是1个模版

 

3、自行研究,如何解决

思路1:json返回,以键值对的方式给出数据,考虑键出的值的类型做相应处理操作

思路2:每个json返回都不一样,有的数据量很大,嵌套层数很多,如何解决不定长的返回数据

            灵感1 --- 职业生涯,*号解包,自动填入不定长参数 -> func(*args)

            灵感2 必须让它自动化起来,无论返回的嵌套多少层

             最终想起读过的一本书,自动化的解决问题——》 递归函数,一直处理,直到它不能再处理即结束

源码如下

def __assert_recursion(self, expected, actual):
exp_type = type(expected)
if exp_type is list:
for exp, act in zip(expected, actual):
self.__assert_recursion(exp, act)
elif exp_type is dict:
for exp, act in zip(expected.items(), actual.items()):
self.__assert_recursion(exp, act)
elif exp_type in (int, str, bool, float):
self.__baseAssert_items(expected, actual, condition='equal')
elif exp_type is tuple:
tuple_value_type, tuple_key, tuple_value = type(expected[1]), expected[1], actual[1]
if tuple_value_type is list:
self.__assert_recursion(tuple_key, tuple_value)
elif tuple_value_type is dict:
self.__assert_recursion(tuple_key, tuple_value)
elif tuple_value_type in (int, str, bool, float):
self.__baseAssert_items(expected, actual, condition='equal')
else:
raise TypeError(tuple_value_type)
else:
raise TypeError(exp_type)

 

标签:tuple,python,self,value,exp,expected,type,response,精准
来源: https://www.cnblogs.com/zhayi/p/15771642.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有