【python】小技巧-判断一个字典中是否包含另一个字典的值,即实际结果中是否包含预期结果

在进行自动化测试的时候,我们经常会遇到这样一种情况。
我们的预期结果是 {'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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值