eg:例如你调用了一个新增的接口,以往功能测试的话,你再web端新增一个店铺之后,你肯定要去数据库中查看,这些数据插入的对不对,是否正确的插入了每个字段

# 比较两个字典部分是否相等
def compare_two_dict(dict1, dict2, key_list):
flag = True
keys1 = dict1.keys()
keys2 = dict2.keys()
if len(key_list) != 0:
for key in key_list:
if key in keys1 and key in keys2:
if dict1[key] == dict2[key]:
flag = flag & True
else:
flag = flag & False
else:
raise Exception('key_list contains error key')
else:
raise Exception('key_list is null')
if flag:
result = 'PASS'
else:
result = 'FAILED'
return result if __name__ == '__main__':
dict1 = {
'a': 1,
'b': 2,
'c': 3,
'd': 4
}
dict2 = {
'a': 1,
'b': 2,
'c': 3,
'd': 8
}
key_list = ['a', 'c', 'b', 'd']
result = compare_two_dict(dict1, dict2, key_list)
print(result)

按照上面的列子我写出了自己的代码:前置条件:

但是有个前提条件:

'''
table:表名
key:要查找的字段名称
value:要查找的字段值
**kwargs:要检验的字段值,通过我新增的数据与数据库中的对比
例如你调用了一个新增的接口,以往功能测试的话,你再web端新增一个店铺之后,你肯定要去数据库中查看,这些数据插入的对不对,是否正确的插入了每个字段
'''
def assert_add_contents(db,cursor,table,key,value,**kwargs):
sql = 'select * from {} where {}={}'.format(table,key,value)
num = cursor.execute(sql)
result = cursor.fetchall()
print("查找到%d条数据" % num)
print("数据库查询数据为:{}".format(result))
# 这个是要对比的字段
field_list = list(kwargs.keys())
if num > 0:
print("kwargs:{}".format(kwargs))
print("result:{}".format(result[0]))
flag = True
keys1 = kwargs.keys()
keys2 = result[0].keys()
if len(field_list) != 0:
for key in field_list:
if key in keys1 and key in keys2:
if kwargs[key] == result[0][key]:
flag = flag & True
else:
flag = flag & False
else:
raise Exception('key_list contains error key')
else:
raise Exception('key_list is null')
if flag:
result = 'PASS'
else:
result = 'FAILED'
print("result============================={}".format(result))
return result
else:
pass db = config.db
cursor = db.cursor(cursor = pymysql.cursors.DictCursor) param = PostParameter().post_param(path,"shop","add_shop.json", "case001")
print("param[data]:{}".format(param["data"]))
shop_name = param["data"]["shop_name"]
shop_short_name = param["data"]["shop_short_name"]
shop_phone = param["data"]["shop_phone"]
province = param["data"]["province"]
city = param["data"]["city"]
district = param["data"]["district"]
town = param["data"]["town"]
address = param["data"]["address"] assert_add_contents(db,cursor,"t_shop_info","id","",shop_name = shop_name,shop_short_name = shop_short_name,shop_phone = shop_phone,province = province,city = city,district = district,town = town,address = address)

Python--比较两个字典部分value是否相等(可以用于接口自动化)的更多相关文章

  1. Python: 比较两个字典是否相等

    有些情况下会遇到比较两个字典是否相等的问题 直观来想,会比较键是否一致,其对应的值是否相等 python中,还有有另外两种方法: 直接使用== a = {'a': 1, 'b': 2} b = {'a ...

  2. Python 中两个字典(dict)合并

    dict1 = { "name":"owen", "age": 18 } dict2 = { "birthday": & ...

  3. python 对比两个字典的差异

    实际遇到的问题逻辑很繁杂,就不全写了.最后是通过对比两个字典差异来解决的.找出两个字典的差异,可参考以下代码. dict1 = {'a':1,'b':2,'c':3,'d':4} dict2 = {' ...

  4. python合并两个字典

    1.借助dict(d1.items() + d2.items())的方法 2.借助字典的update()方法,没有返回值 3.借助字典的dict(d1, **d2)方法 4.d3={**d1,**d2 ...

  5. 【转载】Python中如何高效实现两个字典合并,三种方法比较。

    本文转载自:http://www.pythoner.com/13.html Python中将两个字典进行合并操作,是一个比较常见的问题.本文将介绍几种实现两个字典合并的方案,并对其进行比较. 对于这个 ...

  6. python 两个字典合并

    dict1={1:[1,11,111],2:[2,22,222]}dict2={3:[3,33,333],4:[4,44,444]}合并两个字典得到类似 {1:[1,11,111],2:[2,22,2 ...

  7. 【python cookbook】【数据结构与算法】9.在两个字典中寻找相同点

    问题:寻找两个字典中间相同的地方(相同的键.相同的值等) 解决方案:通过keys()或者items()方法来执行常见的集合操作(比如求并集.交集和差集)

  8. python两个字典合并,两个list合并

    1.两个字典:a={'a':1,'b':2,'c':3} b= {'aa':11,'bb':22,'cc':33} 合并1:dict(a,**b)  操作如下: 合并2:dict(a.items()+ ...

  9. Python两个字典键同值相加的几种方法

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/Jerry_1126/article/de ...

随机推荐

  1. Codeforces Round #600 (Div. 2) C - Sweets Eating

    #include<iostream> #include<algorithm> #include<cstring> using namespace std ; typ ...

  2. Linux - Shell - 替换文件名中的空格

    概述 使用 shell 替换 文件名中的空格 背景 尝试用 find 配合 xargs, 在多个文件里找关键字 出现了问题 有空格的文件名, 并不是很好处理 准备 os centos7 1. 问题: ...

  3. 【Python】浮点数用科学计数法表示

  4. VNCserver 安装 及 oracle过程总结

    一.安装桌面系统 1.命令   yum grouplist ---列举系统中以组安装的包(组安装的包会包括很多,组安装一下就就可以安装很多附在的包.) 2.  yum groupinstall &qu ...

  5. COMMUNITY DETECTION

    Method 1: M. E. J Newman ‘Networks: An Introduction’, page 224 Oxford University Press 2011. from ne ...

  6. 关于jquery ajax不执行success回调函数

    检查error函数是否执行,发现错误信息为parseerror,表示jquery解析返回结果时失败,只需要将ajax参数dataType:"json"改为"text js ...

  7. 本地cmd连接远程mysql数据库

    一.登录远程mysql 输入mysql -h要远程的IP地址 -u设置的MySQL用户名 -p登录用户密码 例如:mysql -h 192.168.1.139 -u root -p dorlocald ...

  8. codeforces Codeforces Round #597 (Div. 2) D. Shichikuji and Power Grid

    #include<bits/stdc++.h> using namespace std ; int n; struct City { int id; long long x,y; //坐标 ...

  9. HTML 5 视频直播一站式扫盲(转载)

    http://www.alloyteam.com/2016/05/h5-camera-literacy/

  10. css的理解 ----footrt固定在底部

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...