# -*-coding:utf-8 -*- # # --------------------------------------------------------------------------- # ProjectName: test62 # FileName: request_method.py # Author: wen # Datetime: 2024/8/31 下午3:54 # Description: # # --------------------------------------------------------------------------- import requests from Test_3.common.basic_read_ini import ReadIni class RequestMethod: def __init__(self): # 配置登录数据 login_data = { "username": "admin", "password": "EuaozNT/aGWiIjWYfJUjoGeLD/vQR5o4hTaHkaSPnfpmIkdQ6O83HZt+uCsiY02ssw09/ZRYFVVLDn6nzkTvR" "g28EsWAqZGOGqiMTSSY/MADPHKRxP+8Lc6CTPKRwkpLKgDeVUYAhqT7s2K4WO0W2Vv2nGRyEHdy+v7UyPe2bv8="} # 获取域名 login_url = ReadIni().get_host("bpm_host") + "/auth" # 创建Session对象 self.bpm_session = requests.sessions.Session() # 更新token self.bpm_session.headers["Authorization"] = f'Bearer {self.bpm_session.request(method="post", url=login_url, json=login_data).json().get("token")}' def request_all(self, case_url, case_method, case_mime, case_data): # 封装公共的请求方法,根据不同的用例媒体类型使用不同的关键字传参 # 判断用例的媒体类型为application/json或者json if case_mime == 'application/json' or case_mime == 'json': return self.bpm_session.request(method=case_method, url=case_url, json=case_data) # 判断用例的媒体类型为application/x-www-form-urlencoded或者为form elif case_mime == 'application/x-www-form-urlencoded' or case_mime == 'form': # 除了上传文件和json类型在请求体中传参,其他类型都使用data关键字传参 return self.bpm_session.request(method=case_method, url=case_url, data=case_data) # 判断用例的媒体类型为multipart/form-data或者为form-data elif case_mime == 'multipart/form-data' or case_mime == 'form-data': return self.bpm_session.request(method=case_method, url=case_url, files=case_data) # 判断用例的媒体类型为query或者为params、地址栏 elif case_mime == 'query' or case_mime == 'params': return self.bpm_session.request(method=case_method, url=case_url, params=case_data) # 判断用例的媒体类型为None,表示没有传参 elif case_mime is None: return self.bpm_session.request(method=case_method, url=case_url) # 判断用例的媒体类型为query|json,或者json|query,表示地址栏和请求体同时传参 elif case_mime == "query|json" or case_mime == "json|query": return self.bpm_session.request(method=case_method, url=case_url, params=case_data["query"], json=case_data["body"]) else: raise ValueError("用例媒体类型错误,请自行封装请求方法")