get请求的入参必须是字典类型, Exel读出来的数据类型是字符串必需转为字典,而post请求的入参是json为字符串类型,Exel读出来的数据类型是字符串,可以直接使用。
def verdict(self,row,url, str_param,testname,sheet1,expect,method):
if method=='get':
param = eval(str_param) # Exel读出来的数据类型是字符串,而get请求的入参必须是字典类型,post请求的入参是json字符串类型
API_data = ReadAPI.get(url, param, testname)
ReadAPI.writedata(API_data,expect,sheet1,row,testname)
elif method=='post':
API_data = ReadAPI.post(url, str_param, testname)
ReadAPI.writedata(API_data, expect, sheet1, row, testname)
get为获取数据,入参为params;post为上传数据,入参为data
def get(self, url, param):
try:
r = requests.get(url, params=param, timeout=1)
r.raise_for_status() # 如果响应状态码不是 200,就主动抛出异常
except requests.RequestException as e:
print(e)
else:
js = json.dumps(r.json())
return [r.json(), r.elapsed.total_seconds(),js,r.status_code]
def post(self, url, param):
try:
r = requests.post(url, data=param, timeout=1)
r.raise_for_status() # 如果响应状态码不是 200,就主动抛出异常
except requests.RequestException as e:
print(e)
else:
js = json.dumps(r.json())
return [r.json(), r.elapsed.total_seconds(), js, r.status_code]