본문으로 건너뛰기

Postman과 NewMan Library의 사용방법

· 약 19분
Dongmin Yu

Postman과 Newman 라이브러리

Postman은 Node.js 기반의 런타임을 포함하고 있어, Request와 Collection에 동적으로 동작을 추가할 수 있습니다. 이를 통해 동적 매개변수를 사용하거나 요청 간에 데이터를 전달하는 것이 가능합니다. 이런 동적 작업을 수행하는 다음 2가지 이벤트 흐름에 대해 자바스크립트 코드를 작성할 수 있습니다. Pre-request Script : Request 헤더에 key를 추가시키거나, URL 매개변수에 문자열을 추가하고자 할 때 사용 (요청이 서버로 가기 전에 실행) Test Script : .test 함수를 사용하고, .response, .expect 객체 등에 접근이 가능함 (요청이 서버로 간 이후 응답이 반환된 후에 실행). Postman에서 작성한 스크립트나 API 테스트를 Node.js 프로젝트에 반영하는 방법으로는 Newman 라이브러리를 사용하는 방법이 있습니다. Newman은 Postman의 CLI 버전으로 Postman Collection을 Node.js 모듈로 실행할 수 있습니다.

References

(1) POSTMAN - Run Postman Collection Using JavaScript Project | As Node.js module | Newman ... (2) Scripting in Postman | Postman Learning Center (3) Node.js 및 React 앱 만들기 - Visual Studio (Windows) (4) Create API with node JS and test with postman | Node Js Tutorial | Learning Points ...

Newman에 대한 설명과 사용 예제

Newman은 Postman의 CLI 버전으로 Postman Collection을 Node.js 모듈로 실행할 수 있습니다. 이를 통해 Postman에서 작성한 스크립트나 API 테스트를 Node.js 프로젝트에서 실행할 수 있습니다. Newman을 사용하려면 먼저 Node.js가 설치되어 있어야 합니다. 그 다음 npm을 통해 Newman을 전역으로 설치합니다. 그러나 Newman 자체는 Axios 리퀘스트를 보내는 기능을 제공하지 않습니다. Express와 같은 환경을 구축하지 않고 Axios 리퀘스트를 보내려면 Node.js의 내장 모듈인 http 또는 https 모듈을 사용하거나 Axios와 같은 서드파티 라이브러리를 사용해야 합니다.

npm install -g newman

Newman을 실행하는 가장 쉬운 방법은 Collection과 함께 실행하는 것입니다. 파일 시스템에서 Collection 파일을 실행할 수 있습니다. 또한 Collection을 공유하여 URL로 전달할 수도 있습니다.

newman run mycollection.json

Collection이 환경 변수를 사용하는 경우, Postman에서 템플릿을 내보내고 -e 플래그와 함께 실행합니다.

newman run https://www.postman.com/collections/cb208e7e64056f5294e5 -e dev_environment.json

Newman은 라이브러리로 구축되어 다양한 방식으로 확장 및 사용할 수 있습니다. Node.js 코드에서 다음과 같이 사용할 수 있습니다.

var newman = require("newman");
// `options` 객체를 전달하고 콜백을 기다리면서 newman.run 호출
newman.run(
  {
    collection: require("./sample-collection.json"),
    reporters: "cli",
  },
  function (err) {
    if (err) {
      throw err;
    }
    console.log("collection run complete!");
  },
);

References

(1) Installing and running Newman | Postman Learning Center (2) newman - npm (3) Newman University Library: Library Homepage: Home

Swagger UI와 Postman

Swagger UI는 OpenAPI (이전에는 Swagger) 사양을 기반으로 한 오픈 소스 프로젝트로, RESTful API를 설계, 빌드, 문서화 및 사용하는 데 도움이 되는 도구 모음입니다. Swagger UI를 사용하면 API를 시각적으로 탐색하고 상호 작용할 수 있으며, API 문서를 자동으로 생성할 수 있습니다. Postman은 API 개발 환경으로, API를 개발하고 테스트하는 데 필요한 모든 기능을 제공합니다. Postman을 사용하면 API 요청을 보내고 응답을 확인할 수 있으며, 테스트 스크립트를 작성하고 자동화된 테스트를 실행할 수 있습니다. 또한 Postman은 API 문서화, 모니터링 및 공유 기능도 제공합니다.

두 도구 모두 API 개발에 유용하지만, Swagger UI는 API 문서화와 시각화에 중점을 두고 있으며, Postman은 API 개발 및 테스트에 중점을 두고 있습니다. Swagger UI와 Postman은 모두 API 개발에 유용한 도구이지만, 각각의 목적과 기능이 다릅니다. 따라서 어떤 것이 더 나은지는 사용자의 필요에 따라 달라집니다. Swagger UI는 API 문서화와 시각화에 중점을 두고 있습니다. 따라서 API를 설계하고 문서화하는 데 중점을 두는 경우 Swagger UI가 더 유용할 수 있습니다. Postman은 API 개발 및 테스트에 중점을 두고 있습니다. 따라서 API를 개발하고 테스트하는 데 중점을 두는 경우 Postman이 더 유용할 수 있습니다. 또한 Swagger UI와 Postman은 함께 사용할 수도 있습니다. 예를 들어 Swagger UI를 사용하여 API를 설계하고 문서화하고, Postman을 사용하여 API를 테스트하는 것이 가능합니다. Swagger UI와 Postman은 함께 사용하여 API 개발 프로세스를 강화할 수 있습니다. 예를 들어, Swagger UI를 사용하여 API를 설계하고 문서화할 수 있습니다. Swagger UI는 OpenAPI 사양을 기반으로 하며, 이 사양을 사용하여 API의 구조와 기능을 정의할 수 있습니다. 또한 Swagger UI는 이 사양을 기반으로 자동으로 API 문서를 생성할 수 있습니다. 이렇게 생성된 API 문서는 Postman에서 가져올 수 있습니다. Postman에서는 가져온 API 문서를 기반으로 API 요청을 보내고 응답을 확인할 수 있습니다. 또한 Postman에서는 테스트 스크립트를 작성하여 자동화된 테스트를 실행할 수 있습니다. 이렇게 Swagger UI와 Postman을 함께 사용하면 API 설계 및 문서화와 API 개발 및 테스트를 원활하게 진행할 수 있습니다.

Newman과 pm은 Postman

Newman은 Postman의 커맨드 라인 도구로, Postman 컬렉션을 실행하는 데 사용됩니다. Newman을 사용하면 Postman 컬렉션을 지정된 환경에서 실행하고 테스트 결과를 생성할 수 있습니다. Newman은 지속적인 통합 및 지속적인 전달 (CI/CD) 파이프라인에 통합하여 API 테스트를 자동화하는 데 유용합니다. pm은 Postman 스크립트에서 사용할 수 있는 내장 라이브러리입니다. pm을 사용하면 요청 및 응답 데이터에 액세스하고 조작할 수 있으며, 환경 및 전역 변수를 설정하고 관리할 수 있습니다. 또한 pm을 사용하여 테스트 스크립트를 작성하고 실행할 수 있습니다. 따라서 Newman과 pm은 서로 다른 목적으로 사용되는 도구입니다. Newman은 Postman 컬렉션을 실행하는 데 사용되며, pm은 Postman 스크립트를 작성하는 데 사용됩니다.

Newman을 사용하여 Postman 컬렉션을 "실행"한다는 것은 Postman 컬렉션에 포함된 모든 요청을 순차적으로 실행하고 테스트 스크립트를 실행하는 것을 의미합니다. Postman 컬렉션은 여러 개의 API 요청과 테스트 스크립트로 구성됩니다. Newman을 사용하여 Postman 컬렉션을 실행하면 Newman은 컬렉션에 포함된 각 요청을 순차적으로 실행하고 응답을 확인합니다. 또한 Newman은 컬렉션에 포함된 테스트 스크립트를 실행하여 API가 예상대로 작동하는지 확인합니다. Newman은 Postman의 Publish 기능과는 다릅니다. Publish 기능은 Postman 컬렉션의 문서화된 버전을 웹에서 공유하는 데 사용됩니다. 반면 Newman은 Postman 컬렉션을 실행하는 데 사용되며, API 엔드포인트를 간편하게 리스팅하거나 관리하는 것이 아니라 API 테스트를 자동화하는 데 목적이 있습니다.

Newman은 백엔드와 프론트엔드 모두에게 유용한 도구입니다. Newman은 Postman 컬렉션을 실행하는 커맨드 라인 도구로, API 테스트를 자동화하는 데 사용됩니다. 백엔드 개발자는 Newman을 사용하여 API가 예상대로 작동하는지 확인할 수 있습니다. Newman을 사용하면 API 요청을 보내고 응답을 확인하며, 테스트 스크립트를 실행하여 API가 예상대로 작동하는지 확인할 수 있습니다. 또한 Newman은 지속적인 통합 및 지속적인 전달 (CI/CD) 파이프라인에 통합하여 API 테스트를 자동화할 수 있습니다. 프론트엔드 개발자도 Newman을 사용하여 API가 예상대로 작동하는지 확인할 수 있습니다. 프론트엔드 개발자는 Newman을 사용하여 백엔드 API가 예상대로 작동하는지 확인하고, 프론트엔드 코드가 백엔드 API와 올바르게 상호 작용하는지 확인할 수 있습니다. Newman은 백엔드와 프론트엔드 모두에게 유용한 도구입니다.

Postman에서 API 문서 생성하는 방법

Postman은 OpenAPI 사양을 기반으로 한 API 문서를 생성하는 기능을 제공합니다. Postman 컬렉션에서 API 문서를 생성하려면 다음 단계를 따르십시오.

  1. Postman에서 컬렉션을 선택하고 "..." 버튼을 클릭한 다음 "Export"를 선택합니다.
  2. "Collection v2.1"을 선택하고 "Export" 버튼을 클릭합니다.
  3. 파일을 저장하고 Postman API Builder로 이동합니다.
  4. "APIs" 탭에서 "+" 버튼을 클릭하고 "Import an API"를 선택합니다.
  5. "Choose Files" 버튼을 클릭하고 앞서 저장한 파일을 선택합니다.

이제 Postman API Builder에서 OpenAPI 사양을 기반으로 한 API 문서를 생성할 수 있습니다. 생성된 API 문서는 Swagger와 같은 다른 도구에서도 사용할 수 있습니다.

Swagger와 Open API 3.0

또한 일부 백엔드 프레임워크 (예: Node.js의 Express)에서는 Swagger와 같은 도구를 사용하여 코드 주석을 기반으로 자동으로 API 문서를 생성하는 기능도 제공합니다. 이러한 기능을 사용하면 코드 주석에 기반하여 자동으로 API 문서를 생성할 수 있습니다. OpenAPI 2.0 (이전에는 Swagger로 알려졌음)은 OpenAPI 3.0과 몇 가지 중요한 차이점이 있습니다. OpenAPI 3.0은 2017년에 출시되었으며, 몇 가지 주요한 변경 사항이 있습니다.

  • 문서 구조가 재구성되어 API 재사용성이 증가하도록 개발되었습니다.
  • JSON 스키마 지원이 확장되었습니다.
  • 새로운 콜백 및 링크 기능이 추가되었습니다.
  • 서버 변수 및 다중 서버 지원이 추가되었습니다.

OpenAPI 3.1은 OpenAPI 3.0의 마이너 업데이트로, JSON 스키마와의 호환성을 개선하는 데 중점을 두고 있습니다. OpenAPI 3.1은 JSON 스키마의 최신 초안과 100% 호환됩니다. OpenAPI 2.x에서 생성된 문서는 OpenAPI 3.x와 완벽하게 호환되지 않습니다. 그러나 OpenAPI 2.x 문서를 OpenAPI 3.x로 마이그레이션하는 것은 가능합니다. 이를 위해서는 일부 변경 사항을 수동으로 적용해야 할 수도 있습니다.

References

(1) OpenAPI 란? (feat. Swagger) - 호롤리한 하루 (2) What's the Difference Between OpenAPI Types 2.0, 3.0, and 3.1? - Stoplight (3) Migrating from OpenAPI 3.0 to 3.1.0 - OpenAPI Initiative (4) OpenAPI Specification 3.1.0 Released - OpenAPI Initiative

Open API의 관리 주체

OpenAPI 사양은 OpenAPI Initiative (OAI)이라는 비영리 조직에 의해 관리됩니다. OAI는 API 개발 및 사용을 지원하는 목적으로 설립된 커뮤니티 주도 조직으로, 여러 기업과 개인이 참여하고 있습니다. SwaggerHub는 SmartBear라는 회사에서 개발한 서비스입니다. SmartBear는 Swagger UI를 개발한 회사로, OpenAPI Initiative의 창립 회원 중 하나입니다. SwaggerHub는 OpenAPI 사양을 지원하는 API 디자인 및 문서화 플랫폼으로, Swagger UI와 같은 도구와 함께 사용할 수 있습니다. OpenAPI 사양을 기반으로 코드를 생성하는 도구는 다양한 백엔드 언어와 프레임워크에서 제공됩니다. 이러한 도구를 사용하면 OpenAPI 문서에서 API 엔드포인트와 데이터 모델을 자동으로 생성할 수 있습니다. 예를 들어, Swagger Codegen은 OpenAPI 사양을 기반으로 서버 스텁 및 클라이언트 SDK를 생성하는 오픈 소스 도구입니다. Swagger Codegen은 다양한 언어와 프레임워크를 지원하며, Java, Python, Ruby, Node.js, Go 등의 언어로 코드를 생성할 수 있습니다. 또한 일부 백엔드 프레임워크 (예: Node.js의 Express)에서는 Swagger와 같은 도구를 사용하여 코드 주석을 기반으로 자동으로 API 문서를 생성하는 기능도 제공합니다. 이러한 기능을 사용하면 코드 주석에 기반하여 자동으로 API 문서를 생성할 수 있습니다. 이 외에도 OpenAPI Generator, NSwag 등의 도구가 있으며, 각각의 도구는 다양한 언어와 프레임워크를 지원합니다.

RAML

OpenAPI와 유사한 목적을 가진 다른 API 설명 언어로는 RAML (RESTful API Modeling Language)과 API Blueprint가 있습니다. RAML은 YAML을 기반으로 한 API 설명 언어로, RESTful API를 모델링하는 데 사용됩니다. RAML은 API의 리소스, 메서드, 매개 변수, 응답 등을 정의할 수 있으며, API 문서를 자동으로 생성할 수 있습니다. API Blueprint는 Markdown을 기반으로 한 API 설명 언어로, RESTful API를 문서화하는 데 사용됩니다. API Blueprint는 API의 리소스, 메서드, 매개 변수, 응답 등을 정의할 수 있으며, API 문서를 자동으로 생성할 수 있습니다. 이러한 도구들은 OpenAPI와 유사한 목적을 가지고 있지만, 각각의 도구는 고유한 문법과 기능을 가지고 있습니다. 따라서 사용자의 필요에 따라 적절한 도구를 선택하여 사용할 수 있습니다.