众所周知swagger文档存储在api-docs接口中
可以通过http获取接口的响应或者直接copy json的响应到文本中,最终得到的数据都是data
处理逻辑如下:
with open("1.txt",'r',encoding='utf8') as f:
data = f.read()
data = json.loads(data)
basePath = data['basePath']
paths = data["paths"]
cases_data = []
for path, methods in paths.items():
for method, details in methods.items():
method = method.upper()
summary = details["summary"]
parameters = details.get("parameters", [])
# 获取headers
headers = {param['name']:"" for param in parameters if param.get("in") == "header"}
# 获取body
rep_body = [param.get('schema').get('originalRef') for param in parameters if param.get("in") == "body"]
body = ''
if rep_body:
dto = data["definitions"].get(rep_body[0])
if dto:
properties = dto.get('properties')
body = properties.copy()
for item,params in properties.items():
for param,value in params.items():
if param == 'items':
new_dto = data["definitions"].get(value['originalRef'])
n_list = [{param:""} for param in new_dto['properties']]
body[item]=n_list
else:
body[item]= ''
# 组装参数
cases_data.append({
"url": basePath+path,
"method": method,
"name": summary,
"headers": headers,
"body": body
})
print("Path:", basePath+path)
print("Method:", method)
print("Name",summary)
print("Headers:")
print(headers)
print("Body:")
print(body)
print("-" * 30)
最终处理后的数据格式如下:
Path: /tr*****/c*t
Method: POST
Name 接xx状态
Headers: {'x-user-token': '', 'x-req-timestamp': '', 'x-req-rd': ''}
Body: {'data': '', 'key': '', 'partner': '', 'sign': '', 'timestamp': ''}
Path: /t*****/w*t
Method: POST
Name 接xx态
Headers: {'x-user-token': '', 'x-req-timestamp': '', 'x-req-rd': ''}
Body: {'h5Url': '', 'id': '', 'partnerId': '', 'productCode': '', 'productName': '', 'productProtocolList': [{'protocolName': ''}, {'protocolType': ''}, {'protocolUrl': ''}], 'status': ''}
标签:body,get,python,param,文档,print,swagger,data,method From: https://www.cnblogs.com/xchuan/p/17596022.html