专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 软件测试

接口自动化,断言方法,深度定位异常

发布时间:2011-06-20 19:10:54 文章来源:www.iduyao.cn 采编人员:星星草
接口自动化,断言方法,深度定位错误

接口自动化,断言方法,深度定位错误。

 

代码如下:

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # @Time    : 2017-07-27 13:49
 4 
 5 # 断言方法,比较两个list或dict的不同之处
 6 
 7 a= {'b':[1,2,5,8],'c':3,'d':2,'f':[1,2,3],'g':[1,2,3,[2,'2',2]],'h':'5'}
 8 b= {'b':[1,2,'3'],'c':2,'e':'4','f':[1,2,3,5],'g':[1,2,3,[1,2]],'h':[1,2]}
 9 
10 def compare_json_data(A, B, L = [], xpath = '.'):
11     if isinstance(A, list) and isinstance(B, list):
12         for i in range(len(A)):
13             try:
14                 compare_json_data(A[i], B[i], L, xpath + '[%s]' % str(i))
15             except:
16                 L.append('▇▇▇ A中的key %s[%s]未在B中找到\n' % (xpath, i))
17     if isinstance(A, dict) and isinstance(B, dict):
18         for i in A:
19             try:
20                 B[i]
21             except:
22                 L.append('▇▇▇ A中的key %s/%s 未在B中找到\n' % (xpath, i))
23                 continue
24             if not (isinstance(A.get(i), (list, dict)) or isinstance(B.get(i), (list, dict))):
25                 if type(A.get(i)) != type(B.get(i)):
26                     L.append('▇▇▇ 类型不同参数在[A]中的绝对路径:  %s/%s  ►►► A is %s, B is %s \n' % (xpath, i, type(A.get(i)), type(B.get(i))))
27                 elif A.get(i) != B.get(i):
28                     L.append('▇▇▇ 仅内容不同参数在[A]中的绝对路径:  %s/%s  ►►► A is %s, B is %s \n' % (xpath, i, A.get(i), B.get(i)))
29                 continue
30             compare_json_data(A.get(i), B.get(i), L, xpath + '/' + str(i))
31         return
32     if type(A) != type(B):
33         L.append('▇▇▇ 类型不同参数在[A]中的绝对路径:  %s  ►►► A is %s, B is %s \n' % (xpath, type(A), type(B)))
34     elif A != B and type(A) is not list:
35         L.append('▇▇▇ 仅内容不同参数在[A]中的绝对路径:  %s  ►►► A is %s, B is %s \n' % (xpath, A, B))
36     return L
37 
38 def Assert(A,B):
39     C = []
40     compare_json_data(A, B, C)
41     assert len(C) == 0, "\n"+"".join(C)
42 Assert(a, b)

效果图如下:

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: