회사 업무에서 RestfulAPI 개발건이 늘어서 (거의 주력이 됐다) 아무래도 자동화 테스트 방법이 없을까 찾던 도중, 좋은 방법을 찾았다.
개인적으로 실제 업무에서 서버단의 Controller Test라기 보다, 사용자가 받아보게될(서버가 됐던, 클라이언트가 됐던) Data가 잘 나오는지, status가 잘 되는지 테스트하기 좋아보여서 실습 겸 공유하게 됐다.
- Collection 만들기
- 좌측 상단의 + 버튼을 눌러 api들을 담을 Collection을 생성해준다.
- Add Request로 API 추가
- reqres.in으로 가상 API 요청 생성
https://reqres.in/ 은 frontEnd 개발자들을 위해 가상의 data를 넘겨주는 RestfulAPI 공공 서버 같은 페이지이다.
화면처럼 요청에 맞는 다양한 api를 호출할 수 있는데, 업무에 실제로 쓰이는 코드를 보여주기 그래서 이걸 사용하기로 했다.
데이터를 받아 프론트엔드 개발시 유용하게 사용됨
- 상단의 Tests 탭으로 들어가면 사진과 같은 창이 뜨는데, js로 테스트코드를 작성한다.
우측의 snippet을 사용하면 간단한 테스트 코드는 이미 생성되어 있다. ex) status 200인지, 받은 jsonData에 해당 키 값이 있는지
화면의 모습은 status 200, 요청받은 key값중 token이 있는지 check하는 것이다.
- 테스트 결과 체크
해당 API는 json 결과로 로그인 token 값을 넘겨주는데, 하단 결과창에 Test Results결과 모두 통과한 것을 알 수 있다.
- 전체 테스트
해당 컬렉션 우측의 삼동글이를 누르고, Run Collection을 눌러줍니다.
몇번 반복할건지, delay는 몇 초인지 설정이 존재합니다. 이후 Run LS-test를 클릭
세 건의 API가 모두 설정한 테스트를 통과한 모습
구체적인 Test는 상황에 맞게 하면 된다. `Snippet`의 기능에 대부분 있어서 그다지 어렵지는 않을 것 같다.
개인적으로는 사내 업무코드가 `Core 소스코드`가 있어서 빌드업이 되어 기존 비즈니스 로직이 수정될 때(거의 없지만),
`Controller`에 연관성 있는 다른 참조 메서드들의 기능이 변경되면 테스트하기 좋아보인다.
이후 `Test Controller`까지 짜서 동일한 값이 추출되는 API를 개발한 뒤, 동일한 값이 나오는지 `포스트맨`으로 check하는 방법도 좋아보인다.