위키득계정 ↗
기술

Betamax Python 라이브러리

Betamax Python 라이브러리기술
분류
HTTP 기록 및 재생 라이브러리
연동 대상
Python Requests 세션
기록 단위
요청과 응답의 상호작용
보관 방식
카세트 라이브러리
Betamax는 Python Requests 세션의 HTTP 통신을 기록하고 재생하는 시험 라이브러리다. 요청과 응답의 쌍을 카세트 파일에 보관해 다음 실행에서 사용할 수 있다.

세션 중심의 적용

시험에 사용하는 Requests 세션을 Betamax로 감싸 통신을 제어한다. 같은 코드에서도 어떤 세션을 사용하는지에 따라 기록 대상이 달라질 수 있다. 전체 프로그램의 모든 HTTP 클라이언트가 자동으로 포함되는 것으로 이해해서는 안 된다.

응답을 선택하는 흐름

요청이 들어오면 이미 기록한 요청 중 일치하는 항목을 찾아 대응하는 응답을 반환한다. 일치하는 기록이 없고 새 기록이 허용되어 있으면 실제 요청을 보낸 뒤 결과를 저장한다. 기록 정책에 따라 실제 네트워크 사용 여부가 달라진다.

카세트의 역할

카세트는 시험 데이터를 담는 파일이고 카세트 라이브러리는 이를 모아 두는 디렉터리다. 파일을 재사용하면 외부 서비스의 당시 응답을 반복해서 확인할 수 있다. 서비스의 최신 상태를 검증하려면 저장된 기록과 실제 통신을 구분해 시험을 운영해야 한다.

관련 문서

VCRpy / VCR Ruby 라이브러리 / Responses Python 라이브러리 / HTTP