美文网首页test
零基础小白(二)Requests请求方式之Get 和Post封装

零基础小白(二)Requests请求方式之Get 和Post封装

作者: 巴鶴 | 来源:发表于2021-01-10 08:32 被阅读0次

    接口自动化测试过程中,如果每个请求类型都写成单独的函数,代码复用性不强.如果把请求类型都封装起来,自动化用例都可以用这个封装的请求类进行请求,比较方便,代码简洁,效率高!! Requests常用请求方式Get 和Post,本文介绍封装Get 和Post请求。

    Pycharm创建工具类文件夹utils,新建RequestsUtil.py脚本文件,供后续接口测试用例调用!!

    步骤1: 创建封装get方法,代码参考

    def requests_get(url,headers):
        #1、发送get请求
        r = requests.get(url,headers = headers)
        #2、获取结果相应内容
        code = r.status_code
        try:
            body = r.json()
        except Exception as e:
            body = r.text
        #3、内容存到字典
        res = dict()
        res["code"] = code
        res["body"] = body
        #4、字典返回
        return res
    

    步骤2: 创建封装post方法,代码参考

    def requests_post(url,json = None,headers = None):
        #1、发送get请求
        r = requests.post(url,headers = headers,json = json)
        #2、获取结果相应内容
        code = r.status_code
        try:
            body = r.json()
        except Exception as e:
            body = r.text
        #3、内容存到字典
        res = dict()
        res["code"] = code
        res["body"] = body
        #4、字典返回
        return res
    

    步骤3: 重构get和post请求,定义公共方法

    class Request:
    #2、定义公共方法
        def __init__(self):
            self.log = my_log("Requests")
        #1、增加方法参数,根据参数来验证get/post,请求
        def requests_api(self,url,data = None,json = None,headers = None,cookies = None,method = 'get'):
            if method == "get":
                #get请求
                self.log.debug("发送get请求")
                r = requests.get(url, data = data,headers = headers,json = json,cookies = cookies)
            elif method == "post":
                #post请求
                self.log.debug("发送post请求")
                r = requests.post(url, data = data, headers=headers, json=json,cookies = cookies)
        #2、重复内容复制进来
            #获取结果相应内容
            code = r.status_code
            try:
                body = r.json()
            except Exception as e:
                body = r.text
            #内容存到字典
            res = dict()
            res["code"] = code
            res["body"] = body
            #4、字典返回
            return res
    #3、重构get\post方法
        #1、get 定义方法
        def get(self,url,**kwargs):
        #2、定义参数
            #url,json,headers,cookies,method
        #3、调用公共方法
            return self.requests_api(url,method = 'get',**kwargs)
            # return json.dumps(self.requests_api(url, method='get', **kwargs),
            #           sort_keys=True, ensure_ascii=False, indent=4, separators=(', ', ': '))  # Json格式返回
        #1、post 定义方法
        def post(self,url,**kwargs):
        #2、定义参数
            #url,json,headers,cookies,method
        #3、调用公共方法
            return self.requests_api(url,method = 'post',**kwargs)
            # return json.dumps(self.requests_api(url,method = 'post',**kwargs),
            #                   sort_keys=True, ensure_ascii=False, indent=4, separators=(', ', ': ')) # Json格式返回
    

    步骤4: 测试用例调用封装的请求方式

    创建testcase文件夹,使用上篇demo脚本,调用请求方式封装请求

    相关文章

      网友评论

        本文标题:零基础小白(二)Requests请求方式之Get 和Post封装

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