본문 바로가기
Software Test/Contract Test by Postman

[Postman 사용법] 9. 모의서버

by kellis 2020. 8. 19.

1. Mock Server?

 

모의 서버는 프론트엔드 혹은 백엔드의 지연으로 인해 포스트맨의 작업이 효율적으로 완료되지 못하는 것을 완화하기 위해 사용하는 것으로, 실제 요청을 보내기 전에 이 모의 서버를 만들어 각 엔드포인트와 해당 응답을 시뮬레이션할 수 있도록 도와주는 기능입니다. 이를 사용하면 백엔드를 돌리지 않고 잠재적인 응답을 볼 수 있습니다. 

모의 서버는 API 개발의 가장 초기 단계에서 팀 구성원 간의 명확한 의사소통을 도와주고 기대치를 조정하는데 도움을 줍니다. 결과적으로 개발 프로세스의 모든 팀이 병렬로 작업할 수 있어 지연을 완화합니다. 

 

포스트맨을 사용하면 두 가지 유형의 모의 서버를 만들 수 있습니다. 

  • 개인 모의 서버 : 비공개로, 사용자가 요청 헤더에 포스트맨 API 키를 추가해야 합니다. 개인 모의 서버를 만드는 경우 팀 혹은 팀 구성원과 기본 컬렉션을 공유하고, 보기나 쓰기 권한을 제공할 수 있습니다. 팀원은 포스트맨 API 키를 사용하여 모의 테스트를 진행할 수 있습니다. 
  • 공공 모의 서버 : 기본적으로 공개되어 있습니다. 누구나 접근 가능하며, 별도의 포스트맨 API 키 없이 공유할 수 있습니다. 

 

모의 서버의 경우 비용이 발생하는 부분이며, 아래와 같이 비용이 청구됩니다.

Postman(Free) Postman Pro Postman Enterprise
1000건 100,000건 1만건

 

사용량에 대한 정보는 Monitor에서 보았듯이 계정 Usage 페이지에서 확인 가능합니다. 

 


2. Mock Server 설정하기

 

실제 요청을 보내기 전에, 프론트 엔드 개발자는 모의 서버를 생성함으로써 백엔드를 돌리지 않고 각각의 엔드포인트에 대해 시뮬레이션할 수 있습니다. 이에 대한 응답은 포스트맨 컬렉션과 연동됩니다. 

 

모의 서버는 몇 가지 방법으로 생성이 가능한데, 여기에서는 New를 사용하여 만드는 방법에 대해서만 다루도록 하겠습니다. (같은 맥락으로 Collection의 펼침 버튼이나 Run 버튼을 통해 만들 수 있습니다.)

 

Mock Server를 선택하면 아래와 같은 화면이 나타납니다. 

 

새로운 API를 작성하거나 이미 존재하는 컬렉션을 가지고 모의 서버를 생성할 수 있습니다. 

Environment를 추가할 수도 있고, 이 모의 서버를 비공개로 생성할 수도 있습니다. 

 


3. Mock 동작

 

Mock에 대한 세부 사항을 설명하기 전에 이 작업에 필요한 몇 가지 기본 사항을 설정하겠습니다. 

 

step 1 : 컬렉션 생성하고 요청 작성하기 

앞서 예제로 다루었던 boards 요청을 사용하여 만들어 보겠습니다. 

step 2 : 응답 저장

아래 빨간 박스 부분에 유의하며 이 응답을 저장합니다.  이 요소들이 앞으로 생성할 모의 객체에 의해 반환될 응답을 결정하는 중요한 요소이기 때문입니다. 

그럼 이제 Mock을 만들어 보겠습니다.

 

step 3 : 컬렉션을 위한 Mock 만들기

컬렉션 우측의 우측 삼각형(▶)을 클릭하면 Mocks란이 있습니다. (혹은 위에서 본 바와 같이 New버튼을 사용하거나 펼침 버튼 아래에서 만들어도 동일합니다.)

생성하고 나면 이렇게 해당 컬렉션에 대한 Mock이 추가된 것을 볼 수 있습니다.

 

step 4 : 모의 서버를 사용하여 요청 보내기 

위에서 생성한 mock의 URL을 복사하여 포스트맨 요청을 보내 보도록 하겠습니다. 생성된 mock의 경로는 'http://localhost:8080/'까지에 대한 정보를 가지고 있다고 생각하면 됩니다. 위에서 저장해 두었던 boards 요청을 보내면 아래와 같이 mock response가 오는 것을 확인할 수 있습니다.

 

이렇게 collection에 대한 mock을 생성해 두면, 서버가 돌아가고 있든지 말든지 상관없이 결과에 대한 예측을 하는 것이 가능합니다. 

 


Conclusions

 

Contract Test를 위해 필요한 기본적인 포스트맨 지식에 대해 다루었고, 더 나아가 테스트 자동화를 위해서 필요한 기능까지 알아보았습니다. 

여기까지 Contract Test by Postman을 마치도록 하겠습니다. 

 

 

[ Related Information Reference ]

POSTMAN API

 

댓글