본문 바로가기
공부/개발

Newman을 활용한 API 자동화 테스트

by kkangyU 2025. 2. 20.
반응형

API 테스트를 수동으로 반복하는 것은 시간이 많이 걸리고 비효율적입니다.
Postman과 Newman을 활용하면 API 테스트를 자동화하여 효율성을 극대화할 수 있습니다.

이 글에서는 초보자도 쉽게 따라 할 수 있도록 Postman에서 API 요청을 생성하는 방법부터 Newman을 사용해 자동으로 실행하는 과정까지 단계별로 설명합니다.

Postman에서 API 요청을 만들고 테스트 코드 추가하기
컬렉션을 내보내고 Newman을 통해 테스트 자동화하기
테스트 실행 후 결과를 확인하고 문제 해결하기

Postman을 사용해 본 경험이 있다면, 이 글을 참고하시어 Newman을 활용한 API 테스트 자동화를 경험해 보시길 바랍니다.! 🚀

📌 1. Postman과 Newman이란?

🔹 Postman이란?

  • 웹사이트나 앱이 서로 대화하는 방식을 API라고 합니다.
  • Postman은 API 요청을 쉽게 만들고 테스트할 수 있도록 도와주는 도구입니다.
  • 마우스 클릭만으로 API 요청을 보내고, 응답을 확인할 수 있습니다.

🔹 Newman이란?

  • Postman에서 만든 API 테스트를 명령어(Command Line)에서 자동 실행할 수 있도록 도와주는 도구입니다.
  • 마치 Postman의 비서처럼, 우리가 설정한 테스트를 대신 실행해 줍니다.
  • 여러 API 요청을 한꺼번에 실행하고, 테스트 결과를 파일로 저장할 수도 있습니다.

📌 2. 사전 준비: 필요한 프로그램 설치

Newman을 사용하려면 Postman과 Node.js가 설치되어 있어야 합니다.

✅ 1) Postman 설치

✅ 2) Node.js 설치

Newman은 Node.js 환경에서 실행되므로, Node.js가 필요합니다.

  • 👉 Node.js 공식 사이트에서 다운로드 후 설치합니다.
  • 설치가 완료되면 터미널을 열고 아래 명령어를 입력해 확인하세요.
node -v

✔️ vXX.XX.XX 형태의 버전이 출력되면 정상 설치된 것입니다.

📌 3. Postman에서 API 요청 만들기

✅ 1) 새로운 API 요청 생성

  1. Postman 실행
  2. 상단의 + New Tab 클릭
  3. Request Type을 GET으로 설정
  4. API 요청 URL 입력 (예: JSONPlaceholder API 사용)
    https://jsonplaceholder.typicode.com/posts/1
    
  5. Send 버튼 클릭
    • 정상적으로 API가 동작하면 응답(Response) 데이터가 화면에 나타납니다.

✅ 2) 요청을 저장하고 컬렉션(Collection) 만들기

  1. 오른쪽 상단 Save 버튼 클릭
  2. 새로운 컬렉션(Collection) 생성
    • New Collection 클릭 → 이름 입력 (예: My API Tests)
  3. 컬렉션에 요청을 추가
  4. Save to My API Tests 클릭

✔️ 이렇게 하면 API 요청이 저장됩니다.

📌 4. Postman에서 API 테스트 자동화 설정

Newman을 실행하려면 API 테스트 스크립트를 추가해야 합니다.

✅ 1) 테스트 코드 추가

  1. Postman에서 만든 API 요청을 엽니다.
  2. 아래 Tests 탭을 클릭합니다.
  3. 테스트 코드 추가 (예제 코드)
pm.test("응답이 정상적으로 도착해야 합니다", function () {
    pm.response.to.have.status(200);
});

pm.test("응답에 title 필드가 있어야 합니다", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData).to.have.property("title");
});
  1. Save 버튼 클릭 후 Send 버튼 클릭
    • 정상적으로 동작하면 테스트 결과가 화면에 나타납니다.

✔️ 이렇게 하면 API 테스트가 설정되었습니다.

📌 5. Postman에서 컬렉션 및 환경 파일 내보내기

✅ 1) 컬렉션(Collection) 내보내기

이제 Newman에서 실행할 수 있도록 컬렉션을 JSON 파일로 내보냅니다.

  1. 왼쪽 Collections 탭에서 My API Tests 선택
  2. 컬렉션 오른쪽 …(점 3개) 클릭 → Export 선택
  3. Collection v2.1 (recommended) 형식으로 내보내기
  4. 파일 저장 위치를 Desktop 또는 Documents에 지정
    • 예: /Users/사용자이름/Desktop/My_API_Tests.postman_collection.json

✅ 2) 환경 파일(Environment) 내보내기 (필요한 경우)

API 요청에서 환경 변수를 사용했다면, 환경 파일도 함께 내보내야 합니다.

  1. Postman 상단 Environments 클릭
  2. 사용 중인 환경 선택
  3. 오른쪽 …(점 3개) 클릭 → Export 선택
  4. 파일을 바탕화면(Desktop) 등에 저장
    • 예: /Users/사용자이름/Desktop/My_Environment.postman_environment.json

📌 6. Newman 설치

이제 터미널을 열고, Newman을 설치합니다.

npm install -g newman

✔️ 설치 확인:

newman -v

✔️ x.x.x 버전이 출력되면 정상적으로 설치된 것입니다.

📌 7. Newman 실행

✅ 기본 실행 (환경 파일 없이)

newman run /Users/사용자이름/Desktop/My_API_Tests.postman_collection.json

✅ 환경 파일과 함께 실행

newman run /Users/사용자이름/Desktop/My_API_Tests.postman_collection.json -e /Users/사용자이름/Desktop/My_Environment.postman_environment.json

📌 8. Newman 실행 결과 (출력 예시)

테스트 성공 시

→  My API Tests

  GET https://jsonplaceholder.typicode.com/posts/1 [200 OK, 512B, 289ms]
  ✓ 응답이 정상적으로 도착해야 합니다
  ✓ 응답에 title 필드가 있어야 합니다

테스트 실패 시

→  My API Tests

  GET https://jsonplaceholder.typicode.com/posts/1 [200 OK, 512B, 289ms]
  ✗ 응답에 title 필드가 있어야 합니다
      AssertionError: expected {} to have property 'title'

✔️ 성공하면 모든 테스트가 통과되었다는 메시지가 나옵니다.
테스트가 실패하면 실패한 이유와 함께 오류 메시지가 표시됩니다.

반응형