美文网首页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