项目GitHub地址:GitHub - muzili0903/APIframework
如果有疑问欢迎留言,当然如果觉得写得不错可以收藏或推荐一下,可以的话,麻烦GitHub帮忙给个小星星!!!
此框架是基于Python+Pytest+Requests+Allure+Yaml+Json实现接口业务关联自动化测试,使用本框架,你无须编写任何代码,只需要你抓取接口数据包即可。关于框架的使用以及已实现的内容可以查阅该框架的首文介绍:API自动化工具雏形_YiHong_Li的博客-CSDN博客
报文组装是将请求报文从规定的文件读取出来,组装成字典类型:
组成后的字典如下:
{"url": url, "method": method, "data": body, "headers": header_copy, "timeout": timeout, "content_type": content_type, "is_login": is_login, "cookies": cookies, "save_cookie": save_cookie, 'sleep_time': sleep_time}
报文组装函数需要调用上一篇文章提到的请求文和请求体处理函数
def ini_package(script: dict, data: dict) -> dict:
"""
组装报文
:param script: 脚本文件内容
:param data: 脚本文件对应的数据
:return:
"""
con = Config()
header = ini_request_headers(script.get('request_header'), data, con)
body = ini_params(script.get('request_body'), data)
# 深拷贝,失败重跑数据不变
header_copy = deepcopy(header)
path = header_copy.pop('path')
base_url = header_copy.pop('base_url')
env = header_copy.pop('env')
timeout = header_copy.pop('timeout')
method = header_copy.pop('Method')
cookies = eval(header_copy.pop('cookie'))
is_login = header_copy.pop('is_login')
save_cookie = header_copy.pop('save_cookie')
sleep_time = header_copy.pop('sleep_time')
content_type = header_copy.get('Content-Type')
url = base_url + env + path
return {"url": url, "method": method, "data": body, "headers": header_copy, "timeout": timeout,
"content_type": content_type, "is_login": is_login, "cookies": cookies, "save_cookie": save_cookie,
'sleep_time': sleep_time}