API自动化工具之报文组装

 项目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}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值