python进阶课

接口自动化之网络请求封装

2019-12-15  本文已影响0人  炒鸡可耐的小葵花
接口.png

本小仙女在之前写过一篇文章,文章的名字叫做《你以为你了解了http以及post和get?》,其实这篇文章主要讲了网络请求的原理。然后重点讲了一下post请求和get请求。今天,偶想讲的呢是自动化测试中的“网络请求封装”。一般来说,现在市面上大部分的公司也就使用post或者get两种请求方式。所以想要了解更多关于http请求,请移步至https://www.jianshu.com/p/32860968f631

这边就简单的封装了一个python中请求网络接口的方法,此方法通过传入请求方法、请求路径、请求参数等入参,进行调用,代码如下,调用即可:

import requests
import json


class CommonRequests:
    def __init__(self):
        self.session = requests.Session()

    def request(self, method, url, data=None, is_json=False, **kwargs):
        """
        发送请求
        :param method: POST、GET
        :param url: 请求路径
        :param data: 请求参数
        :param is_json: 入参是否为json格式
        :param kwargs: 请求头等其他的入参
        :return: 接口返回
        """
        method = method.upper()
        if isinstance(data, str):  # 对传入的参数进行简单处理
            try:
                data = json.loads(data)
            except Exception as e:
                print("异常为{}".format(e))
                data = eval(data)
        if method == "GET":
            response = self.session.request(method=method, url=url, params=data, **kwargs)
        elif method == "POST":
            if is_json:  # 请求参数是json格式
                response = self.session.request(method=method, url=url, json=data, **kwargs)
            else:
                response = self.session.request(method=method, url=url, data=data, **kwargs)
        else:
            response = None
        return response

    def close(self):
        self.session.close()

上一篇下一篇

猜你喜欢

热点阅读