All the Things about IT & US stocks
테스팅

POSTMAN API 테스트를 GitHub Action에 통합하기

API 테스팅 도구인 POSTMAN으로 API 테스트를 작성하고 Newman을 통해 GitHub Action에 통합하기(업데이트: 2023년 5월 22일)

POSTMAN이란?
Postman은 API 테스트 수행하기 위해 널리 사용되는 API 테스트 도구이다. 웹 서버에 API 요청을 보내고 응답을 받기 위한 GUI 인터페이스를 제공한다. 실제 실무에서 API를 테스팅하기 위해 많이 사용하며 GET/POST와 같은 HTTP 메소드는 물론 다양한 Auth0와 같은 다양한 인증 기능을 활용할 수 있다.

Newman을 활용해서 API 테스팅 자동화하기

  1. 먼저 POSTMAN 에서 API 테스트를 작성한다.
  2. GitHub Action에 POSTMAN API 테스트를 통합하기 위해 작성한 테스트를 Export 한다.
    1. Export 버튼은 API 컬렉션을 클릭하고 우측 상단의 “…” 을 클릭하면 Export 메뉴를 확인할 수 있다.
      Postman의 Export 메뉴
    2. 해당 메뉴를 클릭하면 아래와 같은 Export 팝업 창이 표시된다.
Postman Export

3. Export 버튼을 누르면 POSTMAN 컬렉션에 포함된 API 테스트 케이스가 JSON 파일 형태로 다운로드 된다.

4. GitHub 마켓플레이스(https://github.com/marketplace)에서 Newman 을 검색한다.
Postmanlabs/newman을 클릭한다.

GitHub 마켓플레이스에서 newman 검색 후 Postmanlabs/newman 선택

참고로 Newman은 POSTMAN의 CLI 버전이라고 생각하면 된다.

5. Newman Acton을 활용해서 아래와 같이 workflow 파일(예를 들어 newman.yml)을 .github/workflows 폴더에 작성한다.

name: Newman Integration

on:
  push:
    branches:
      - main

jobs:
  newman:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Run Newman
        uses: postmanlabs/newman-action@v2
        with:
          collection: path/to/your/collection.json
          environment: path/to/your/environment.json

또 다른 방법도 있다.

위의 postmanlabs/newman-action를 사용하지 않고 GitHub 파이프라인에서 직접 Newman을 설치해서 실행할 수 있다.

.github/workflows 디렉토리에 newman.yml 파일을 아래 예시와 같이 생성한다.

name: Newman Integration

on:
  push:
    branches:
      - main

jobs:
  newman:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Install Node.js
        uses: actions/setup-node@v2
        with:
          node-version: 14

      - name: Install dependencies
        run: npm ci

      - name: Run Newman
        run: npx newman run path/to/your/collection.json -e path/to/your/environment.json

위의 workflow파일은 Node.js를 설치하고 npx newman run 명령어를 사용해서 Newman을 실행한다.

참고:

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

back to top