Repolode
kevin1024

kevin1024/vcrpy

一个 Python 库,录制测试中的 HTTP 交互并在之后重放,让测试可离线、确定性地运行。

Star
3,023
Fork
448
未关闭 Issue
32
最近提交
4天前

这是什么?

VCR.py 是 Ruby 版 VCR 库的 Python 实现。把测试代码包在上下文管理器或装饰器中,首次运行时会把通过受支持库发出的所有 HTTP 请求和响应序列化后写入一个称为 cassette 的文件,默认为 YAML 格式。之后再次运行时,它会读取该文件,对匹配的请求直接返回录制的响应,而不再访问网络。

这样测试可以离线运行、每次结果确定,并且执行更快。当被测接口发生变化时,删除 cassette 文件并重新运行测试即可重新录制。配套的 pytest-recording 库提供了与 VCR.py 配合使用的 pytest fixture。

核心功能

  • 01默认将 HTTP 请求和响应录制为 YAML 格式的 cassette 文件
  • 02重放已录制的响应,测试过程中不产生真实网络请求
  • 03可作为上下文管理器或装饰器包裹测试代码
  • 04支持离线和结果确定的测试运行
  • 05可与 pytest-recording 搭配用于 pytest

适用场景

  • 在没有网络或测试环境的情况下运行 API 客户端测试
  • 通过去除外部服务的不稳定响应,让测试套件结果稳定
  • 复用已录制的 HTTP 调用,加快 CI 速度
  • 远程服务变更后,删除旧录制并重新生成响应

收录于专题

标签

常见问题

vcrpy 是什么?
一个 Python 库,录制测试中的 HTTP 交互并在之后重放,让测试可离线、确定性地运行。 VCR.py 是 Ruby 版 VCR 库的 Python 实现。把测试代码包在上下文管理器或装饰器中,首次运行时会把通过受支持库发出的所有 HTTP 请求和响应序列化后写入一个称为 cassette 的文件,默认为 YAML 格式。之后再次运行时,它会读取该文件,对匹配的请求直接返回录制的响应,而不再访问网络。
vcrpy 可以免费使用吗?用的什么许可证?
vcrpy 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
vcrpy 还在维护吗?
活跃维护中。vcrpy 最近一次提交是在 2026年11月3日。
vcrpy 适合用来做什么?
在没有网络或测试环境的情况下运行 API 客户端测试 通过去除外部服务的不稳定响应,让测试套件结果稳定 复用已录制的 HTTP 调用,加快 CI 速度 远程服务变更后,删除旧录制并重新生成响应
在哪里获取 vcrpy?
源代码和安装说明在 GitHub 上:https://github.com/kevin1024/vcrpy

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目