이 글에서는 프로젝트를 진행하면서 쉽고 빠르게 API컬렉션을 구성할 수 있는 몇 가지 방법에 대해 적어 보았습니다.
1. Swagger → Postman
개발 팀에서 API 개발 문서화 도구로 Swagger를 사용하는 경우, 링크를 통해 전체 API 셋을 쉽게 가져올 수 있습니다.
Swagger doc(Json) URL → (Postman) Import → Links
2. 브라우저 개발자 도구 → Postman
2-1. Copy as cURL (bash) → (Postman) Import → Raw Text
이 방법은 ‘개별’ 리퀘스트를 빠르게 생성하는 방법입니다. POST, PUT 메소드 타입의 요청의 경우, 요청 Body 또는 Header 안에 많은 정보를 포함하게 되는경우가 많은데요. 그 많은 정보를 수기로 한 땀 한 땀 채워 넣는 것도 시간이 꽤 걸리는 작업입니다. 이 경우 브라우저 개발자 도구 > 네트워크 탭에서 해당 리퀘스트를 복사하여 Postman으로 가져올 수 있습니다.
2-2. Save all as HAR with content → (Postman) Import → File → Upload Files
브라우저 개발자 도구 네트워크 탭에 캡쳐된 ‘모든’ 리퀘스트의 정보를 일괄적으로 가져올 수 있는 방법입니다.
(다만, 이 경우 브라우저에서 발생하는 모든 리퀘스트를 다 가져오기 때문에 Application/json 타입의 결과만 수집을 원할 경우 적절하지 않을 수 있습니다.)
2-3. Copy all as HAR → (Postman) Import → Raw text
이 방법은 위 2번과 같은 결과의 셋을 만들 수 있는 다른 방법입니다.
3. Postman Intercept
Postman Intercept 기능을 통해 크롬 브라우저와 연동하여 브라우저에서 실시간으로 일어나는 API 리퀘스트를 postman에 기록할 수 있습니다.
이 기능을 사용하기 위해선 먼저 Postman Interceptor 라는 크롬 확장 프로그램을 설치해야 합니다.
(Postman) Capture requests → Via Interceptor
- Save requests to a collection
저장하고자 하는 collection 위치를 지정할 수 있음 - Configure incoming Requests > URL must contain
정규식 표현을 이용하여 리퀘스트 URL에 특정 문구를 포함한 리퀘스트만 필터링 할 수 있음 - Configure incoming Requests > Methods
API 메소드 타입(GET, POST, 등등) 별로 필터링 할 수 있음
연결된 크롬 브라우저에서 페이지를 탐색/이동 시 발생하는 요청이 Postman Interceptor debug sessions 탭에 자동으로 기록 됩니다.
4. Fiddler → Postman
네트워크 패킷 분석 도구로 Fiddler Classic을 쓰는데요. Fiddler Classic 자체에서 Composer 기능을 통해 요청을 생성하고 응답값을 확인 할 수 있을 뿐만 아니라, 요청/응답값을 조작 가능하고 어플리케이션에서 어떻게 반응하는지 연동하여 확인이 가능하다 보니, 개인적으론 시스템 레벨에서 검증 시 항상 사용하는 도구입니다. 이 과정에서 Fiddler에 기록된 요청들도 Postman 으로 가져올 수 있습니다.
(Fiddler) Export Sessions (as HAR) → Json 변경 → (Postman) Import → File
아쉽게도, Fiddler에서 생성된 HAR 파일을 Postman에서 바로 import 할 경우 에러가 뜹니다. (아마도 형식 상의 문제로 보임) HAR 파일을 Json으로 변환해주는 사이트를 통해 json 파일로 변환한 후 Postman에서 Import 해주면 컬렉션이 자동 생성됩니다.
이상 Postman에 API 컬렉션을 빠르게 구성하는 방법에 대해 알아보았습니다. 여러 상황, 목적에 따라 빠르게 API 셋을 구성하고 검증에 활용하시는데 위 방법이 도움이 되길 바랍니다. 🙇♂
'애자일 테스팅' 카테고리의 다른 글
버그 회고, 품질 프로세스 개선의 첫걸음 (RCA) (0) | 2024.07.06 |
---|---|
테스트 맵을 활용한 테스트 (0) | 2024.07.06 |
애자일 테스팅 회고 (0) | 2021.11.03 |
애자일 테스팅 도전과제: 품질, 프로세스, 팀 이슈의 극복 (0) | 2021.08.20 |
애자일 테스팅을 위한 전체 팀 접근 방식 (0) | 2021.08.10 |