接口自动化测试,返回值深层完全断言大法
来源:互联网 发布:林黛玉 知乎 编辑:程序博客网 时间:2024/05/18 03:14
今日写了一个对http接口测试中的返回值,json格式 进行深层断言的方法。话不多说,直接上码,觉得好的可以留言支持我一下。在此感谢selenium_python群的第一个高手大师兄蜗牛哥 和 众多高手提供的初始版本。
def compare_json_data(A, B, xpath='.'): if isinstance(A, list) and isinstance(B, list): for i in range(len(A)): try: compare_json_data(A[i], B[i], xpath + '[%s]'%str(i)) except: print '▇▇▇▇▇ A中的%s[%s]未在B中找到'%(xpath,i) if isinstance(A, dict) and isinstance(B, dict): for i in A: try: B[i] except: print '▇▇▇▇▇ A中的%s/%s 未在B中找到'%(xpath,i) continue if not (isinstance(A.get(i), (list, dict)) or isinstance(B.get(i), (list, dict))): if type(A.get(i)) != type(B.get(i)): print '▇▇▇▇▇ 类型不同参数在[A]中的绝对路径: %s/%s ►►► A is %s, B is %s '%(xpath,i,type(A.get(i)),type(B.get(i))) elif A.get(i) != B.get(i): print '▇▇▇▇▇ 仅内容不同参数在[A]中的绝对路径: %s/%s ►►► A is %s, B is %s ' % (xpath, i, A.get(i), B.get(i)) continue compare_json_data(A.get(i), B.get(i), xpath + '/' + str(i)) return if type(A) != type(B): print '▇▇▇▇▇ 类型不同参数在[A]中的绝对路径: %s ►►► A is %s, B is %s ' % (xpath, type(A), type(B)) elif A != B and type(A) is not list: print '▇▇▇▇▇ 仅内容不同参数在[A]中的绝对路径: %s ►►► A is %s, B is %s ' % (xpath, A, B)#俩个字典,传进去,包含了多种情况。A= {'b':[1,2,5,8],'c':3,'d':2,'f':[1,2,3],'g':[1,2,3,[2,'2',2]],'h':'5','i':None,'j':False,'k':{'l':{'m':[{'n':12}]}}}B= {'b':[1,2,'3'],'c':2,'e':'4','f':[1,2,3,5],'g':[1,2,3,[1,2]],'h':[1,2],'i':None,'j':True,'k':{'l':{'m':[{'n':2}]}}}compare_json_data(A,B)
这版本目前只是把所有的不一样的地方都print出来,具体要做成什么样来融合进各位自己的框架中,就看着改,比如发现某参数类型不一样,找不到,就不用继续运行来,直接断言失败或人工触发异常。断言失败,需要传回俩个值,通过self.assert(之类的断言方法) 来判断最终用例执行情况。引发异常就把print改成assert 。
下面上 执行结果。
测试数据:
A={‘b’:[1,2,5,8],’c’:3,’d’:2,’f’:[1,2,3],’g’:[1,2,3,[2,’2’,2]],’h’:’5’,’i’:None,’j’:False,’k’:{‘l’:{‘m’:[{‘n’:12}]}}}
B={‘b’:[1,2,’3’],’c’:2,’e’:’4’,’f’:[1,2,3,5],’g’:[1,2,3,[1,2]],’h’:[1,2],’i’:None,’j’:True,’k’:{‘l’:{‘m’:[{‘n’:2}]}}}
输出结果:
最后,欢迎来留言。不然我还以为我在单机。
阅读全文
4 0
- 接口自动化测试,返回值深层完全断言大法
- 完全自动化测试
- 【接口测试】接口自动化测试
- 自动化测试基础-断言(Assert)使用方法
- Android UiAutomator 自动化测试 断言函数介绍
- 自动化测试基础-断言(Assert)使用方法
- 接口自动化测试
- 接口自动化测试初探
- 接口自动化测试
- 接口自动化测试框架
- SoapUI接口自动化测试
- http接口自动化测试
- 接口自动化测试第一步
- postman接口自动化测试
- 接口自动化测试框架
- python+selenium自动化测试--try except测试断言
- 【接口自动化测试】使用Fitness实现接口自动化测试
- RobotFramework自动化测试框架系统关键字之断言
- XMind如何更改主题样式
- IOS常见的加密方法,常用的MD5和Base64
- Bean复制(Apache BeanUtils、PropertyUtils,Spring BeanUtils,Cglib BeanCopier)
- 二叉树的镜像(递归和非递归)
- linux查看当前加载的所有动态库
- 接口自动化测试,返回值深层完全断言大法
- jquery和js小知识
- 第2章 线性表
- 回调原子化方案调研
- 关于新版SDK报错You need to use a Theme.AppCompat theme的两种解决办法
- 元组、列表、字符串以及切片的一些小操作记录
- Unity_检测网络是否通畅
- PHP错误异常处理详解
- Javascript知识点