# -*-coding:utf-8 -*- # # --------------------------------------------------------------------------- # ProjectName: test59 # FileName: requests_method.py # Author: laozhao # Datetime: 2024/3/15 16:12 # Description: # # --------------------------------------------------------------------------- import base64 import requests from APIAutoTest_v2.common.read_ini import ReadIni class RequestsMethod: def __init__(self): """关联登录成功的状态--关联token""" # 获取登录的url login_url = ReadIni().get_host("bpm_host")+"/auth" # 配置登录数据 login_data = {"username": "admin", "password": base64.b64encode("123456".encode()).decode()} # 创建Session对象 self.bpm_session = requests.sessions.Session() # 使用Session对象发送登录请求 res = self.bpm_session.request(method="post", url=login_url, json=login_data) # 提取token,将token更新到Session对象的headers中 self.bpm_session.headers["Authorization"] = "Bearer "+res.json().get("token") def request_all(self, req_url, req_method, req_mime, case_data): """ 公共的请求方法 :param req_url: 请求的url,字符串格式 :param req_method: 请求的方法,字符串格式 :param req_mime: 请求的媒体类型,字符串格式 :param case_data: 用例数据 :return: Response type """ # 判断请求的媒体类型的值是否为application/x-www-form-urlencoded或x-www-form-urlencoded,使用data关键字传参 if req_mime == 'application/x-www-form-urlencoded' or req_mime == 'x-www-form-urlencoded': return self.bpm_session.request(method=req_method, url=req_url, data=case_data) # 判断请求的媒体类型的值是否为application/json或json,使用json关键字传参 elif req_mime == 'application/json' or req_mime == 'json': return self.bpm_session.request(method=req_method, url=req_url, json=case_data) # 判断请求的媒体类型的值是否为multipart/form-data或form-data,使用files关键字传参 elif req_mime == 'multipart/form-data' or req_mime == 'form-data': return self.bpm_session.request(method=req_method, url=req_url, files=case_data) # 判断请求的媒体类型的值是否为query或params,使用params关键字传参 elif req_mime == 'query' or req_mime == 'params': return self.bpm_session.request(method=req_method, url=req_url, params=case_data) # 判断请求的媒体类型的值为None,表示没有传参 elif req_mime is None: return self.bpm_session.request(method=req_method, url=req_url) # 其他类型--返回一个错误的提示信息 else: raise ValueError("传入的媒体类型,没封装,请自行封装") if __name__ == '__main__': req = RequestsMethod()