브라우저와 Node.js에서 네트워크 요청을 가로채는 JavaScript API 모킹 라이브러리로, 테스트와 개발 중에도 앱 코드를 수정하지 않고 모의 응답을 사용할 수 있습니다.
kevin1024/vcrpy
테스트 중 발생한 HTTP 통신을 기록해 나중에 재생하므로, 오프라인에서도 항상 같은 결과를 내는 테스트를 실행할 수 있는 Python 라이브러리입니다.
- 스타
- 3,023
- 포크
- 448
- 열린 이슈
- 32
- 마지막 커밋
- 4일 전
어떤 프로젝트인가요?
VCR.py는 Ruby의 VCR 라이브러리를 Python으로 포팅한 것입니다. 테스트나 코드 경로를 컨텍스트 매니저 또는 데코레이터로 감싸면, 첫 실행 시 지원되는 라이브러리를 통해 발생한 모든 HTTP 통신을 기본적으로 YAML 형식으로 직렬화되는 cassette라는 일반 파일에 기록합니다. 이후 실행에서는 네트워크에 접속하는 대신 cassette를 읽고 요청이 일치할 때 기록된 응답을 반환합니다.
이를 통해 실제 서버에 의존하지 않으므로 테스트를 오프라인에서 실행하고, 매번 같은 결과를 얻으며, 더 빠르게 마칠 수 있습니다. 원격 API가 변경되면 cassette를 삭제하고 테스트를 다시 실행해 새 동작에 맞춰 통신을 다시 기록하면 됩니다. 함께 사용할 수 있는 라이브러리인 pytest-recording은 VCR.py를 사용하기 위한 pytest fixture를 제공합니다.
핵심 기능
- 01HTTP 요청과 응답을 기본적으로 YAML cassette 파일에 기록
- 02기록된 응답을 재생해 테스트에서 실제 네트워크 통신이 발생하지 않도록 함
- 03테스트 코드를 컨텍스트 매니저나 데코레이터로 감싸서 사용
- 04오프라인 및 결정론적 테스트 실행 지원
- 05pytest fixture를 제공하는 pytest-recording과 함께 사용 가능
활용 사례
- 네트워크 연결이나 실제 스테이징 서버 없이 API 클라이언트 테스트 실행
- 불안정한 외부 응답을 제거해 테스트 스위트의 결과를 일관되게 유지
- 이전에 기록한 HTTP 호출을 재생해 CI 속도 향상
- 원격 서비스가 변경된 뒤 기록된 API 응답 갱신
포함된 컬렉션
토픽
자주 묻는 질문
- vcrpy은(는) 무엇인가요?
- 테스트 중 발생한 HTTP 통신을 기록해 나중에 재생하므로, 오프라인에서도 항상 같은 결과를 내는 테스트를 실행할 수 있는 Python 라이브러리입니다. VCR.py는 Ruby의 VCR 라이브러리를 Python으로 포팅한 것입니다. 테스트나 코드 경로를 컨텍스트 매니저 또는 데코레이터로 감싸면, 첫 실행 시 지원되는 라이브러리를 통해 발생한 모든 HTTP 통신을 기본적으로 YAML 형식으로 직렬화되는 cassette라는 일반 파일에 기록합니다. 이후 실행에서는 네트워크에 접속하는 대신 cassette를 읽고 요청이 일치할 때 기록된 응답을 반환합니다.
- vcrpy은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- vcrpy은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- vcrpy은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. vcrpy의 마지막 커밋은 2026년 11월 3일입니다.
- vcrpy은(는) 어디에 사용할 수 있나요?
- 네트워크 연결이나 실제 스테이징 서버 없이 API 클라이언트 테스트 실행 불안정한 외부 응답을 제거해 테스트 스위트의 결과를 일관되게 유지 이전에 기록한 HTTP 호출을 재생해 CI 속도 향상 원격 서비스가 변경된 뒤 기록된 API 응답 갱신
- vcrpy은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/kevin1024/vcrpy
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Jest는 내장 어설션, 모킹, 스냅샷 테스트, 대화형 watch 모드를 제공하는 JavaScript 테스트 프레임워크입니다.
GoogleTest는 xUnit 스타일 테스트, 풍부한 어설션, GoogleMock을 제공하는 Google의 C++ 테스트 및 모킹 프레임워크입니다.
표준 go test 실행기와 함께 사용할 수 있는 assertion, mock, suite 구조를 제공하는 Go 테스트 도구 모음입니다.