接口自动化之网络请求封装
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()