Repolode
kevin1024

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 통계는 매일 갱신됩니다.

관련 프로젝트

브라우저와 Node.js에서 네트워크 요청을 가로채는 JavaScript API 모킹 라이브러리로, 테스트와 개발 중에도 앱 코드를 수정하지 않고 모의 응답을 사용할 수 있습니다.

1.8만+15 이번 주645TypeScriptMIT업데이트 어제