Библиотека для мокирования API на JavaScript: перехватывает сетевые запросы в браузерах и Node.js, чтобы код приложения работал без изменений с мок-ответами в тестах и при разработке.
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 обновляется ежедневно.
Похожие проекты
Jest — фреймворк для тестирования JavaScript со встроенными проверками, моками, snapshot-тестированием и интерактивным watch mode.
GoogleTest — фреймворк Google для тестирования и мокирования C++ с тестами в стиле xUnit, расширенными проверками и GoogleMock.
Набор инструментов для тестирования Go: assertions, моки и структура suite, совместимая со стандартным запускателем go test.
Плагин для pytest, который запускает тесты параллельно на нескольких CPU и позволяет циклически перезапускать падающие тесты.
Плагин для pytest, позволяющий писать тестовые функции как корутины и напрямую вызывать в них код asyncio через await.