文章目录
请求数据request获取
def get_api_test_case_info(id):
#你的metersphere数据库相关配置
conn = connect(host='ip', port=端口, user='用户名', password='密码', database='meterSphere',
charset='utf8')
cs = conn.cursor() # 获取光标
sql = 'select request from api_test_case where id=%s'
cs.execute(sql, id)
request_data = cs.fetchone()[0]
conn.commit()
cs.close()
conn.close()
return request_data
将request数据由json转为dict
request_json = get_api_test_case_info('bde432bb-eff6-4669-8f5f-65644af83481')
request_data = json.loads(request_json)
获取协议
protocol = request_data['protocol'].lower()
获取请求方式
method = request_data['method']
获取接口路径
path = request_data['path']
获取rest
rest = request_data['rest']
解析rest并替换接口路径中的参数
for i in rest:
if i.__contains__("name"):
if i['name'] != '':
name = "{" + i['name'] + "}"
value = i['value']
path = path.replace(name, value)
获取headers
headers = request_data['headers']
组装cURL所需的header
header = ''
for i in headers:
if i.__contains__("name"):
if i['name'] != '':
header += "--header '" + i['name'] + ': ' + i['value'] + "' \\"
获取raw
raw = request_data['body']['raw']
组装cURL所需的data-raw
data_raw = "--data-raw '" + raw + "'"
获取域名
根据接口用例id找到接口id
根据接口id找到模块id
根据模块id找到涉及的环境配置
(前提:HTTP配置中启用条件选中了该模块)
select u2.module_id
from api_test_case u1
left join api_definition u2
on u1.api_definition_id =u2.id
where u1.id='bde432bb-eff6-4669-8f5f-65644af83481'
select name,config from api_test_environment
where config like '%087f8ff4-a3df-444e-b2e5-05c859852aeb%'