사내 E2E 테스트 도입 경험기 #3 - 배포 프로세스에 E2E 테스트 추가하기

띵지·2023년 4월 30일
6

E2E

목록 보기
1/3
post-thumbnail

첫 계획은 단순했다

E2E 테스트 프로젝트를 처음 맡고 나서 생각했던 플로우는 단지 이것 뿐이었다.


단순히 생각할 프로세스가 아니였다

결과적으로 현재 구성된 프로세스는 위와 같다.
혼자서 저 결과를 이끌어내기까지 정말 많은 고민과 갈아엎음이 필요했다..🫠
위 프로세스는 알파 배포를 기준으로 작성한 플로우다.

글로 아무리 친절하게 설명하는 것보다,
깔끔한 플로우 그림 하나가 더 완벽한 설명이 될 것 같아
구구절절한 설명은 생략하려고 한다.


DEPLOY

E2E 테스트 실행 전에 가장 먼저 필요했던 것은 알파 서버 젠킨스 배포 환경 구축이었다.
베타, 리얼의 경우에는 젠킨스 배포가 가능하도록 되어있었지만
알파는 특이하게 직접 터미널에서 알파 서버에 접속하여 git pull origin develop하는 과정이 필요했다.
변경되지 않은 이유는 크게 2개 같았다.

  • 기존에는 젠킨스 파이프라인 소스코드 관리를 데봅스에서 맡았다.
    • 파이프라인 개선을 위해서는 수정이 필요한 이유와 방향을 설명하는 커뮤니케이션이 필요했다.
    • 아무래도 우선순위가 높지 않아서 현상 유지가 되었던 것 같다.
  • 젠킨스 관리 권한이 데봅스에서 솔루션으로 넘어온지 얼마 되지 않았다.
    • 대부분의 솔루션 개발자들은 groovy에 익숙하지 않았다. (쓸 일도 없었다.)
    • 기존 소스코드에 대한 러닝 타임이 필요했다.
    • 결국 우선순위 높은 테스크를 먼저 처리하느라 신경 쓸 시간이 없었다.

그래서 E2E 테스트 실행 프로세스 추가와 함께,
전반적인 Jenkins 파이프라인 개선까지 함께 맡아 처리하였다.

기존에는 git에서 tag를 add&push하고 해당 태그명을 젠킨스 빌드 시 파라미터값으로 직접 입력해줘야 하는 과정이 있었다면, 이번에는 원클릭으로 앞선 프로세스가 자동으로 되도록 구현하였다.

  1. origin develop 최신 커밋에 (날짜)_(시간)_devleop 으로 태그 생성 및 origin push
  2. server /www/ 하위 경로로 소스코드 배포

다들 은근한 불편함은 느끼고 계셨던 것 같다..ㅎㅎ
개선 후 긍정 리액션을 받을 때마다 기분이 너무 좋았달까 !

다시 본론으로 돌아와서, DEPLOY를 개선하니 Jenkins 빌드 시 생성된 태그로 바로 Test를 돌릴 수 있고 롤백 관리를 할 수 있어서 더욱 깔끔해졌다.
이제 Deploy가 완료되면 배포된 서버를 대상으로 본격적인 Test가 실행까지 진행된다.


TEST

Test 실행을 서비스 배포 파이프라인에서 직접 하지는 않는다.
명확한 역할 구분을 위해 E2E 파이프라인을 따로 만들었고,
TEST 단계에서는 E2E 파이프라인을 cURL로 실행하도록 하였다.

상황조건1조건2수행
테스트 시작XXDooray Hook으로 테스트 시작 및 정보 알람
테스트 종료테스트 스킨이 남음X다음 스킨 테스트를 위한 E2E 파이프라인 빌드
테스트 종료테스트 스킨이 남지 않음테스트 결과 성공종료
테스트 종료테스트 스킨이 남지 않음테스트 결과 실패이전 태그로 롤백

자세한 플로우는 위 그림으로 그렸고, 큼지막하게만 정리하면 위의 표와 같다.

Playwright 자체에서 특정 조건일 경우 전체 테스트를 다시 수행하도록 로직을 작성하는 것이 쉽지 않아 고민이 많았는데, 젠킨스 재빌드를 하면 깔끔하게 해결되는 문제였다.


이제 실제로 사용할 차례

프로세스 구축은 끝났지만, 아직은 환경 개발에 집중하느라 테스트 케이스를 많이 추가해두지 못했다.
그렇지만 반대로 말하면 테스트 케이스만 추가하면 돼인 상황이기도 하다.
사실 환경을 구현해두니 다른 우선순위 테스크가 많아지면서 단순 작업인 테스트 케이스 개발이 점차 밀려나고 있다.. 그래서 근무 시간이 아니더라도 퇴근 후나 여유가 있을 때마다 조금씩이라도 해둬야겠다는 생각을 했다.

아마 실제로 사용하게 되는 순간이 오면 다시 여러 시행착오가 발생하지 않을까 싶다.
그때는 다시 포스팅으로 어떤 난관이 있었고 어떻게 극복해나갔는지 작성해봐야했다.
기업에서 실제로 E2E 프로세스 도입을 성공시킨 사례가 많지 않아 걱정이 컸는데, 그럼에도 구축을 완료해두어서 참 다행이라는 생각이다.

내가 주도적으로 맡아 진행한 프로젝트인 만큼, 묻히지 않고 사내 개발 문화 중 하나로 자리 잡을 수 있도록 꾸준히 관심을 갖고 개선해나가야겠다. 그럼 이번 포스팅은 여기까지!

profile
1년차 주니어 백엔드 개발자, 기록으로 완성하는 나

0개의 댓글