如果你不太明白这篇文章是做什么的,点击下方进入介绍篇:
点击跳转到介绍篇,你可以知道自己能收获什么,和将要做的功能点和是否值得学习,别再迷茫了,不日进,则日退,学习才是你应该做的事情。
进入介绍篇了解你将要走的路:python接口自动化测试(第一章)
开始改变人生之旅,不在被开发嫌弃,不在害怕面试没有亮点,没有竞争力。
运行中出现了问题是因为,小鱼我偷偷的在utils.py中增加了代码
咱们使用递归的方式进行获取json的key值,utlis.py代码增加如下:
# 获取接口返回值的格式,在httpcaps.py中进行调用喽
def compare_key_value(json_p):
list_key = []
def getkey_value_all(input_json={}):
if isinstance(input_json, dict): # isinstance() 函数来判断一个对象是否是一个已知的类型
for key in input_json.keys(): # keys() 函数以列表返回一个字典所有的键。
key_value = input_json.get(key) # get() 函数返回指定键的值,如果值不在字典中返回默认值。
if isinstance(key_value, dict): # dict字典
getkey_value_all(key_value)
elif isinstance(key_value, list):
for json_array in key_value:
getkey_value_all(json_array)
else:
# " = " + str(key_value)
# print(str(key))
# 对象下面的key
list_key.append(str(key))
pass
# 对象类型的key
list_key.append(str(key))
elif isinstance(input_json, list):
for input_json_array in input_json:
getkey_value_all(input_json_array)
getkey_value_all(json_p)
return list_key
# 写入token
def writetoken(token):
path = Path('config') / ('txt_final.txt')
# 方法可以写入token和普通常量
f = open(path, 'a')
f.write(token)
f.close()
这个方法,会获取到预期结果和接口返回信息的key值,进行格式校验
内容值不关注,是因为每个接口的信息内容是巨大的,而且自动化不能完全替代手工,所以重要的信息,还是自己动手关注一下比较好,writetoken函数方法,这里提前考虑了登录接口返回的标识码,咱们将标识码存入文本中,方便进行获取
将获取到两个key进行对比
# 对比两个json的函数
def iscompare_json(sub, parent):
# 将json内容传入获取key值
a1 = compare_key_value(sub)
a2 = compare_key_value(parent)
# 两个key值进行对比
flag = operator.eq(a1, a2)
# 一致则通过
if flag == True:
return 'Pass'
# 不通过
else:
return 'Fail'
接下来在utlis文件里面进行一下调试:
if __name__ == '__main__':
sub = {'phone': '17547817934', 'type': '1'}
parent = {'phone': '17547817934', 'type': '1'}
print(iscompare_json(sub, parent))
结果如下:
image修改其中一个json的信息:
if __name__ == '__main__':
sub = {'phone': '17547817934', 'type': '1'}
parent = {'phone': '17547817934', 'sort': '1'}
print(iscompare_json(sub, parent))
结果如下:
image到了这里再次运行httpcaps.py文件就不会出错了哦
接口自动化第七章,开始继续学习吧~
源码下载地址复制地址打开,不然会没有权限:https://gitee.com/zhangmeng1314/seautotet-public.git
感谢您的阅读,本人是希望能帮助到想进步学习的同学,大佬勿喷,我会一直维护此项目争取做的更好,我也是一个小白,希望和大家一起成长,第一次写博客文章,大家有意见感觉写的不好不清楚,评论区留言都可以的哦,我会用最简单的方式去解答您的问题,谢谢
qq群:234922431
网友评论