-
Notifications
You must be signed in to change notification settings - Fork 3
E2E test를 위한 Postman 도전기
wlgh1553 edited this page Dec 1, 2024
·
1 revision
- Postman collection을 활용하여 API의 E2E 테스트를 자동화하고자 한 경험을 공유합니다.
- 기존에 작성된 Postman collection을 테스트 코드로 전환하여 효율적인 API 테스트 방법을 모색했습니다.
- API 테스트 시 반복적인 수작업의 비효율성
- 특히 토큰 기반 인증이 필요한 API들의 테스트가 번거로웠습니다.
- 의존성이 있는 API들의 연속적인 테스트가 필요했습니다.
- 코드 변경 시 영향도 검증 필요성
- Repository, Service 계층 수정 시 다른 API들에 미치는 영향 확인이 필요했습니다.
- 기존 API들의 정상 동작 여부를 효율적으로 검증하고자 했습니다.
- 테스트 코드 부재 상황 극복
- 개발 속도를 위해 미뤄둔 테스트 코드를 보완하고자 했습니다.
- 기존 Postman collection을 활용한 E2E 테스트로 빠른 테스트 환경 구축을 목표로 했습니다.
단위 테스트와 E2E 테스트를 비교 검토한 결과, 현 상황에서는 Postman을 활용한 E2E 테스트 방식을 선택했습니다:
- 단위 테스트
- 장점: 세밀한 로직 검증 가능, 빠른 실행 속도
- 단점: 작성에 많은 시간 소요, 실제 통합 환경에서의 동작 보장 어려움
- Postman E2E 테스트
- 장점: 실제 API 호출 기반 검증, 기존 collection 활용 가능
- 단점: 세부 로직 검증 어려움
- E2E 테스트를 선택한 이유:
- 이미 만들어둔 Postman collection 활용으로 빠르게 테스트를 구축할 수 있습니다.
- API 간 의존성이 있는 플로우를 한번에 테스트 가능합니다.
- 토큰 인증 등 실제 API 호출 시나리오 검증에 적합합니다.
Postman의 Collection Export 기능을 통해 JSON 형태로 테스트 케이스 추출할 수 있습니다.
이제 클로드에게 다음과 같은 문서를 던져주고 테스트를 요구해봤습니다 :
- Postman collection에서 추출한 JSON파일
- NestJS Swagger 설정
- NestJS DTO 파일들
- NestJS Controller 파일들
결과적으로 JSON 파일을 만들어주었습니다!
비록 클로드가 처음부터 완벽히 해주지는 못했기에 여러번 보완하도록 요구했고, 제가 직접 Postman에서 테스트를 수정하는 과정을 거치기도 했습니다.
그럼에도 생각보다 빠르게 E2E 테스트를 완성할 수 있었습니다.
다른 API 검증 로직도 만들어봐야겠다 싶던 찰라, 위와 같은 메시지가 떴습니다.
알아보니 Postman의 무료 플랜은 한 달에 25번의 테스트만 가능했습니다.
아무래도 돈을 내지 않는 이상 Postman을 사용하여 E2E 테스트를 계속 진행하긴 어렵다는 생각이 들었습니다. 결국 NestJS의 기본 테스트 디렉토리(/test
)를 활용한 E2E 테스트로 전환을 검토하게 되었습니다.
- 테스트 자동화 기반 마련
- 두 개의 모듈에 대한 E2E 테스트 자동화를 완료했습니다.
- 향후 NestJS의
/test
디렉토리를 활용한 테스트 확장 가능성을 확인했습니다.
- 학습된 교훈
- 무료 서비스의 한계를 사전에 파악하는 것이 중요함을 깨달았습니다.
- 프레임워크 기본 테스트 도구의 활용이 더 안정적일 수 있다는 점을 확인했습니다.
- 향후 개선 사항
- NestJS의 기본 E2E 테스트 프레임워크를 활용한 테스트 구현이 필요합니다.
- 추후 Postman E2E 테스트에 다시 도전해볼 예정입니다.