Repolode
kevin1024

kevin1024/vcrpy

Библиотека Python, которая записывает HTTP-взаимодействия во время тестов и воспроизводит их позднее, чтобы тесты запускались офлайн и детерминированно.

Звёзды
3,023
Форки
448
Открытые issues
32
Последний коммит
3 дня назад

Что это?

VCR.py — порт библиотеки Ruby VCR на Python. Оберните тест или участок кода в контекстный менеджер либо декоратор, и при первом запуске все HTTP-взаимодействия через поддерживаемые библиотеки будут записаны в файл-кассету, по умолчанию сериализованный в YAML. При следующих запусках библиотека читает кассету и возвращает записанные ответы на совпадающие запросы вместо обращения к сети.

Так тесты не зависят от работающих серверов: их можно запускать офлайн, получать одинаковые результаты при каждом запуске и выполнять быстрее. Если удалённый API изменится, удалите кассету и запустите тесты повторно — взаимодействия будут записаны заново с учётом нового поведения. Дополнительная библиотека pytest-recording предоставляет фикстуры pytest для работы с VCR.py.

Ключевые возможности

  • 01По умолчанию записывает HTTP-запросы и ответы в YAML-файлы-кассеты
  • 02Воспроизводит записанные ответы, чтобы тесты не обращались к сети
  • 03Подключается к тестовому коду как контекстный менеджер или декоратор
  • 04Поддерживает офлайн- и детерминированный запуск тестов
  • 05Работает вместе с pytest-recording, предоставляющей фикстуры pytest

Сценарии использования

  • Запуск тестов API-клиента без доступа к сети и работающего staging-сервера
  • Повышение детерминированности тестовых наборов за счёт устранения нестабильных ответов внешних сервисов
  • Ускорение CI за счёт воспроизведения ранее записанных HTTP-вызовов
  • Обновление записанных ответов API после изменения удалённого сервиса

В подборках

Темы

Частые вопросы

Что такое vcrpy?
Библиотека Python, которая записывает HTTP-взаимодействия во время тестов и воспроизводит их позднее, чтобы тесты запускались офлайн и детерминированно. VCR.py — порт библиотеки Ruby VCR на Python. Оберните тест или участок кода в контекстный менеджер либо декоратор, и при первом запуске все HTTP-взаимодействия через поддерживаемые библиотеки будут записаны в файл-кассету, по умолчанию сериализованный в YAML. При следующих запусках библиотека читает кассету и возвращает записанные ответы на совпадающие запросы вместо обращения к сети.
vcrpy можно использовать бесплатно? Какая у него лицензия?
vcrpy распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
vcrpy всё ещё поддерживается?
Активно поддерживается. Последний коммит в vcrpy — 3 нояб. 2026 г..
Для чего можно использовать vcrpy?
Запуск тестов API-клиента без доступа к сети и работающего staging-сервера Повышение детерминированности тестовых наборов за счёт устранения нестабильных ответов внешних сервисов Ускорение CI за счёт воспроизведения ранее записанных HTTP-вызовов Обновление записанных ответов API после изменения удалённого сервиса
Где скачать vcrpy?
Исходный код и инструкции по установке — на GitHub: https://github.com/kevin1024/vcrpy

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Библиотека для мокирования API на JavaScript: перехватывает сетевые запросы в браузерах и Node.js, чтобы код приложения работал без изменений с мок-ответами в тестах и при разработке.

18,3 тыс.+15 за неделю645TypeScriptMITОбновлён 23 часа назад