1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
| import requests from interface_test.common.config import ReadConfig config = ReadConfig()
class HttpRequest: ''' 公共使用一个session, cookies自动传递 这是一个操作http请求的类,使用这类的request方法去完成不同的HTTP请求,并且返回响应结果 ''' def __init__(self): #保证同一个session对象,便于cookies的自动传值 self.session = requests.session()
def http_request(self,method,url,data=None,json=None): ''' :param method: 请求的方法 :param url: 请求的路径 :param data: 请求的数据 :param json: json类型的数据 :return: 返回请求响应的文本 ''' method = method.lower() #强制转化为小写 方便后期操作(大写也可以) if type(data)==str: # 将字符串转化为 字典形式的数据 data = eval(data)
# 路径的拼接,根据线上环境或测试环境 进行路径的拼接 url = config.get_strvalue('api','pre_url')+url
print('data的数据{}:'.format(data)) print('url的路径:',url)
if method == 'get': resp = self.session.request(method=method,url=url,params=data) elif method == 'post': if json: resp = self.session.request(method=method,url=url,json=json) else: resp = self.session.request(method=method,url=url,data=data) else: print('暂不支持其他的请求方式!') print ('响应码:', resp.status_code) print ('响应文本:', resp.text) print ('响应的cookie:', resp.cookies) return resp
def close(self): self.session.close()
if __name__ == '__main__': # 注册接口 register_url = 'http://test.lemonban.com/futureloan/mvc/api/member/register' params = resp = HttpRequest().http_request('post',url=register_url,data=params) print(resp.text)
|