본문 바로가기
Etc/경험담

Effective Postman

by 생각하는달팽이 2020. 9. 17.

이름도 거창하게 Effective Postman 이라고 명명하고 진행해보겠습니다.

업무를 보다보면 postman 을 정말 많이 사용하게되는데, 특히나 우리팀은 꽤 많은 API 들을 세가지 환경에 맞추어 관리하고 있습니다.

이를 Postman 으로 정리를 하기에 앞서서, 글을 남깁니다.

제가 사용하는 정보의 출처는 모두 postman 공식 홈페이지에서 가져왔습니다.

아래는 Postman 의 Variable 의 구조를 도식화한 모습입니다.

각 variable 들에 대한 설명은 아래와 같습니다.

 

  • Global Variable를 사용하면 컬렉션, 요청, 테스트 스크립트 및 환경간에 데이터에 액세스 할 수 있습니다. 전역 변수는 작업 공간 전체에서 사용할 수 있습니다 .

    • 전역 변수는 혼란을 야기 할 수 있으므로, 예를 들어 무언가를 빠르게 테스트하거나 프로젝트가 매우 초기 프로토 타이핑 단계에있을 때와 같이 조금만 사용해야합니다.
  • Collection Variable  Collection 의 요청 전체에서 사용할 수 있으며 환경과 독립적이므로 선택한 환경에 따라 변경하지 마십시오.

    • 컬렉션 변수는 인증 / URL 세부 정보와 같이 단일 환경 만 사용하는 경우에 적합합니다.
  • Environment Variable을 사용하면 로컬 개발 대 테스트 또는 프로덕션과 같은 다양한 환경에 맞게 처리를 조정할 수 있습니다. 한 번에 하나의 환경 만 활성화 할 수 있습니다.

  • Local Variable 는 임시적이며 요청 스크립트에서만 액세스 할 수 있습니다. 지역 변수 값은 단일 요청 또는 컬렉션 실행으로 범위가 지정되며 실행이 완료되면 더 이상 사용할 수 없습니다.

    • 다른 모든 변수 범위를 재정의하는 값이 필요하지만 실행이 종료 된 후 값이 유지되지 않도록하려면 로컬 변수가 적합합니다.
  • Data Variable 는 외부 CSV 및 JSON 파일에서 가져와 Newman 또는 Collection Runner를 통해 컬렉션을 실행할 때 사용할 수있는 데이터 세트를 정의합니다.

이런 변수들을 이용해서 어떻게 하면 보다 효과적으로 API 들을 관리할지 정리해보겠습니다.

우선 저는 다양한 서비스 API - A,B,C 들이 있습니다. 추가로 ALPHA, BETA, STAGING 과 같이 세개의 phase 가 존재합니다.

이럴 경우, 저는 다음처럼 정리할 예정입니다

Environment Variable 의 LOCAL, ALPHA, BETA, STAGING 을 추가합니다. 각 env variable 에 phase 라는 값을 추가하고 env 이름을 기입해줍니다. 

이를 이용하기 위해 우선 Collection Variable 쪽에 url 이라는 variable 을 만들어줍니다.

Pre-request script 를 이용하여 해당 url 키값을 Env variable 을 기준으로 각 서비스의 API host 값으로 설정해줍니다. 이렇게 하면, 

하나의 collection 에서 env 에 맞추어 host 를 사용할 수 있게됩니다.

 

반응형