Postman API 플랫폼 - 섹션 2: 테스트 및 자동화

‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎Postman API 플랫폼 시리즈의 두 번째 기사에서는 테스트 스크립트 기능, 필수 스크립트 및 CI/CD 통합을 심도 있게 다룹니다.

저희가 시작하기 전에.
‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎본문에서, 나는 사용 중에 제기한 요구를 사용할 것이다.Restful Booker를 사용하지만 공용 서비스가 아닌 로컬에서 애플리케이션을 구축합니다.계속하려면 Docker가 필요합니다. https://github.com/mwinteringham/restful-booker 에서 코드와 설치 설명을 찾을 수 있습니다.

테스트
‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎GET/booking 단점에 대한 첫 번째 테스트를 작성합니다. 이 단점은 서버에서 온 모든 예약을 되돌려줍니다.테스트는 요청 영역의 테스트 부분에 쓰여 있습니다.테스트는 JavaScript를 사용하고, 선언은 Chai BDD 단언 스타일을 사용합니다.JavaScript와 Chai 지식은 우체부 테스트를 따라잡을 수 있는 필수 지식은 아니지만, 적어도 이 두 가지 기본 지식을 갖추는 것을 강력히 권장한다.편집기의 오른쪽에 테스트 스크립트 문서를 가리키는 링크와 기본 테스트 스크립트에 매우 유용한 기본 코드 세션이 있습니다.일반적으로 HTTP 요청을 확인하는 첫 번째 작업은 상태 코드입니다.네비게이션을 통해 snippets 부분으로 이동하고 Status code: code is 200 snippet을 선택하여 첫 번째 테스트 용례에 snippet 도움말을 사용합니다.코드 세션은 편집기에서 바로 생성됩니다.Postman 테스트의 초석은pm 대상입니다. 요청과 응답 데이터, 변수,pm 방법에 접근할 수 있습니다.테스트는 요청이 완료된 후 즉시 실행됩니다. 따라서 Send 단추를 누르면 첫 번째 테스트를 실행할 수 있습니다.요청이 완료되면 테스트가 수행되고 결과는 응답 섹션의 테스트 결과 탭에서 확인할 수 있습니다.

테스트 통과
이제 예상 상태 코드를 404로 변경하여 동일한 테스트에 실패합니다.

실패한 테스트
이 예에서 우리는 어떤 단언이 시험에 통과하지 못했는지 볼 수 있다.이제 GET/booking 끝점에 대한 몇 가지 테스트를 추가합니다.
pm.test("Response time is less than 200ms", function () {
  pm.expect(pm.response.responseTime).to.be.below(200);
});
pm.test("Response is JSON", function () {
    pm.response.to.be.json;
});
pm.test("Response body has 10 elements", function () {
    const data = pm.response.json();
    pm.expect(data.length).to.equal(10);
});
테스트에 대한 문제 해결이 필요하거나 요청에 대한 자세한 내용을 보려면 콘솔을 사용하여 요청 및 응답에 대한 자세한 내용을 확인할 수 있습니다.

우체부 콘솔

사전 요청 스크립트
‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎DELETE/booking을 위한 간단한 테스트를 만듭니다. (이전 글에서 이 테스트를 실행했습니다.)지금 기억하고 있다면 이 요청을 하기 위해서는 신분 검증이 필요합니다.이를 위해username과password라는 변수를 집합에 추가합니다. (집합 -> 변수를 왼쪽 단추로 누르십시오.)그런 다음 스크립트에서 변수의 사용자 이름, 암호 및 URL을 포함하는 3개의 변수를 정의합니다.
const url = pm.variables.get("base-url") + "/auth";
const username = pm.variables.get("username");
const password = pm.variables.get("password");
이제 인증 요청에 필요한 모든 데이터(URL, 메서드, 제목 및 본문)를 저장할 객체를 만듭니다.
const options = {
    url: url,
    method: 'POST',
    header: { 'content-type': 'application/json' },
    body: {
        mode: 'raw',
        raw: JSON.stringify({ "username": username,
                              "password": password})

    }
};
마지막으로 요청을 보내고 인증 토큰을 변수에 저장하는 sendRequest 방법을 만듭니다.
pm.sendRequest(options, function (err, res) {
    var jsonData = res.json();
    if (err) {
        console.log(err);
    }
    else {
        console.log(jsonData.token);
        pm.environment.set("authToken", jsonData.token);
    }
});
토큰을 다시 사용하고 요청을 보내기 위해 token={{authToken}} 의 쿠키 헤더를 추가합니다.현재 우리는 요청을 삭제하기 위해 테스트를 추가할 수 있습니다. Send 단추를 누르면 요청 전 스크립트를 실행하고 요청을 보내고 마지막으로 테스트를 실행합니다.

실행 테스트
‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎‏‏‎ ‎이 섹션에서는 다음 세 가지 방법으로 집배원 테스트를 수행합니다.
  • 수동 실행 테스트
  • 모니터
  • 를 통한 테스트 자동화
  • CLI runner를 통한 자동 실행 테스트 – 뉴먼

  • 수동으로 테스트 실행
    만약 우리가 가끔 모든 테스트를 수동으로 촉발하고 싶다면, 실행 집합을 통해 실현할 수 있다.이렇게 하면 컬렉션 목록에서 원하는 컬렉션으로 이동하고 메뉴에서 컬렉션 실행 옵션(세 점)을 클릭하여 트리거할 수 있습니다.

    수집 창 실행
    이 곳에서, 우리는 교체 횟수, 그것들 사이의 지연, 파일 추가 등을 설정해서 우리의 운행을 맞춤형으로 설정할 수 있습니다. 모든 것이 설정되면,run {collection name} 단추를 누르면 테스트를 촉발할 수 있습니다.모든 테스트를 수행하면 테스트 결과가 포함된 대시보드가 표시됩니다.

    테스트 대시보드

    모니터를 통한 테스트 자동화
    모니터 기능의 배후에는 클라우드 실행 프로그램이 사용자 응용 프로그램에 정기적으로 API를 호출하여 건강, 기능 또는 성능 문제를 지속적으로 검사하도록 하는 것이 아이디어이다.왼쪽 열에서 모니터 부분을 열고 create a 모니터를 눌러서 첫 번째 모니터를 만듭니다.여기서 모니터의 이름을 설정하고 실행할 집합을 선택하고 PROD 환경을 선택해야 합니다.또한 우리는 운행을 감시하는 주파수, 운행 구역, 고장 통지의 전자 우편 주소 등을 설정해야 한다.

    모니터 생성
    모니터를 만들면 수동으로 실행할 수도 있고 설정된 시간표에 따라 자동으로 실행할 수도 있습니다.몇 차례 운행한 후에, 우리는 테스트 결과 추세가 있는 계기판을 하나 가지고 있으며, 각 테스트마다 상세한 보고가 있다.이 보고서는 설치 과정에서 하나를 남기지 않도록 이메일 주소로 발송됩니다.

    모니터링 대시보드

    Info: Free accounts are limited to 1000 monitoring requests per month. If more than this is necessary, paid plans should be considered.



    CLI runner – Newman을 통한 테스트 자동화
    Postman 테스트를 자동화하고 CI와 친밀하게 실행하는 가장 유행하는 방법은 아마도 Newman CLI runner일 것입니다.뉴먼은 npm를 통해 설치할 수 있습니다.
    npm install -g newman
    
    뉴먼을 통해 우리의 소장품을 실행하기 위해서, 우리는 먼저 '소장' 메뉴를 통해 그것을 내보내야 한다.다음에 우리는 환경 변수를 내보내야 한다.Environments (환경) 부분에서 환경을 열고 three dots (세 가지) 메뉴 (Share (공유) 단추 옆) 를 선택하면 됩니다.완료되면 다음 명령을 사용하여 Newman을 실행할 수 있습니다.
    newman run collection_file.json -e environments_file.json
    
    뉴먼은 모든 테스트를 실행하고 결과는 콘솔에 표시됩니다.

    뉴먼
    테스트 결과가 있는 좋은 HTML 보고서를 얻기 위해 Newman HTML Reporter를 설치합니다.
    npm install -g newman-reporter-html
    
    그리고 CLI와 HTML 보고서 -r cli,html 를 얻기 위해 마지막으로 r (reporter) 인자를 사용하여 같은run 명령을 실행할 수 있습니다.이렇게 하면 우리는 테스트 결과를 더욱 잘 개술할 수 있는 HTML 리포트가 생겼다.

    결론
    본문에서 우리는 Postman에서 필수 스크립트와 테스트를 작성하는 과정을 거쳤다.우리는 또 모니터의 기능을 간략하게 연구했다.마지막으로, 우리는 Newman 클라이언트를 통해 테스트를 실행합니다. 이것은 CI/CD 파이프의 일부분으로 테스트를 실행할 수 있도록 합니다.

    유용한 링크
    우체부/뉴먼:
    https://learning.postman.com/docs/writing-scripts/intro-to-scripts/
    https://learning.postman.com/docs/running-collections/using-newman-cli/command-line-integration-with-newman/
    조용한 부크:
    https://github.com/mwinteringham/restful-booker

    좋은 웹페이지 즐겨찾기