Postman Mock server 란?
Postman의 Mock Server는 실제 API 서버 없이도"정해진 응답"을 돌려주는 Postman 기능이다. PostMan 의 Mock Servers 기능을 이용하면 가상 API 서버를 이용해 엔드포인트의 요청/응답을 재현할 수 있다. 예를 들어, 테스트시 특정 API 를 호출해야 하는데 테스트 환경에서 호출할 수 없거나, 호출하는데 비용이 발생하는 API 라면 Mock Servers 기능을 이용해 가상 API 서버에 요청을 위임할 수 있다. 특정 에러 시나리오(ex: 500, 404 등)를 테스트하고 싶을 때도 유용하게 쓸 수 있다.
설정 방법
설정하기 위한 기본 흐름은 다음과 같다.
- Postman Collection 생성:
요청(Request)과 응답(Response)을 포함한 API 시나리오를 작성한다. - Mock Server 생성:
Collection을 기반으로 Mock Server를 만든다. 이때, 각 요청은 고유한 응답값과 상태코드를 갖도록 설정 가능하다. - Endpoint 사용:
생성된 Mock Server는 다음과 같은 형태의 URL을 가진다:
https://<mock-server-id>.mock.pstmn.io/
실제 호출 시 이 주소로 요청하면 사전에 정의한 응답이 반환된다.
먼저 Worksapace settings 에서 Mock servers 를 활성화해준다.
활성화 후 아래처럼 Mock servers 탭이 생성된다.
다음으로 새로운 Collection을 생성한다.
Mock servers 탭에서 Create mock server 로 생성했던 Collection 를 설정 후 Create Mock Server 를 클릭한다.
Save the mock server URL 을 체크하면 url 을 키로, mockserver 주소를 value 로 하는 env 변수가 자동 생성된다.
Add Request -> Add example 응답 예시를 추가한다.
브라우저를 통해 정상적으로 적용된 것을 확인할 수 있다.
참고
해당 방법을 사용하면 간단하게 mock 서버를 띄울 수 있지만, 부하테스트를 진행하게 되면 EC2 에서 나가는 Outbound 트래픽에 의해 Data Transfer 과금이 추가로 발생하는 단점이 있다. 이 경우 서버를 직접 구축하거나 아래의 MockServer 를 고려할 수 있을 것 같다.
https://www.mock-server.com/mock_server/debugging_issues.html
MockServer
MockServer enables easy mocking of any system you integrate with via HTTP or HTTPS. It also proxies, allowing introspection and modification of proxied traffic, with all proxy protocols (i.e. port forwarding, HTTP, HTTPS, SOCKS4, SOCKS5, etc).
www.mock-server.com
References
https://learning.postman.com/docs/design-apis/mock-apis/mock-with-examples/