欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 自动化测试框架搭建-封装requests-优化

自动化测试框架搭建-封装requests-优化

2025/9/16 9:49:44 来源:https://blog.csdn.net/qq_41522951/article/details/145413305  浏览:    关键词:自动化测试框架搭建-封装requests-优化

目的

1、实际的使用场景,无法避免的需要区分GET、POST、PUT、PATCH、DELETE等不同的方式请求,以及不同请求的传参方式
2、python中requests中,session.request方法,GET请求,只支持params传递参数

session.request(method, url, params=params, headers=headers, **kwargs)

3、POST、PUT、PATCH等其他方式,即支持data传递请求体数据,也支持json 传递请求体数据,但是两者不可同时使用,否则会抛出异常。
4、DELETE方法,支持支持params传递参数,也支持data或者json,业界通常使用的是params穿参、或者url自带参数

设计思路

1、将GET请求和DELETE,统一使用params传递参数,在封装requests中进行区分
2、将POST、PUT、PATCH等方法,统一采用data传递参数,如果遇见需要json传递的场景可以在header中添加Content-Type: application/json进行2个场景兼容

代码实现

import requestsclass Interfaces:def __init__(self):"""session管理器"""self.session = requests.session()def request(self, method, url, params=None, data=None, headers=None, **kwargs):# 根据请求方法自适应传递参数if method.upper() in ['GET', 'DELETE']:# GET 请求使用 params 传递查询参数response = self.session.request(method, url, params=params, headers=headers, **kwargs)elif method.upper() in ['POST', 'PUT', 'PATCH']:# POST、PUT、PATCH、DELETE 请求使用 data 或 json 传递请求体数据response = self.session.request(method, url, data=data, headers=headers, **kwargs)else:raise ValueError(f"Unsupported HTTP method: {method}")return responsedef close_session(self):"""关闭session"""self.session.close()interfaces = Interfaces()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词