기타

[Postman] Collection 테스트 CRUD 요청 실행 및 테스트 자동화

헹창 2022. 5. 15.
반응형

포스트맨 설치 및 간단한 API 요청테스트 하기

 

[Postman] API 테스트 도구 Postman 설치 및 테스트 API 요청하기

Postman ? 개발된 API를 테스트하여 문서화 또는 공유 할 수 있도록 도와 주는 플랫폼이다. Postman은 모든 API 개발자를 위해서 다양한 기능을 제공한다. 변수 및 환경, request 설명, 테스트 및 사전 요

haenny.tistory.com

 

1. 멤버 정보 목록 조회 (GET)

2. 멤버 정보 추가하기 (POST) - Random ID 값 생성 및 반환

3. 반환받은 멤버의 ID 값으로 멤버 정보 수정하기 (PUT)

4. 반환받은 멤버의 ID에 해당하는 멤버 정보 삭제하기 (DELETE)

5. 멤버 정보 목록 조회 (GET) 

 

6. Run Collection 

7. Monitor Collection

 

 

이전 포스팅을 보고 Collections 탭에서 새로운 Collection과 새로운 Request를 생성해준다.

위와 같은 순서의 로직을 보기 위해 나는 5가지 Request를 순서대로 생성했다.

 

생성한 요청 탭의 화면을 보면 요청방식과 URL 입력란이 있다.

본인이 테스트 할 API URL의 기본 URL을 변수로 지정해주면 더 간편하게 사용할 수 있다.

 

나는 모든 요청 URL 이 "localhost:8080/memeber" 였기 때문에 전체를 드래그 한 뒤 memberUrl 이라는 이름으로 변수를 저장해주었다.

 

생성된 API 서버가 따로 없다면, 테스트용 API 사이트의 URL을 사용해도 좋다.

 

 

 

1. 멤버 정보 목록 조회 (GET)

 

어떤 데이터도 추가하지 않았기 때문에 Response 영역에 빈 배열이 반환됐다.

 

참고로 Tests 탭은

 

테스트를 통해 API가 예상대로 작동하는지, 서비스 간 통합이 안정적으로 작동하는지, 새로운 개발로 인해 기존 기능이 손상되지 않았는지 확인하는 것으로 JavaScript에서 Postman API 요청에 대한 테스트 스크립트를 작성할 수 있다.

작성한 테스트 코드는 요청이 실행된 후 실행된다.

자세한 내용 보기

 

아래와 같이 응답 상태 코드가 200으로 왔을 때, Test Results PASS가 되게 해준다.

 

 

반대로 아래와 같이 201이 왔을 때 PASS가 되도록 설정했더니, 응답 코드 200이 와서 Test ResultsFAIL로 결과가 나오는 것을 볼 수 있다.

 

 

 

2. 멤버 정보 추가하기 (POST) - Random ID 값 생성 및 반환

 

멤버 정보의 대한 데이터는 매번 작성하기 번거롭기 때문에, 랜덤 값을 사용해서 설정하였다.

Body 탭의 raw를 선택한 뒤 우측에 "JSON" 콤보박스를 선택하고, 넘기고 싶은 데이터를 JSON 형태로 입력을 하였다.

 

랜덤 변수세팅은 {{$random-*}} 으로 입력 가능. "{{$random" 만 입력해도 자동완성으로 여러 종류가 보일 것이다

 

하단에 Response Body를 보면 "id" 값이 생성되어 리턴된 것을 볼 수 있다.

id는 다음 PUT method에 사용하기 위해 Tests 탭에서 globals (전역변수)에 세팅해주었다.

* id라는 키 값을 전역 변수에 세팅할 일은 없겠지만, 이렇게도 사용할 수 있다는 의미로 해보았다.

 

pm.globals.set("id", pm.response.json().id);

 

 

3. 반환받은 멤버의 ID 값으로 멤버 정보 수정하기 (PUT)

 

Request Body 탭도 동일하게 raw - JSON 형태로 세팅을 한 뒤, 수정하고 싶은 정보의 id (키) 값과 수정하려는 데이터 "name"을 JSON 형태로 입력하였다.

 

여기서 {{id}} 를 통해 이전에 전역변수에 저장했던 id 값을 가져올 수 있는 것이다.

만약 POST/PUT 요청을 하나씩 실행(Send)를 한다면, POST Send 한 뒤, 응답받은 데이터 id를 복사한 뒤, PUT Request Body 파라미터 값에 복사한 id 값을 붙여넣은 뒤 Send할 수 있지만...

Collection 그룹을 순서대로 자동 실행을 할 수 있기 때문에 이전 로직에 대한 데이터를 동적으로 설정하여 간편하게 사용하기 위해 변수로 지정하였다.

 

응답받은 데이터를 확인하면 name이 "haenny"로 변경된 것을 확인할 수 있다.

 

 

4. 반환받은 멤버의 ID에 해당하는 멤버 정보 삭제하기 (DELETE)

 

마찬가지로 이전에 추가하고 수정했던 id의 변수를 이용하여 해당 데이터를 삭제하였다.

 

 

 

5. 멤버 정보 목록 조회 (GET) 

 

 

 

 

6. Run Collection

 

지금까지 요청들을 각 탭마다 설정한 뒤 "Send" 버튼을 눌러 요청 및 응답을 받았는데, 순서에 따라 자동적으로 실행이 되도록 할 수 있다.

 

먼저 Collection 옆에 더보기(...) 를 클릭한 뒤 Run collection을 누르면, 우측 탭이 열릴 것이다.

실행할 요청을 선택 및 해제한 뒤 요청 순서를 정하고, 설정을 해준 뒤 우측 Run Member Collection을 클릭한다.

 

 

GET - POST - PUT - DELETE - GET 요청이 순서대로, 성공적으로 처리되었다.

 

 

 

7. Monitor Collection

 

Collection으로 요청 그룹을 묶어 실행하니 각 요청들이 자동으로 실행되어 훨씬 편리했다.

하지만, 이 한 번의 테스트로 테스트가 끝날 순 없다..

그렇다면 계속해서 Run Collection을 클릭해줘야 하는건가?

 

이 또한 Monitor Collection을 이용해서 해결할 수 있다.

컬렉션 기반 모니터를 만들면 API 상태를 지속적으로 확인하고, 테스트 suite를 실행하거나 중요한 workflows를 검증할 수 있다.

 

Collection 더보기(...) 클릭 - Monitor collection 클릭

 

 

모니터명과 그 외 구성을 설정해준다.

요청 반복 주기를 Hour Time - Every Hour 로 바꿔주었다.

무료 버전에서는 최소 반복 주기다. Postman을 종료해도 계속 모니터링은 진행된다.

 

또한 Receive emailnotifications for run failures and errors 체크박스를 선택한 뒤 본인의 메일 주소를 적으면, 에러가 나거나 문제가 있을 때 메일로 관련 내용이 발송된다.

 

Create Monitor 클릭

 

 

Run 클릭

 

 

 

Run 시작 시간 11:16 부터 1시간 단위로 API 요청을 하는 것을 모니터링 할 수 있다.

현재는 테스트용 API 서버를 종료했더니 아래와 같이 빨갛게 에러가 표출됐고, 메일도 왔다.

 

 

 

또한 각 요청한 그래프를 선택하면, 그 요청한 테스트의 결과와 이력을 확인할 수 있다.

 

 

한 가지 유의할 점이 있다면, Postman 모니터링을 제대로 작동하기 위해서는 요청 API URL이 localhost, 127.0.0.1 처럼 로컬 호스트로 설정했다면 고정 IP로 변경해주어야한다.

모니터는 Postman 클라우드에서 실행되는 URL을 인터넷에서 공개적으로 사용할 수 있어야한다. 모니터는 로컬호스트에 직접 액세스하거나 방화벽 뒤에서 요청을 실행할 수 없다.

Monitorings 문서 확인하기

728x90
반응형

댓글

추천 글