美文网首页python接口自动化测试
python接口自动化测试实战( 第六章)

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

作者: 6780441d2bcc | 来源:发表于2019-07-02 23:30 被阅读13次

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

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

进入介绍篇了解你将要走的路: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

相关文章

网友评论

    本文标题:python接口自动化测试实战( 第六章)

    本文链接:https://www.haomeiwen.com/subject/rhixhctx.html