CI&CD

포스트맨으로 `RestfulAPI` 테스트 자동화 하기

nomoreFt 2022. 2. 24. 17:39

회사 업무에서 RestfulAPI 개발건이 늘어서 (거의 주력이 됐다) 아무래도 자동화 테스트 방법이 없을까 찾던 도중, 좋은 방법을 찾았다.

개인적으로 실제 업무에서 서버단의 Controller Test라기 보다, 사용자가 받아보게될(서버가 됐던, 클라이언트가 됐던) Data가 잘 나오는지, status가 잘 되는지 테스트하기 좋아보여서 실습 겸 공유하게 됐다.

  1. Collection 만들기

image

  • 좌측 상단의 + 버튼을 눌러 api들을 담을 Collection을 생성해준다.
  1. Add Request로 API 추가

image

  1. reqres.in으로 가상 API 요청 생성

image

https://reqres.in/ 은 frontEnd 개발자들을 위해 가상의 data를 넘겨주는 RestfulAPI 공공 서버 같은 페이지이다.
image

화면처럼 요청에 맞는 다양한 api를 호출할 수 있는데, 업무에 실제로 쓰이는 코드를 보여주기 그래서 이걸 사용하기로 했다.
image
데이터를 받아 프론트엔드 개발시 유용하게 사용됨

  1. 상단의 Tests 탭으로 들어가면 사진과 같은 창이 뜨는데, js로 테스트코드를 작성한다.

image

우측의 snippet을 사용하면 간단한 테스트 코드는 이미 생성되어 있다. ex) status 200인지, 받은 jsonData에 해당 키 값이 있는지
화면의 모습은 status 200, 요청받은 key값중 token이 있는지 check하는 것이다.

  1. 테스트 결과 체크

image

image

해당 API는 json 결과로 로그인 token 값을 넘겨주는데, 하단 결과창에 Test Results결과 모두 통과한 것을 알 수 있다.

  1. 전체 테스트

image

해당 컬렉션 우측의 삼동글이를 누르고, Run Collection을 눌러줍니다.
image

몇번 반복할건지, delay는 몇 초인지 설정이 존재합니다. 이후 Run LS-test를 클릭
image
세 건의 API가 모두 설정한 테스트를 통과한 모습


구체적인 Test는 상황에 맞게 하면 된다. `Snippet`의 기능에 대부분 있어서 그다지 어렵지는 않을 것 같다. 

개인적으로는 사내 업무코드가 `Core 소스코드`가 있어서 빌드업이 되어 기존 비즈니스 로직이 수정될 때(거의 없지만),

`Controller`에 연관성 있는 다른 참조 메서드들의 기능이 변경되면 테스트하기 좋아보인다.

이후 `Test Controller`까지 짜서 동일한 값이 추출되는 API를 개발한 뒤, 동일한 값이 나오는지 `포스트맨`으로 check하는 방법도 좋아보인다.

'CI&CD' 카테고리의 다른 글

프로젝트 설계법  (0) 2022.03.25