使用python精准断言接口response
2022/1/6 17:05:15
本文主要是介绍使用python精准断言接口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)
这篇关于使用python精准断言接口response的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门