Postman API 테스트, 3단계로 완벽 자동화하는 방법 (핵심 스크립트)

 

API 테스트, 아직도 눈으로만 확인하시나요? Postman을 활용한 API 테스트 자동화는 개발/QA의 필수 스킬입니다. 요청(Request) 설정부터 검증(Assertion) 스크립트 작성까지, Postman API 테스트의 모든 단계를 쉽고 명확하게 정리해 드립니다.

API(Application Programming Interface)는 현대 소프트웨어의 '연결 고리'입니다. 이 연결 고리가 제대로 작동하는지 확인하는 것이 바로 API 테스트죠. 예전에는 복잡한 코드를 짜서 테스트했지만, 이제는 Postman 하나만 있으면 마우스 클릭과 간단한 스크립트로 모든 테스트가 가능합니다!

Postman은 개발자와 QA 엔지니어의 필수 도구입니다. 오늘은 API 테스트의 가장 핵심인 '자동 검증(Assertion)'을 Postman에서 어떻게 설정하는지 단계별로 자세히 알아보겠습니다. 😊

 


Postman의 역할과 API 테스트의 기본 🤔

Postman은 API의 설계부터 테스트, 문서화까지 모든 라이프사이클을 지원하는 플랫폼입니다. Postman을 이용한 API 테스트의 기본 과정은 다음과 같습니다.

  1. **요청(Request) 정의:** 어떤 URL로, 어떤 방식(GET/POST 등)으로 데이터를 보낼지 설정합니다.
  2. **전송(Send):** 정의된 요청을 서버로 보냅니다.
  3. **응답(Response) 수신:** 서버에서 보낸 응답(데이터와 상태 코드)을 받습니다.
  4. **검증(Assertion):** 응답이 예상대로 왔는지 코드를 통해 자동으로 확인합니다. **(테스트의 핵심!)**

 

Step 1. 요청 설정 및 전송 (Request & Send) 📤

테스트를 시작하기 위해 먼저 요청을 정의해야 합니다. 이 과정은 GUI 기반이라 매우 쉽습니다.

  • **메소드(Method) 선택:** 드롭다운 메뉴에서 사용할 API 방식(GET, POST, DELETE 등)을 선택합니다. (데이터 조회는 GET, 데이터 생성은 POST)
  • **URL 입력:** 테스트할 API의 주소를 입력합니다.
  • **헤더/바디 설정:** Headers 탭에서 인증 정보(API Key, Token)를, Body 탭에서 POST/PUT 요청 시 보낼 데이터(주로 JSON 형식)를 설정합니다.
  • **전송:** Send 버튼을 눌러 요청을 보냅니다.
💡 응답 상태 코드 미리보기
Postman 하단 응답 패널에서 Status: 200 OK (성공), 404 Not Found (요청 주소 없음), 500 Internal Server Error (서버 오류) 등의 상태 코드를 반드시 확인해야 합니다. 테스트 스크립트 작성 시 이 상태 코드가 정확한지 검증합니다.

 

Step 2. 핵심: 검증 스크립트 작성 (Assertion) 📜

API 테스트의 핵심은 단순히 응답 데이터를 눈으로 확인하는 것이 아니라, 응답이 **예상대로** 왔는지 **자동으로 검증**하는 것입니다. Postman에서는 Tests 탭에서 JavaScript 코드를 작성하여 이를 수행합니다.

Postman은 pm.* 객체를 제공하여 응답 상태, 데이터, 헤더 등에 쉽게 접근할 수 있게 돕습니다. 아래는 가장 많이 사용하는 '응답 상태 코드가 200인지 확인하는' 예시입니다.

📝 응답 상태 코드 검증 스크립트 (JavaScript)

// 테스트 이름을 정의합니다.
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200); // 응답 코드가 200인지 검증
});

**자주 사용하는 검증 (Assertion) 예시**

  • **데이터 포함 여부 검증:** 응답 바디에 특정 문자열이 포함되어 있는지 확인합니다. (예: pm.expect(pm.response.text()).to.include('success');)
  • **JSON 데이터 값 검증:** 응답 바디의 JSON 객체에서 특정 키의 값이 예상과 일치하는지 확인합니다. (예: pm.expect(jsonData.id).to.eql(123);)
  • **응답 시간 검증:** API 응답 시간이 특정 시간(예: 200ms) 이내인지 확인합니다. (예: pm.expect(pm.response.responseTime).to.be.below(200);)

 

Step 3. 효율화: 변수와 환경 설정 (Variables) 🔄

개발, 테스트, 운영 환경마다 API 주소나 인증 키가 다르다면? 매번 수동으로 변경하는 대신 **변수(Variables)**를 사용해야 합니다.

Postman은 다양한 범위의 변수를 제공하며, 특히 **환경(Environments)** 기능을 사용하면 개발/운영 환경을 버튼 하나로 쉽게 전환할 수 있습니다.

변수 범위 사용 예시 활용
**환경 변수** {{baseURL}}, {{apiKey}} 개발(Dev) 환경과 운영(Prod) 환경 URL 전환
**컬렉션 변수** {{default_id}} 특정 API 그룹 내에서 공통으로 사용되는 값

변수를 사용하려면 URL이나 바디에 {{변수명}} 형태로 입력하면 됩니다. (예: {{baseURL}}/users)

 

자동화: 컬렉션 러너 활용 (Automation) 🤖

Postman의 최종 목표는 테스트의 '자동화'입니다. 여러 개의 요청(Request)을 하나로 묶은 **컬렉션(Collection)**을 만들고, **컬렉션 러너(Collection Runner)**를 사용해 모든 요청을 자동으로 순서대로 실행할 수 있습니다.

러너를 실행하면, Postman은 컬렉션 내의 모든 요청을 순차적으로 보내고, 각 요청에 대해 작성된 Tests 스크립트를 실행하여 테스트 결과를 성공/실패(Pass/Fail) 리포트 형태로 보여줍니다. 이 리포트를 통해 API의 상태를 한 번에 파악할 수 있죠.

 

마무리: 테스트 자동화, 지금 시작하세요 📝

Postman을 사용하면 단순한 API 테스트를 넘어, 테스트 스크립트를 통해 API의 동작을 자동으로 검증하고 환경별로 관리하는 '자동화된 QA 엔지니어' 역할을 수행할 수 있습니다.

테스트 자동화는 시간과 비용을 절약하고 API 품질을 높이는 가장 확실한 방법입니다. 오늘부터 Tests 탭에서 첫 번째 검증 스크립트를 작성하며 Postman 마스터가 되어보세요! 궁금한 점은 댓글로 물어봐주세요~ 😊

💡

Postman API 테스트 3단계 핵심

1. 요청 정의: URL, 메소드(GET/POST), 헤더/바디 설정
2. 검증 (핵심): Tests 탭에서 Assertion 스크립트 작성 (pm.test)
3. 효율화: 개발/운영 전환을 위한 환경 변수(Environments) 사용
자동화:
컬렉션 러너로 전체 API 자동 실행 및 리포트 확인

자주 묻는 질문 ❓

Q: Postman 테스트 스크립트는 어떤 언어로 작성하나요?
A: JavaScript 언어를 기반으로 작성하며, Postman에서 제공하는 내장 객체(pm)를 사용하여 응답 데이터에 쉽게 접근하고 테스트를 정의합니다. JavaScript의 문법과 문화를 이해하는 것이 스크립트 작성에 큰 도움이 됩니다.
Q: API 인증(Authentication)은 어떻게 처리하나요?
A: Postman은 다양한 인증 방식을 지원합니다. 요청 탭 옆의 Authorization 탭에서 OAuth 2.0, Bearer Token, Basic Auth 등을 설정할 수 있습니다. 토큰이나 키는 Headers 탭에 직접 넣거나, 보안을 위해 **환경 변수**에 저장하여 사용하는 것이 일반적입니다.
Q: 여러 요청 간에 데이터를 주고받고 싶어요 (체이닝 테스트).
A: Postman의 Tests 탭에서 이전 응답 데이터를 추출하여 **환경 변수**로 저장하고, 다음 요청의 URL, Body 등에 그 환경 변수({{변수명}})를 사용하여 테스트를 연결(체이닝)할 수 있습니다. 이는 복잡한 비즈니스 로직 테스트에 필수적인 기능입니다.
Q: Postman 테스트는 UI 테스트도 가능한가요?
A: 아니요. Postman은 기본적으로 API 레벨, 즉 **백엔드(서버)** 간의 통신과 데이터 로직을 테스트하는 데 초점을 맞춘 도구입니다. 웹사이트의 버튼 클릭이나 화면 레이아웃 같은 **프론트엔드(UI)** 동작은 Selenium이나 Cypress 같은 별도의 UI 테스트 프레임워크를 사용해야 합니다.

 

댓글

이 블로그의 인기 게시물

한국식 비건 식단, 과연 건강할까? 팩트 체크와 쉬운 레시피

한반도 동해 해역 단층 연계와 일본 지진 연쇄 가능성

고혈압 진단 기준과 실비보험 청구 가능한 항목