위키득계정 ↗
기술

Pytest-httpserver

Pytest-httpserver기술
분류
로컬 HTTP 시험 서버
시험 연동
pytest 픽스처
요청 유형
상시와 일회 및 순서 지정
응답 구성
데이터와 JSON 및 함수
Pytest-httpserver는 HTTP 클라이언트 시험에 사용할 로컬 서버를 제공하는 라이브러리다. 예상 요청과 응답을 정의하고 localhost로 접근해 통신 동작을 확인할 수 있다.

로컬 서버의 역할

외부 서버 대신 실제로 접근할 수 있는 로컬 시험 서버를 띄운다. 클라이언트 호출 함수를 직접 대체하는 모킹과 달리 HTTP 요청을 서버에서 받는다. 다만 실제 운영 서버와 프로토콜 지원 범위까지 같다고 가정해서는 안 된다.

예상 요청의 정의

경로뿐 아니라 메서드, 헤더와 쿼리, 본문 등을 조건으로 정할 수 있다. 계속 응답하는 요청과 한 번만 처리하는 요청을 구분하며 일회 요청에는 순서 제약도 줄 수 있다. 재시도와 연속 작업을 시험할 때 호출 순서도 확인하는 데 쓰인다.

응답과 실행 수명

상태 코드와 헤더, 본문을 지정하거나 함수로 응답을 만들 수 있다. pytest 외부에서는 컨텍스트 관리자로 서버의 시작과 종료를 다룬다. 시험이 끝난 뒤 서버를 정리해야 다음 시험의 포트와 상태에 영향을 줄 가능성을 줄인다.

관련 문서

Dirty-equals / Requests-mock / WireMock / HTTP