一般来说建议使用 requests.Session() 并复用,但不是“所有接口自动化测试用例都必须”。结论可以这样理解:
为什么通常要用 requests.Session()
Session() 会帮你在同一次测试/同一次用例生命周期内复用连接与会话相关信息,常见收益包括:
- 复用 TCP 连接(性能更好):减少反复建连的开销。
- 自动复用 Cookie:登录后拿到的 cookie 之类的信息可以自动带上。
-
统一管理公共配置:比如
headers、auth、verify、代理等可以在 session 里集中配置。 - 更贴合“会话型接口”:很多 API 需要先登录/拿 token,再继续访问。
什么时候不一定非要用 Session
-
每个请求都独立、无需 cookie/token 复用,比如完全无状态的查询接口:直接
requests.get/post(...)也可以。 - 测试用例并发执行时:通常建议“线程/协程各自独立 session”,不要跨并发共享同一个 session 对象。
-
你明确只测试单次请求、对性能要求不高:使用
requests直接请求也不算问题。
实操建议(常见最佳实践)
-
同一个测试用例内:用一个
session复用通常最合适。 - 跨用例复用:也可以,但要注意测试隔离(cookie/状态可能互相污染),一般更推荐每个用例独立 session,或在用例级做清理。
- 并发场景下:每个线程/任务创建自己的
Session()。
如果你愿意,把你们的接口场景说一下(是否需要登录/依赖 cookie、是否并发、你们是按“用例级/套件级”组织测试的),我可以给你更贴合的组织方式建议。