요약
Postman의 공식 CLI 러너인 Newman은 CI 파이프라인에 npm과 Node.js를 필요로 합니다. 이는 공급망 위험을 초래하고, 종속성 관리 오버헤드를 추가하며, Postman의 무료 티어에서는 API를 통한 컬렉션 실행에 이제 속도 제한이 있습니다. 이 가이드는 Newman 없이 CI에서 API 테스트를 실행하기 위한 세 가지 대안을 다룹니다: Apidog의 CLI 러너, k6, 그리고 Hurl. Apidog는 기존 Postman 컬렉션이 있는 경우 가장 직접적인 경로인데, 이는 Apidog가 컬렉션을 기본적으로 가져오고 실행당 제한이 없기 때문입니다.
💡 Apidog는 무료 올인원 API 개발 플랫폼입니다. Apidog의 CLI 러너는 npm 종속성이나 실행 횟수 제한 없이 CI에서 Postman 호환 컬렉션을 실행합니다. Apidog를 무료로 사용해 보세요. 신용 카드 정보가 필요 없습니다.
소개
Newman은 좋은 아이디어였습니다. CI 파이프라인에서 Postman 컬렉션을 실행하는 CLI 도구는 API 테스트를 이식성 있고 자동화 가능하게 만들었습니다. Postman의 브랜드 신뢰를 바탕으로 인기 있는 커뮤니티 액션을 통해 GitHub Actions와 통합되었으며, 많은 팀이 전체 API 테스트 자동화 전략을 Newman 중심으로 구축할 정도로 잘 작동했습니다.
그러나 다음과 같은 세 가지 문제가 있습니다.
-
npm 공급망 위험: Newman은 npm 패키지입니다. 파이프라인에서 빌드 시 npm 레지스트리에서 패키지를 가져와야 하며, 이는 보안 위협이 될 수 있습니다. 2021년
ua-parser-js, 2022년node-ipc공급망 침해 사례는 실제 피해를 입혔습니다. - 무료 티어 실행 제한: Postman은 무료 및 기본 유료 티어에서 컬렉션 실행을 제한하기 시작했습니다. 할당량에 도달하면 요금제를 업그레이드하거나 파이프라인을 재설계해야 합니다.
- 느린 유지보수: Newman의 이슈 해결 속도가 느려, 일부 최신 Postman 스크립팅 API가 일관되게 지원되지 않습니다.
이러한 이유로 Newman 중심의 CI 파이프라인을 유지하는 개발자들은 대안을 찾아야 합니다. 다음은 실제로 적용 가능한 세 가지 대안입니다.
옵션 1: Apidog CLI (Postman 컬렉션 사용자에게 권장)
이미 Postman 컬렉션을 사용 중이라면, Apidog의 CLI 러너가 가장 직접적인 대체 도구입니다.
지원 기능
- Postman Collection v2 및 v2.1 형식 지원
- Postman 환경 (JSON 내보내기)
-
pm.test,pm.expect,pm.environment.set,pm.collectionVariables.set등 지원 - 요청 전/후 스크립트 실행
- CSV/JSON 데이터 파일을 통한 데이터 기반 테스트
- JUnit XML 및 JSON 출력(리포팅)
npm 불필요
Apidog CLI는 독립형 바이너리입니다. 다운로드 후 PATH에 추가하면 바로 실행할 수 있습니다.
실행당 제한 없음
어떤 요금제에서도 컬렉션 실행 횟수에 제한이 없습니다. 대량 실행 파이프라인도 동일하게 동작합니다.
설치
플랫폼에 맞는 CLI 바이너리를 apidog.com/cli에서 다운로드하거나, 셸 설치 스크립트를 사용하세요:
# macOS / Linux
curl -sSf https://apidog.com/cli/install.sh?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation | sh
# 확인
apidog --version
Docker 기반 CI 러너에서는 공식 이미지를 활용할 수 있습니다:
FROM apidog/cli:latest
Postman 컬렉션 실행하기
-
컬렉션 및 환경 내보내기
- Postman에서 컬렉션: 파일 > 내보내기 > Collection v2.1
- 환경: 환경 관리 > 내보내기
컬렉션 실행
apidog run collection.json \
--environment environment.json \
--reporter-junit results.xml
GitHub Actions 예시
name: API Tests
on: [push, pull_request]
jobs:
api-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Apidog CLI
run: curl -sSf https://apidog.com/cli/install.sh?utm_source=dev.to&utm_medium=wanda&utm_content=n8n-post-automation | sh
- name: Run API tests
run: |
apidog run ./tests/collection.json \
--environment ./tests/env.json \
--reporter-junit test-results.xml
- name: Upload test results
uses: actions/upload-artifact@v4
if: always()
with:
name: api-test-results
path: test-results.xml
npm install, package.json, Node.js 버전 매트릭스가 모두 불필요합니다. 작업이 더 빠르고, 종속성 표면적이 줄어듭니다.
GitLab CI 예시
api-tests:
image: apidog/cli:latest
script:
- apidog run ./tests/collection.json
--environment ./tests/env.json
--reporter-junit test-results.xml
artifacts:
reports:
junit: test-results.xml
옵션 2: k6
k6는 Grafana Labs의 부하 테스트 도구로 기능 API 테스트도 지원합니다. 기능 검증과 성능 검증을 동시에 하고 싶다면 유용합니다.
지원 기능
- HTTP/1.1, HTTP/2, WebSocket, gRPC 지원
- ES6+ JavaScript 테스트 스크립트
- 임계값(thresholds)을 통한 성능 검증
- InfluxDB, Prometheus, Datadog으로 출력 가능
지원하지 않는 기능
- Postman 컬렉션 형식 지원 없음.
→
postman-to-k6변환기를 통해 Postman 컬렉션을 변환할 수 있지만, 복잡한 스크립트는 변환 후 수동 보정이 필요할 수 있습니다. - Postman의
pm.*API 미지원. 변환 계층에서 일부 에뮬레이션은 가능하지만 100% 호환되지 않습니다.
k6를 선택할 때
기능 테스트와 성능 테스트를 동일 파이프라인에서 통합해야 할 경우(k6는 부하 상태에서의 API 정확성 검증에 강점) 고려할 만합니다. 단순히 Newman 대체라면 Apidog가 더 빠른 셋업이 가능합니다.
기본 사용법
# 설치 (Linux)
sudo apt-get install k6
# 테스트 스크립트 실행
k6 run api-tests.js
JUnit XML 출력이 필요한 경우, k6-reporter 패키지를 활용하세요.
옵션 3: Hurl
Hurl은 Rust로 작성된 오픈소스 HTTP 테스트 도구입니다. 빠르고, 런타임 종속성이 없으며, 요청 및 어설션을 정의하기 위해 텍스트 기반 DSL을 사용합니다.
지원 기능
- HTTP/1.1, HTTP/2 지원
- JSON, XPath, 정규식 어설션
- 변수 및 요청 간 연결
- HTML, JUnit, JSON 출력
지원하지 않는 기능
- Postman 컬렉션 형식 미지원 (별도 변환기 없음)
- JavaScript 스크립트 미지원 (DSL 기반 선언적 어설션만 가능)
Hurl 사용을 고려할 때
테스트를 Hurl의 DSL로 새로 작성하거나, 간결한 바이너리(10MB 미만)가 필요한 경우 적합합니다. 신규 프로젝트에 Postman 컬렉션 부채가 없다면 유력한 선택입니다.
Hurl 테스트 예시
GET https://api.example.com/users/1
HTTP 200
[Asserts]
jsonpath "$.id" == 1
jsonpath "$.email" isString
GitHub Actions에서 Hurl 설치 및 실행 예시
- name: Install Hurl
run: |
curl -LO https://github.com/Orange-OpenSource/hurl/releases/latest/download/hurl-x86_64-unknown-linux-gnu.tar.gz
tar -xf hurl-*.tar.gz
sudo mv hurl /usr/local/bin/
- name: Run API tests
run: hurl --test tests/*.hurl
세 가지 옵션 비교
| 기능 | Apidog CLI | k6 | Hurl |
|---|---|---|---|
| Postman 가져오기 | 네이티브 | 변환기 (손실 있음) | 아니오 |
| npm 종속성 | 아니오 | 아니오 | 아니오 |
| JavaScript 스크립팅 | 예 (pm.* API) | 예 (ES6) | 아니오 (DSL만) |
| 성능 테스트 | 아니오 | 예 | 아니오 |
| 바이너리 크기 | ~50 MB | ~30 MB | ~10 MB |
| 무료 실행 제한 | 없음 | 없음 | 없음 |
| JUnit 출력 | 예 | 플러그인 통해 | 예 |
Newman에서 마이그레이션: 실용적인 단계
기존 Newman 기반 파이프라인이 있다면, 다음 단계로 Apidog CLI로 마이그레이션할 수 있습니다.
컬렉션 내보내기
Postman에서 각 컬렉션을 우클릭하여 v2.1로 내보내고, 환경도 별도로 내보냅니다.Apidog CLI 설치
CI 구성에 설치 단계를 추가합니다.Newman 명령을 Apidog 명령으로 대체
예시:
-
기존 Newman 명령:
newman run collection.json -e environment.json --reporters junit --reporter-junit-export results.xml -
Apidog CLI 명령:
apidog run collection.json --environment environment.json --reporter-junit results.xml
플래그 구조가 거의 동일하므로 변경이 쉽습니다.
스크립트 호환성 확인
CI에 반영하기 전에 로컬에서 Apidog CLI로 컬렉션을 실행해 보세요. 대부분의pm.*스크립트는 그대로 동작합니다. 단,pm.require등 외부 모듈 사용 시 일부 수정이 필요할 수 있습니다.Node.js 제거
Newman이 Node.js 필요의 유일한 원인인 경우, Node.js 및npm install단계 전체를 제거할 수 있습니다.
자주 묻는 질문
Newman은 공식적으로 사용 중단되었나요?
아니요, 2026년 초 현재 Newman은 여전히 Postman에 의해 유지보수되고 있습니다. 하지만 유지보수 속도가 느리고 여러 미해결 이슈가 실제 사용에 영향을 미치므로, 새로운 파이프라인 구축 시에는 다른 대안을 고려하는 것이 좋습니다.
Apidog CLI는 Apidog 계정이 필요한가요?
아닙니다. 로컬로 내보낸 컬렉션 실행에는 계정이 필요 없습니다. Apidog 워크스페이스와 동기화하려면 계정이 필요하나, Postman에서 내보낸 JSON만으로도 충분히 실행할 수 있습니다.
Apidog CLI는 데이터 기반 테스트를 지원하나요?
예. --iteration-data 플래그와 함께 CSV 또는 JSON 데이터 파일을 전달하면 됩니다. (-d 플래그와 동일)
npm 기반 러너의 공급망 위험은 무엇인가요?
CI 환경에서 npm 패키지 설치는 잠재적 공격 표면을 만듭니다. 손상된 npm 패키지는 환경 변수를 유출시키거나, API 토큰 등 민감한 정보를 노출할 수 있습니다. 독립형 바이너리 러너는 체크섬 검증 및 HTTPS 다운로드 등을 통해 이러한 위험을 줄입니다.
k6는 gRPC 테스트를 지원하나요?
예, k6는 네이티브 gRPC 테스트 기능을 제공합니다. REST와 gRPC를 모두 다루는 오픈소스 도구 중에서 드뭅니다.
Hurl은 인증 헤더를 지원하나요?
예. Authorization, Bearer, 쿠키 등 사용자 정의 헤더를 지원합니다. 변수로 환경 변수를 주입할 수도 있습니다.
API 테스트를 위한 기본 CI 선택지였던 Newman의 시대는 끝나가고 있습니다. 공급망 위험, 무료 티어 제한, 느린 유지보수로 인해 대안 도구가 필요해졌고, 특히 기존 Postman 컬렉션이 있다면 Apidog CLI로의 전환이 가장 간편한 방법입니다. Newman 없는 파이프라인 구축, 지금 바로 시작해 보세요.
Top comments (0)