Postman, Newman 및 Jenkins를 사용한 REST API 자동화

Postman, Newman 및 Jenkins를 사용한 REST API 자동화

안녕하세요 여러분! 제 이름은 Alena이자 QA 책임자입니다 🙂

이 기사에서는 Postman, Newman 및 Jenkins와 같은 도구를 사용하여 REST API를 자동화한 경험을 공유하고 싶습니다.

Postman은 팀 내에서 API 개발 프로세스를 테스트, 공유, 생성, 협업 및 문서화할 수 있는 인기 있는 API 클라이언트입니다. Postman의 중요한 기능은 API용 JavaScript 기반 테스트를 작성하고 실행하는 기능입니다. Postman은 Jenkins와 같은 일부 CI(지속적 통합) 도구를 위한 내장 API 통합 도구를 제공합니다.

Postman에서 컬렉션 생성 및 자동 테스트 작성

먼저 컬렉션을 만들고 요청으로 채워야 합니다. 컬렉션이 준비되면 자동 테스트 작성을 시작할 수 있습니다. JavaScript 코드를 추가하는 방법에는 두 가지가 있습니다.

  1. “사전 요청 스크립트” 탭에서 서버에 요청을 보내기 전에 실행되는 스크립트를 추가할 수 있습니다.
  2. 또는 “테스트” 탭에서 수행되는 서버로부터 응답을 받은 후 실행되는 스크립트를 추가할 수 있습니다.

저는 일반적으로 “테스트” 탭을 사용합니다. 탭에 코드를 추가하면 요청이 실행될 때 실행됩니다. 실행 결과는 서버 응답의 테스트 결과 탭에서 확인할 수 있습니다. 동적 변수는 테스트 스크립트에서 사용할 수 있습니다. 응답의 데이터에 대한 검사를 추가하고 요청 간에 수신된 값을 전송할 수 있습니다.

Postman은 시간을 절약하기 위해 필요에 맞게 편집할 수 있는 표준 작업에 대해 미리 만들어진 코드 조각을 제공하는 것이 매우 편리합니다. 따라서 이러한 유형의 자동화는 JavaScript의 기본만 아는 사람이 마스터할 수 있습니다.

첫 번째 간단한 자동 테스트는 요청이 성공했는지 확인하고 상태 코드 200(또는 예상하는 다른 코드)을 수신했는지 확인하는 것입니다. 컬렉션 수준에서 이 테스트를 활성화하여 그 아래의 모든 쿼리가 이 검사를 상속하도록 하는 것이 가장 편리합니다.

pm.test("Status code is 200", function () {
   pm.response.to.have.status(200);

다음 테스트 예시는 JSON 스키마 검사입니다. JSON 스키마 유효성 검사가 필요한 이유는 무엇입니까? 왜냐하면:

  • 우리는 API 응답을 모니터링하고 수신되는 형식이 예상과 동일한지 확인합니다.

  • JSON 응답에 중요한 변경 사항이 있을 때마다 알림을 받습니다.

  • 통합 테스트의 경우 스키마를 확인하는 것이 유용합니다. 서비스의 모든 향후 버전을 테스트하기 위해 서비스 응답에서 한 번 생성될 수 있습니다.

    let schema = {
       "items": {
           "type": "boolean"
       }
    };
    
    pm.test("Схема корректна", () => {
       pm.response.to.have.jsonSchema(schema);
    });
    
    

    따라서 우리는 이미 두 가지 자동화된 REST API 검사를 갖고 있습니다. 자동 테스트 예제는 다음 문서에서 찾아보고 연구할 수 있으므로 더 이상 설명하지 않겠습니다. 우편 배달부의 학습 사이트이제 흥미로운 부분으로 넘어가겠습니다. 컬렉션을 Jenkins와 통합하는 것입니다.

CI(지속적 통합) 빌드 시스템과 Postman 통합

발생하는 첫 번째 질문은 Postman과 Jenkins를 연결하는 방법입니다. 이를 수행하려면 CLI(명령줄 인터페이스)를 사용해야 합니다. 명령줄에서 직접 Postman 컬렉션을 실행하고 테스트할 수 있는 애플리케이션인 Newman은 Postman 컬렉션을 명령줄 언어로 변환하는 데 사용됩니다.

진행 방법에 대한 간단한 단계 목록은 다음과 같습니다.

  1. Jenkins를 로컬로 설치 그리고 실행하세요. 자세한 내용은 Jenkins.io의 Jenkins 설명서를 참조하세요.
  2. Jenkins에 Node.js와 Newman을 설치합니다.
  • Jenkins 서버로 이동하여 로그인하세요.
  • “Jenkins 관리” > “플러그인 관리”로 이동하여 NodeJS 플러그인을 설치합니다.
  • “Jenkins 관리” > “전역 도구 구성”으로 이동하여 NodeJS 섹션에서 “NodeJS 추가”를 선택하세요.
  • Node.js 설치 이름을 입력하세요.
  • “글로벌 npm 패키지” 필드에 다음을 입력합니다. newman.
  • “저장”을 선택하세요. 자세한 지침은 여기에서 확인할 수 있습니다.
  1. npm(JavaScript용 패키지 관리자)도 설치되어 있는지 확인하세요. 명령줄에 다음 명령을 입력하여:
node -v
npm -v
  1. 콘솔을 열고 Newman을 설치하십시오. 다음 명령을 사용하여 자체적으로:
npm install -g newman
  1. 테스트 컬렉션 저장; 테스트용 URL을 생성(공유)하거나 파일로 저장(내보내기)할 수 있습니다.
  2. 다음 명령을 사용하여 콘솔에서 테스트를 실행합니다.
    • 링크를 사용하는 경우:

      newman run   # (replace with the actual URL)
      
      
    • 파일을 사용하는 경우 컬렉션 파일의 디렉터리와 함께 다음 명령을 사용합니다.

      newman run /Users/Postman/postman_collection.json
      
      

실행 후 테스트가 콘솔에서 실행되고 결과가 표시됩니다.

실행 후 콘솔에서 테스트가 실행되고 결과가 표시됩니다.

다음으로 각 커밋 후에 Jenkins에서 Newman을 실행하여 응답의 정확성을 테스트할 수 있습니다. 호스트 주소 및 기타 변경 요청 매개변수를 변수에 배치하는 등 Postman에서 템플릿을 준비하는 것이 좋습니다. 그런 다음 자격 증명 플러그인에서 Jenkins로 전송할 수 있습니다.

  1. 작업을 구성하려면 Newman 호출이 포함된 셸 명령을 추가하세요. 그 후 Jenkins가 테스트를 실행합니다. 빌드 창 → 구성 → 빌드 트리거 → 주기적 빌드로 이동하여 원하는 빈도를 설정할 수 있습니다. 그런 다음 Jenkins는 빌드 성공 여부를 보고합니다.

팀 구성원에게 최신 빌드와 해당 상태를 알리기 위해 이메일 배포를 설정할 수도 있습니다. 이를 통해 다른 API 구성 요소와 함께 API 빌드를 적극적으로 모니터링할 수 있습니다. 또한 컬렉션을 더욱 동적으로 만들기 위해 구현할 수 있는 다른 구성도 많이 있습니다.

결론

결론적으로 이러한 유형의 자동화를 사용할 때의 장단점을 간략하게 설명하고 싶습니다.

장점:

  • Postman은 직관적이고 사용하기 쉽습니다.
  • 복잡한 구성이 필요하지 않습니다.
  • 다양한 API(REST, SOAP, GraphQL)를 지원합니다.
  • Newman을 사용하여 CI/CD 프로세스에 쉽게 통합됩니다.
  • Newman은 사용자 친화적이며 Postman을 자주 사용하고 최소한의 노력으로 확장된 기능을 원하는 사람들에게 이상적입니다.

이러한 도구는 특히 초기 단계에서 테스트에 자동화를 추가하는 데 매우 효과적입니다.

단점:

  • 수많은 REST 서비스가 포함된 대규모 프로젝트에 대한 자동화된 테스트를 구성하는 것은 어려울 수 있습니다.
  • 코드를 재사용할 수 없으면 과도한 중복이 발생하여 유지 관리가 어려워질 수 있으며, 특히 스크립트 수가 1,000개를 초과하는 경우 더욱 그렇습니다.
  • 진행 중인 빌드, 자동 테스트 실행, 내부 종속성 관리, 환경에 빌드 배포 등 CI 시스템 내에서 많은 작업이 실행되는 경우 이 접근 방식은 실행 가능하지 않을 수 있습니다. 이러한 경우 자동 테스트를 실행하는 컴퓨터 수를 늘리고 간과되는 것이 없도록 각 컴퓨터를 처음부터 구성해야 합니다.

출처 참조

Post Comment