포스트맨이란 API 개발을 보다 빠르고 쉽게 구현 할 수 있도록 도와주며, 개발된 API를 테스트하여 문서화 또는 공유 할 수 있도록 도와주는 플랫폼이다. 포스트맨으로는 api 요청을 하고 관련 스크립트를 저장해서 export/import 할 수 있을 뿐만 아니라, 다양한 환경/변수 등에서 테스트를 하고 그 결과를 분석하고, 소스코드와 연동하여 ci를 가능하게 한다.
포스트맨의 다양한 기능이 있지만 당분간 테스트 작성법에 대해 초점을 두고 알아보려고 한다.
앞으로 작성할 글을 읽기 전 전제사항은 다음과 같다.
- 포스트맨으로 api 요청을 해 본 적이 있다.
- 포스트맨의 다양한 기능을 사용해 본 적이 있다.
- 포스트맨의 용어들과 친숙하다.
포스트맨과 친숙하지 않은 사람들을 위해 간략히 아래 참고 링크를 공유한다.
특히 포스트맨의 collection에 대해 알아둬야 할 필요가 있다.
포스트맨은 api를 관리하기 위한 묶음으로 collection을 제공하는데 이 묶음 별로 변수를 설정하고 테스트를 관리할 수 있다(또한 보기도 좋으니 일석이조 아닌가).
관련 사용법은 아래 링크로 대체한다.
https://m.blog.naver.com/qbxlvnf11/222467061082
이제 테스트에 주로 사용할 화면을 맛보기로 만나본다.
1. pre-request script
콜렉션에 여러 api가 있고 collection runner을 통해 순차적으로 테스팅 할 때,
두 번째 request가 첫 번째 request의 응답 값일 때,
그래서 첫 번째 응답의 값을 test 에서 변수로 세팅해두고, 두 번째 요청을 하기 전 불러오는 작업이 필요할 때,
그럴 때 필요한 것이 pre-request script 화면이다.
위 그림에서 name이란 변수는 사전에 collection variable로 세팅이 된 것이고,
요청 시 필요한 name_detail값은 요청 전 pre-request script 화면에서 사전에 저장된 name을 불러와 가공되어 전달되는 것을 볼 수 있다.
2. test script
api를 요청하는 곳에 tests 라는 탭이 있고, 이곳에서 해당 api에 관한 테스트 스크립트를 작성할 수 있다.
해당 탭을 누르면 빈 칸이 보이고 이곳에 스크립트를 작성하면 되는데, 해당 스크립트는 자바스크립트 기반이며, 포스트맨이 제공하는 pm라이브러리를 활용하여 작성하면 된다.
여기서 좋은 점은 오른쪽에 snippets라고 자주 사용하는 코드를 바로 불러서 변형해서 사용할 수 있게 했는데, 코드를 다 외우지 않고 필요할 때마다 조합해서 사용할 수 있도록 해두었다.
또한 위 사진처럼 코드를 손으로 칠 경우 활용가능한 코드들의 리스트가 바로바로 나와 타 ide처럼 작성이 용이하다는 장점이 있다.
(이는 위에서 본 pre-request script에서도 동일하다).
포스트맨을 사용할 때 추천하는 사항은
- 계정 로그인을 해서 api 를 관리하기
- 로그인을 하지 않으면 pc에 임시 저장되고 언제든지 히스토리가 날아갈 우려가 있음
- 로그인을 하면 관련 히스토리/정보가 계정에 묶이게 되고 어디서 든 로그인만하면 테스트를 할 수 있는 환경이 됨
- collection/workspace 적극 활용
- collection에 등록된 전체 api를 한번에 테스트 가능
- 수 백건에 해당하는 api를 일회성으로 테스트하고 끝내지말고 할 때마다 제대로 정리하면 다음에 재활용하기가 쉬워짐
다음 글부터 본격적으로 알아본다!
참고
https://www.guru99.com/postman-tutorial.html
'서버 세팅 & tool > postman' 카테고리의 다른 글
[postman] 파일로 bulk request를 불러와서 api test하기 (0) | 2022.02.23 |
---|---|
csv 파일만들기 (0) | 2022.02.23 |
[postman] chaining sample test (0) | 2022.02.08 |
[postman] schema validation test (0) | 2022.02.08 |
[postman] environment variable setting & snippets for test (0) | 2022.02.08 |