Postman Reference
Postman API 테스트 레퍼런스
Postman Reference 소개
Postman 레퍼런스는 Postman을 이용한 API 테스트와 개발의 모든 주요 측면을 체계적으로 정리한 검색 가능한 가이드입니다. HTTP 요청 메서드(GET, POST, PUT, PATCH, DELETE), 컬렉션 관리(생성, 실행, 내보내기), 변수 범위(전역, 컬렉션, 환경, 동적 변수), pm.test()와 pm.expect()를 활용한 테스트 스크립팅, 개발/스테이징/프로덕션 환경 설정, Newman CLI와 CI/CD 통합 자동화까지 6개 핵심 영역을 다룹니다.
백엔드 개발자, QA 엔지니어, API 통합 담당자들이 REST API 구축 및 테스트 시 이 레퍼런스를 활용합니다. `pm.environment.set()`으로 환경 변수를 설정하거나, JSON 스키마 유효성 검사 테스트를 작성하거나, GitHub Actions에서 Newman으로 컬렉션을 실행하거나, 예약된 API 상태 확인을 위한 모니터를 설정할 때 필요한 정확한 구문과 실용적인 예제를 제공합니다.
레퍼런스는 Postman에서의 API 개발 워크플로를 반영하여 요청, 컬렉션, 변수, 테스트, 환경, 자동화 6개 카테고리로 구성되어 있습니다. 각 항목은 Postman UI 동작이나 JavaScript 코드 스니펫을 실제적인 예제와 함께 보여줍니다. Postman Collection v2.1 형식, 사전 요청 스크립트, `{{$randomEmail}}`, `{{$guid}}` 같은 동적 변수, 프로그래매틱 워크스페이스 관리를 위한 Postman API까지 다룹니다.
주요 기능
- HTTP 요청 메서드: 헤더 및 JSON 바디 예제를 포함한 GET, POST, PUT, PATCH, DELETE
- 컬렉션 관리: 생성, 실행(반복 횟수/지연 설정 포함 Collection Runner), v2.1 JSON으로 내보내기
- 변수 범위 계층 구조: 전역 > 컬렉션 > 환경 > 로컬, pm.globals/collectionVariables/environment API 활용
- 내장 동적 변수: {{$randomInt}}, {{$randomEmail}}, {{$timestamp}}, {{$guid}}
- pm.test(), pm.expect() Chai 어서션, pm.response 객체 접근을 활용한 테스트 스크립팅
- pm.response.to.have.jsonSchema()를 이용한 JSON 스키마 유효성 검사로 응답 구조 테스트
- Newman CLI 자동화: 터미널에서 컬렉션 실행, HTML 리포트 생성, CI/CD 통합
- 실패 시 이메일 알림을 포함한 예약된 API 상태 확인용 Postman Monitor
자주 묻는 질문
Postman이란 무엇이고 어디에 사용하나요?
Postman은 REST, GraphQL, SOAP API를 구축, 테스트, 문서화하기 위한 API 플랫폼입니다. HTTP 요청 전송 GUI, 컬렉션 조직화, 자동화 테스트 작성, 배포 단계별 환경 관리, Newman CLI를 통한 CI/CD 파이프라인 테스트 실행 기능을 제공합니다.
Postman의 전역, 컬렉션, 환경 변수의 차이는 무엇인가요?
전역 변수는 워크스페이스의 모든 컬렉션에서 접근 가능합니다. 컬렉션 변수는 단일 컬렉션에 범위가 한정되어 그 안의 모든 요청에서 공유됩니다. 환경 변수는 특정 환경(개발, 스테이징, 프로덕션)에 연결되어 환경 전환 시 값이 바뀝니다. URL, 헤더, 바디에서 `{{변수명}}` 구문으로 참조합니다.
Postman에서 JSON 응답을 검증하는 테스트를 작성하는 방법은?
요청의 Tests 탭에서 pm.test()와 pm.expect()를 사용합니다: `pm.test("상태코드 200", () => { pm.response.to.have.status(200); });`. 구조 검증은 필드와 타입을 정의하는 JSON Schema 객체와 함께 pm.response.to.have.jsonSchema(schema)를 사용하세요.
Newman이란 무엇이고 CI/CD에서 어떻게 사용하나요?
Newman은 Postman 컬렉션을 위한 커맨드라인 실행기입니다. `npm install -g newman`으로 설치하고 `newman run collection.json -e environment.json`으로 실행합니다. CI/CD(예: GitHub Actions)에서는 내보낸 컬렉션과 환경 파일로 Newman을 실행하는 스텝을 추가하고, 테스트 실패 시 빌드를 중단하려면 `--bail` 옵션을 사용합니다.
환경 변수의 초기값(Initial Value)과 현재값(Current Value)의 차이는?
초기값은 컬렉션이나 환경을 팀과 공유할 때 동기화되며 Postman 클라우드에 저장됩니다. 현재값은 로컬에만 저장되고 절대 공유되지 않습니다. API 키나 비밀번호 같은 민감 정보는 팀원에게 노출되지 않도록 반드시 현재값에만 입력하세요.
컬렉션의 모든 요청을 자동으로 실행하는 방법은?
Collection Runner를 사용합니다: 컬렉션의 "Run" 버튼을 클릭하고 반복 횟수와 요청 사이의 지연 시간을 설정합니다. 자동화 실행은 Newman CLI를 사용합니다: `newman run collection.json --iteration-count 5`. `--iteration-data`로 CSV 또는 JSON 데이터 파일을 전달하여 여러 데이터 세트를 테스트할 수도 있습니다.
사전 요청 스크립트(Pre-request Script)로 동적 값을 설정하는 방법은?
사전 요청 스크립트는 각 요청 전에 실행되며 환경 변수를 동적으로 설정할 수 있습니다. 예: `pm.environment.set("timestamp", Date.now())`나 인증 요청에 필요한 서명 생성. 요청의 "Pre-request Script" 탭이나 컬렉션 수준에서 설정하면 모든 요청에 적용됩니다.
API 상태 확인을 위한 Postman Monitor 설정 방법은?
Monitor는 수동 개입 없이 일정에 따라 컬렉션을 실행합니다. 컬렉션 > Monitor > Create Monitor로 이동해 실행 빈도(예: 매 1시간), 환경과 지역을 선택하고 실패 시 이메일 알림을 설정합니다. Monitor는 프로덕션 API 회귀를 감지하는 데 유용합니다.