Repolode
kevin1024

kevin1024/vcrpy

テスト中のHTTP通信を記録して後から再生し、オフラインでも毎回安定して動作するテストを実現するPythonライブラリ。

スター
3,023
フォーク
448
未解決の Issue
32
最終コミット
3 日前

これは何?

VCR.pyはRubyのVCRライブラリをPythonに移植したものです。コンテキストマネージャーまたはデコレーターでテストやコードの実行箇所を囲むと、初回実行時に、対応ライブラリ経由で行われたすべてのHTTP通信がカセットと呼ばれる単一ファイルに記録されます。デフォルトではYAML形式でシリアライズされます。2回目以降はカセットを読み込み、一致するリクエストに対してネットワークにアクセスする代わりに、記録済みのレスポンスを返します。

これにより実際のサーバーへの依存がなくなり、テストをオフラインで実行でき、毎回同じ結果が得られるうえ、実行時間も短縮されます。リモートAPIに変更があった場合は、カセットを削除してテストを再実行すると、新しい挙動に基づいて通信が再記録されます。関連ライブラリのpytest-recordingは、VCR.pyを利用するためのpytest fixtureを提供します。

主な機能

  • 01HTTPリクエストとレスポンスをデフォルトでYAML形式のカセットファイルに記録する
  • 02記録済みのレスポンスを再生し、テスト中に実際のネットワーク通信が発生しないようにする
  • 03テストコードを囲むコンテキストマネージャーまたはデコレーターとして使える
  • 04オフラインで再現性の高いテスト実行に対応する
  • 05pytest-recordingと組み合わせてpytest fixtureを利用できる

ユースケース

  • ネットワーク接続や稼働中のステージングサーバーなしでAPIクライアントのテストを実行する
  • 不安定な外部レスポンスを排除し、テストスイートの再現性を高める
  • 記録済みのHTTP通信を再生してCIを高速化する
  • リモートサービスの変更後に、記録済みのAPIレスポンスを更新する

収録されている特集

トピック

よくある質問

vcrpy とは?
テスト中のHTTP通信を記録して後から再生し、オフラインでも毎回安定して動作するテストを実現するPythonライブラリ。 VCR.pyはRubyのVCRライブラリをPythonに移植したものです。コンテキストマネージャーまたはデコレーターでテストやコードの実行箇所を囲むと、初回実行時に、対応ライブラリ経由で行われたすべてのHTTP通信がカセットと呼ばれる単一ファイルに記録されます。デフォルトではYAML形式でシリアライズされます。2回目以降はカセットを読み込み、一致するリクエストに対してネットワークにアクセスする代わりに、記録済みのレスポンスを返します。
vcrpy は無料で使えますか?ライセンスは?
vcrpy は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
vcrpy は今もメンテナンスされていますか?
活発にメンテナンス中。vcrpy の最終コミットは 2026年11月3日 です。
vcrpy は何に使えますか?
ネットワーク接続や稼働中のステージングサーバーなしでAPIクライアントのテストを実行する 不安定な外部レスポンスを排除し、テストスイートの再現性を高める 記録済みのHTTP通信を再生してCIを高速化する リモートサービスの変更後に、記録済みのAPIレスポンスを更新する
vcrpy はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/kevin1024/vcrpy

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト

ブラウザとNode.jsでネットワークリクエストをインターセプトするJavaScript APIモックライブラリ。テストや開発でモックレスポンスを使っても、アプリのコードを変更せずに実行できます。

1.8万+18 今週645TypeScriptMIT更新 18 時間前