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

接口.png

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • AFHTTPRequestOperationManager 网络传输协议UDP、TCP、Http、Socket、X...
    Carden阅读 4,384评论 0 12
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,138评论 1 32
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,252评论 1 23
  • 第38周亲子陪伴。关键词是:归纳演绎思维,时间管理,为孩子读书。模型课能够锻炼孩子演绎归纳思维;时间管理从小做起,...
    才饮韩江水阅读 250评论 0 0
  • 晚上下班步行回家,一出单位门,映入眼帘的就是整条大街上赏心悦目的璀璨灯光,流光溢彩,霓虹闪烁,一片灯的海洋。...
    衡阳雁阅读 254评论 2 6