接口测试02

第一部分. requests请求----------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------

1.安装requests

    在线安装: pip install requests
    
    国内源:pip install requests -i http://pypi.douban.com/simple --trusted-host=pypi.douban.com


2. 接口入门

    2-1. get请求

        随机文本
        url = "https://api.vvhan.com/api/ian?type=json"
        抢红包接口 
        url = "http://exam.mofing.com/plan/hongbaorain/439124.json"
        随机情话
        url = "https://api.uomg.com/api/rand.qinghua?format=json"
        考拉FM
        url = "http://api.kaolafm.com/api/v4/pagecontent/list?pageid=103"


    2-2. post请求

        平安查询免费商户接口(只有参数)  
        url = "http://www.pingan.com/cms-tmplt/pinganlife/synShopList.do"
        params = {"dateUpdated":"2017-12-02"}

        腾讯云区块链信息接口(有请求头、请求参数)
        url = "https://cloud.tencent.com/developer/services/ajax/column/article"
        headers = {"Accept":"application/json,text/plain,*/*",
                    "Content-Type":"application/json;charset=UTF-8"}
        params = {  "action":"FetchCategoryArticles",
                    "payload":{"categoryId":102,
                               "pageNumber":1,
                               "pageSize":20,
                               "sortType":"hot"}    }


3. 序列化与反序列化

    3-1. 序列化: 把python数据类型(列表、字典、元组)转换为json字符串格式(str), json.dumps( )
        import json
        info = {"ming": {"sex": "男","cars": ["劳斯莱斯","五菱宏光"] },
                "hong": {"sex": "女","bags": {"qianbao": ["lv","七匹狼"] } } }

        # ensure_ascii=False是将unicode转换为中文,indent=4是缩进4个空格
        info_str = json.dumps(info,ensure_ascii=False,indent=2)
        print(type(info_str))
        print(info_str)


    3-2. 反序列化:把json字符串(str)转换为Python的数据类型(列表、字典、元组),json.loads( )

        import json
        info = """{"ming": {"sex": "男","cars": ["劳斯莱斯","五菱宏光"] },
                "hong": {"sex": "女","bags": {"qianbao": ["lv","七匹狼"] } } }"""

        info_dict = json.loads(info)
        print(type(info_dict))
        print(info_dict)


    3-3. 补充:
        
        # 序列化:将字典转成字符串,并保存到json文件中
            dict1 = {"字典":"字典的值"}
            import json
            with open("../test06.json","w",encoding="utf-8") as f:
                json.dump(dict1,f,ensure_ascii=False,indent=4)    

        # 反序列化:将json文件中的字符串转成字典
            import json
            with open("../test06.json","r",encoding="utf-8") as f2:
                res2 = json.load(f2)
                print(type(res2))    #字典格式
                print(res2)

第二部分. 封装接口测试框架-----------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------
    
    安装xlrd旧版本:pip uninstall xlrd → pip3 install xlrd==1.2.0     

        xlrd的1.2.0版本同时支持读取xlsx和xls,而新版本只支持xls

    安装openpyxl:    pip install openpyxl
        写入xlsx文件


    # 构造项目完整路径,并将其导入临时路径
    projectPath = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    # print(projectPath)
    sys.path.append(projectPath)

    apiFramework        接口框架(设为Sources Root)

        base                                    基础部分                        
            runByMethod.py                 封装请求方式类

        data                                 测试数据、测试用例
            inputData.json
            interface.xlsx    

        operate (utility/utils)   封装操作文件工具类
            operateExcel.py
            operateJson.py

        config                                操作文件
            configCol.py                    配置请求数据列
            getData.py                        工具类配置(读取Excel数据)

        main                                主程序配置
            runMain.py                        主程序
            compareRes.py                封装断言
            sendMail.py                        发送邮件


注: os.getcwd()                                                        # 运行脚本的工作路径(常用)
        os.path.dirname(os.path.abspath(__file__))        # 模块文件所在的路径(常用)

        os.path.abspath(".")                        # 运行脚本的工作路径
        os.path.dirname( os.getcwd())        # 运行脚本所在的路径的上一级路径
        os.path.dirname(__file__)                # 模块文件所在路径(win直接当前运行会不识别)
        os.path.abspath(__file__)                # 模块文件完整路径
        
        

----------------------------------------------------------

有数据依赖

apiFrameworkDepend        接口框架(设为Sources Root)

        base                                    基础部分                        
            runByMethod.py                 封装请求方式类

        data                                 测试数据、测试用例
            inputData.json
            interface.xlsx    

        operate (utility/utils)   封装操作文件工具类
            operateExcel.py
            operateJson.py

        config                                操作文件
            configCol.py                    配置请求数据列
            getData.py                        工具类配置(读取Excel数据等)
            dependData.py                处理依赖数据(获取token值)

        main                                主程序配置
            runMain.py                        主程序
            compareRes.py                封装断言
            sendMail.py                        发送邮件


注:请求头放在了getData.py里面,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值