POSTMAN 사용기

meek·2023년 10월 29일
post-thumbnail

POSTMAN?

POSTMAN은 API를 개발, 테스트, 공유 및 문서화하는 데 사용되는 API 클라이언트이다.

엔드 포인트 URL을 입력하는 테스트에 사용되며 서버로 요청을 보내고 서버에서 응답을 받아 api가 잘 동작하는지 확인할 수 있다.

사실 그냥 브라우저에서 URL을 통해 응답이 잘 왔는지 정도는 체크는 할 수 있다.

하지만 보다 체계적으로 시나리오 테스트를 하려면 api 툴을 사용해야 한다.

편리하게 쿼리스트링을 보낼수있는 것은 덤이고, 브라우저 도구에서는 하지못하는 Authorization이나 Header, Body 값 수정 헤더값 수정 등 도구를 이용하면 해당 작업을 할 수 있도록 인터페이스가 있기 때문에 가능하다.

그중에서 postman은 api 테스트 도구 부동의 1위를 차지하고 있다.

postman은 모바일 개발, 프론트엔드, 백엔드 모두 유용하게 쓰이며, 개발된 API를 테스트하여 문서화 또는 공유 할 수 있도록 해주고, 또한 collection에 내가 사용했던 API들을 모아 볼 수 있어서 따로 홈페이지를 재방문 할 필요 없이 재사용 가능한 API를 만들 수 있다는 특징도 있다.


포스트맨을 단순하게 api 요청/응답 테스트 용도로 사용하기 보다는 api 테스트를 보다 체계적으로 관리할 수 있는 방법을 사용해 보았다.

Postman의 구성 요소

Postman에서 다양한 구성 요소 중에는 Collection, Folder가 있다.

Collection

Collection은 일련의 폴더와 요청을 포함하는 컨테이너 역할을 한다. 이 컨테이너는 HTTP 요청을 그룹화하고 구성하는 데 사용될 수 있지만, 모든 HTTP 요청이 반드시 포함되는 것은 아니다.
Collection은 여러 요청을 수용할 수 있으며, 특정 요청을 개별적으로 만들고 실행하는 것도 가능하다.
여러 요청을 모아서 관리하고 공유함으로써 API 사용 설명서 역할을 하는 것으로 이해할 수 있다.

Folder

Folder는 컬렉션 내에서 요청을 논리적으로 그룹화하는 데 사용됩니다.

Collection의 api 샘플들은 체계적으로 관리하기위해 folder별로 나누어 보았다.


Body에 key와 value를 입력해주는 경우 string으로만 value가 가능해 boolean이나 number 등으로 사용을 해야할 경우 raw의 JSON으로 사용을 해야 한다.

x-www-form-urlencoded로 사용했을 경우 value가 모두 string으로 되기 때문에 에러가 나기도 했다😭

x-www-form-urlencoded & form-data

x-www-form-urlendcoded와 form-data는 모두 인코딩 방식이다.

"x-www-form-urlencoded"는 인코딩 방식 중 하나이며 서버에서 이를 request.body로 받는다. 이 형식은 주로 HTML 폼 요소의 값들을 수집하고, 이를 key-value 쌍의 형태로 URL 인코딩하여 HTTP 요청의 본문에 포함시킨다. 데이터는 "key1=value1&key2=value2"와 같이 인코딩되며, 각 key-value 쌍은 "&" 문자로 구분되며, 이 형식은 주로 HTML 폼에서 사용자가 입력한 데이터를 서버로 보내는 데 사용된다.

"form-data"는 HTTP 멀티파트 요청의 한 형태로, 주로 파일 업로드나 이미지 업로드와 같이 바이너리 데이터를 포함한 요청을 보낼 때 사용된다. 이 형식을 사용하면 데이터는 각 필드(텍스트나 파일)가 별도의 파트로 구분되어 전송된다.

이 두 데이터 전송 형식은 요청의 목적에 따라 선택되며, "x-www-form-urlencoded"은 주로 폼 데이터 및 텍스트 데이터를 전송하는 데 사용되고, "form-data"는 파일 업로드 및 바이너리 데이터를 전송하는 데 사용되고 있다.

포스트맨에서 로그인 요청

신기했던 점!✨

로그인을 요청했을 때 성공적으로 응답이 오는 경우에는 포스트맨에 유저의 로그인이 필요한 경우에 성공적으로 응답이 온다는 것이다.

유저의 토큰이 없다고 응답이 오는 경우에 로그인 요청을 해주면 해~결~
그렇기 때문에 다른 api 요청의 경우 '토큰 없음'이라는 예시와 응답이 성공한 경우의 수 2가지를 보통 저장해두게 되었다.

포스트맨에서 이미지 업로드

포스트맨에서 이미지를 업로드하는 방법은 아래와 같이 key의 값이 text로 설정되어 있는 것을 file로 변경해주면 가능하다.

그렇게 했을 때 유저의 프로필 이미지 변경처럼 파일은 업로드해야하는 경우에 작성하면 요청을 올바르게 받을 수 있게 된다.

장점

  1. Postman 컬렉션을 통해 API 엔드포인트와 테스트 요청을 구성하고 공유할 수 있다.
  2. Postman은 API 요청을 안전하게 저장하고 관리할 수 있다.
  3. 환경 설정을 공유함으로써 팀 간에 환경 변수 및 설정을 쉽게 공유할 수 있다.

다음 목표는 여기에 매장 환경 변수 설정, 코스 환경 변수 설정 등을 통해 다양한 경우의 환경 설정을 해두는 것이다.

'매장 검색 결과', '코스 검색 결과' 두 가지로 나누어 예시를 저장했는데 환경 변수를 사용하는 경우에는 '검색 결과'로 저장해 둔 후 환경 변수로 매장 또는 코스로 환경 변수를 설정해두면 된다! i am 편리예요~
그렇기 때문에 type에서도 course만 작성해두고 환경변수 추가로 store를 해주면 되는 것!

  1. 가장 편리할 것이이라고 예상 되는 점인데

문서로 저장해둔 예시를 확인할 수 있게 된다. 그렇기 때문에 경우마다 응답이 어떻게 오는지 확인할 수 있기 때문에 백엔드에 매번 물어볼 필요가 없어진다!🌼

단점

  1. 처음 포스트맨을 작성할 경우 시간이 예상보다(?) 많이 소요된다.
    👉🏻 시간이 많이 소요되어도 추후에 팀원에게 공유할 경우를 생각한다면 에러코드에 대해 다양하고 꼼꼼하게 작성하는게 프로젝트에 도움이 많이 될 것 같다!

참고

https://inpa.tistory.com/category/Testing/Postman

profile
hello, world!

0개의 댓글