본문 바로가기
Server/Server ETC

[PostMan] 사용법

by Youngs_ 2023. 2. 7.

포스트맨은 서버에 연결했을때 output이 어떤값이 나오는지 간편하게 확인 할 수 있는 툴이다.

input 값을 설정하면 해당 주소로 어떤 output이 나오는지 확인할수있는데, 포스트맨 사용법을 자세하게 기술해놓은 블로그 글을 가져왔다.


포스트맨 요청 테스트

포스트맨을 사용해 보기에 앞서 요청하고 응답받을 서버가 필요한데, 만일 따로 서버가 준비되어 있지 않아도 간단하게 HTTP request response 동작을 확인할  있도록 서비스를 제공해 주는 도메인Visit Website 있다.

 서비스를 이용하여 포스트맨으로 REST API 테스트 하는 법을 알아보고자 한다.

 

포스트맨을 단순하게 api 요청/응답 테스트 용도로 가볍게 사용할수도 있겠지만, 본 강의는 api 테스트를 보다 체계적으로 관리할수 있는 방안을 따라 소개해볼 예정이다.


1. Workspances 생성

새로 워크스페이스를 생성하거나 기본적으로 만들어져있는 My Workspace에 진입한다.

Info

[Workspances 용도]
Workspances는 포스트맨의 모든 기능을 담고 있는 뷰라고 보면 된다. 프로젝트 용도에 따라 Personal workspace와 Team workspace로 구분된다.
workspace의 단위는 목적에 따라 자유롭게 지정할 수 있다.
예를들어 QA는 테스트 작성을 위한 workspace를 가지고, 기술자는 API를 문서화하기 위한 workspace를 가지는 식으로 분업이 가능하다.
제품이나 프로젝트별로 구성하게 되면 해당 서비스와 관련된 모든 것들이 해당 workspace 내에 있으므로, 해당 제품에 대한 작업을 시작했을 때 맞춤 view를 볼 수 있다.
외부 파트너나 고객과 통합하여 구축하는 경우 권한을 제어하여 workspace에 참여할 수 있도록 할수 있다.

 

 

2. Colleciton 생성

Info

[Collection 용도]
Collection은 request를 그룹화한 단위이다. 모든 HTTP 요청은 Collection에 포함되어 있다.
Collection에 속한 모든 요청에 대해 통합 테스트를 실행할 수 있다.
여러 request를 모아서 관리하고 공유함으로써 API 사용 설명서 역할을 하는 것이라 이해하면 된다.

 

 

3. folder 생성

위에서 Collection 이름을 게시판 테스트로 지정했다.

그러면 이 Collection의 api 샘플들은 게시판의 정보(글쓴이, 게시글, 댓글 ..등)를 다루게 되니 체계적으로 관리하기위해 폴더별로 나누어 보자.

 

 

4. Request 생성

실제로 API에 대한 테스트를 진행하기 위해서는 Request를 생성해주어야 한다.

api 테스트 프로젝트 디렉토리 구조가 짜여졌으니 본격적으로 실제 api 요청을 보내보자

게시글 정보를 조회하는 테스트를 하기 위해 posts 폴더에 request 하나를 생성한다.

 

 

5. GET 요청 보내기

전체 게시글 갯수를 조회해보자

 

이번엔 쿼리 파라미터에 값을 넣어, 유저 아이디가 10인 사용자가 쓴 게시글만 조회해보자.

 

 

6. POST 요청 보내기

게시글들을 가져오는 것 뿐만 아니라, 게시글을 작성하고 발행하는 api도 테스트해야 하는 경우가 있다.

그럴경우에는 인터페이스가 잘 갖춰진 포스트맨으로 간편하게 POST 요청이 가능하다.

 

예를 들어 쌩코딩으로 POST 요청 해야 할 경우, 다음과 같다.

JAVASCRIPT
 
fetch('https://jsonplaceholder.typicode.com/posts', {
 
method: 'POST',
 
body: JSON.stringify({
 
title: '테스트 게시물',
 
body: '안녕하세요 테스트 내용입니다',
 
userId: 1,
 
}),
 
headers: {
 
'Content-type': 'application/json; charset=UTF-8',
 
},
 
})
 
.then((response) => response.json())
 
.then((json) => console.log(json));
Copy

Tip

일일히 KEY-VALUE 값을 치기 귀찮으면, raw 항목에 가서 JSON을 복붙해도 된다.

 

 

7. 성능 지표 보기

응답 크기 및 응답 시간과 같은 응답 매개 변수에 대한 세부 정보를 얻으려면 각 값 위로 마우스를 가져 가기 만하면 Postman이 각 속성에 대한 세부 정보가 포함 된 세부보기를 표시해준다.

예를 들면 아래와 같이 요청 시간에 대해-연결 시간, 소켓 시간, DNS 조회, 핸드 셰이크 등과 같은 개별 구성 요소로 추가 분석이 가능하다.

 

 

8. 전체 테스트 실행

위에서 Collection 별로 get과 post request를 생성했었다.

만일 request 리스트들이 엄청 많을 경우, 이들을 하나하나씩 눌러 테스트 해야 될까?
그럴 필요없이 다음과 같이 Collection에 등록된 모든 request를 폴더별로 실행이 가능하다.


포스트맨 인증키 설정

만일 이용하고자 하는 api 서비스가 인증키(api-key)를 필요로 한다면, 다음과 같이 그냥 request를 때리면 FORBIDDEN 에러를 응답 받게 된다.

 

따라서 보통 이렇게 헤더 파라미터에, 서비스에서 발급받은 api key 값을 넣고 요청하는 식으로 하면 해결되지만 매번 request마다 헤더키를 설정해주어야 하는게 번거롭다.

 

그래서 아예 Collection 탭에서 전역 API KEY를 설정함으로서 간편하게 api 인증을 하고 api 테스트를 이어나갈 수 있다.

Collection에 전역 인증키 설정

Request별로 에 전역 인증키 설정


테스트 주기 자동화 (Monitor Collection)

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

 

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

요청 반복 주기를 Hour Time - Every Hour 로 바꿔주었다. 무료 버전에서는 몇분 주기는 사용할순 없다.

Create Monitor 클릭하면 모니터 컬렉션이 생성된다.

이렇게 생성된 모니터 컬렉션은 Postman을 종료해도 계속 모니터링은 진행된다.

Tip

한 가지 유의할 점이 있다면, Postman 모니터링을 제대로 작동하기 위해서는 요청 URL이 localhost, 127.0.0.1 처럼 로컬 호스트로 설정했다면, 외부에서 접속할수 있는 고정 IP로 변경해주어야한다. (일반 API 테스트는 localhost 가능)
모니터는 Postman 클라우드에서 실행되는 URL을 인터넷에서 공개적으로 사용할 수 있어야한다.
로컬호스트에 직접 액세스하거나 방화벽 뒤에서 요청을 실행할 수 없기 때문이다.


코드 스니펫 (Code snippet)

포스트맨의 유용한 점은 바로 작성한 request를 프로그래밍 코드로 추출할수 있다는 점이다.

Code snippet 에서 사용자에 고른 언어에 맞춰 샘플 코드가 생성된다.

자신이 사용하는 개발 언어에 맞춰 테스트 request에 사용된 코드를 재활용해 활용할 수 있다.


출처 : https://inpa.tistory.com/entry/POSTMAN-%F0%9F%92%BD-%ED%8F%AC%EC%8A%A4%ED%8A%B8%EB%A7%A8-%EC%82%AC%EC%9A%A9%EB%B2%95-API-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%9E%90%EB%8F%99%ED%99%94-%EA%B3%A0%EA%B8%89-%ED%99%9C%EC%9A%A9%EA%B9%8C%EC%A7%80

 

[POSTMAN] 💽 포스트맨 사용법 - API 테스트 자동화 고급 활용까지

포스트맨 (POSTMAN) POSTMAN은 API를 개발, 테스트, 공유 및 문서화하는 데 사용되는 API 클라이언트 이다. 엔드 포인트 URL을 입력하는 테스트에 사용되며 서버로 요청을 보내고 서버에서 응답을 받아 a

inpa.tistory.com

 

댓글