在进行自动化测试的时候,我们经常会遇到这样一种情况。
我们的预期结果是 {'username':'kaishui'}
实际结果是{ 'code': 1 , 'username':'kaishui', 'token':'ihbedvbwejhvkjvberkjvbkjgkesjvbbje' }
我们可以很容易的看出实际结果包含了预期结果的值,所以测试通过。
那么怎么使用python来判断两个字典中是否有着包含关系呢?
注:这里的包含关系是指,A字典中有一个或多个key与B字典一模一样,key对应的value值也一样
方法很简单,封装后如下,可以直接拿去用啦。
def assert_dict(expected,result):
for key in expected:
if (key in result) & (result[key]==expected[key]):
print('测试通过')
else:
raise Exception('断言不通过')
后面就是调用这个方法后的值了:
# 预期结果
expected = {'username':'kaishui'}
# 实际结果
result={
'code': 1 ,
'username':'kaishui',
'token':'ihbedvbwejhvkjvberkjvbkjgkesjvbbje'
}# 如何判断实际结果中包含预期结果的值呢?
def assert_dict(expected,result):
for key in expected:
if (key in result) & (result[key]==expected[key]):
print('测试通过')
else:
raise Exception('断言不通过')assert_dict(expected,result)
实际结果就是测试通过。
我们改变expected中的值,就会报错,代码如下:
# 预期结果
expected = {'username':'kaishui2222'}
# 实际结果
result={
'code': 1 ,
'username':'kaishui',
'token':'ihbedvbwejhvkjvberkjvbkjgkesjvbbje'
}# 如何判断实际结果中包含预期结果的值呢?
def assert_dict(expected,result):
for key in expected:
if (key in result) & (result[key]==expected[key]):
print('测试通过')
else:
raise Exception('断言不通过')assert_dict(expected,result)
那么结果就是:
总结:用来做接口自动化的断言是不错的选择,期望结果可以使用数据库对比数据,然后通过实际结果进行对比,可以达到意想不到的效果
————————————————
版权声明:本文为CSDN博主「暗潮汹涌」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34659777/article/details/105645854