零基础小白(二)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脚本,调用请求方式封装请求