python接口自动化测试 ( 第六章)

qq群:234922431

如果你不太明白这篇文章是做什么的,点击下方进入介绍篇:

点击跳转到介绍篇,你可以知道自己能收获什么,和将要做的功能点和是否值得学习,别再迷茫了,不日进,则日退,学习才是你应该做的事情。

进入介绍篇了解你将要走的路: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文件就不会出错了哦

接下来我们要做的事情 ,请查看:接口自动化实战第六篇

如果你想获得源码,加qq群将可以获得源码哦,你也可以跟文章一篇一篇的写~

qq群:234922431

你或许想:《去原作者写文章的地方

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论