test

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

2021-01-10  本文已影响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脚本,调用请求方式封装请求

上一篇下一篇

猜你喜欢

热点阅读