발표 소개
NHN 엔터프라이즈 QA 엔지니어 김태주가 노티피케이션 서비스 자동화 테스트를 주제로, 다른 회사의 자동화 테스트가 궁금한 사람 입장에서 무엇이 궁금할지를 기준으로 발표를 준비했다고 소개한다.
SMS·카카오톡·이메일·PUSH 4종을 운영하며 월 15억 건 이상을 판교·평촌 이중화로 안정 처리하는 서비스와, 고객이 API·웹 콘솔로 연동해 발송 요청과 결과를 주고받는 방식을 설명한다.
Java·Maven, HTTP 요청용 RestAssured, 웹 자동화용 Selenide, 판정용 AssertJ, JUnit5, Jenkins, Docker 컨테이너 등 실제로 쓰는 스택을 소개하고 API와 웹 UI 두 축을 다루겠다고 예고한다.
Jenkins에서 환경을 선택해 테스트 클래스를 실행하고, 환경 config를 담은 프로젝트 객체를 상속하며, 문서와 1:1 매칭되는 API 클래스와 빌더 패턴·메소드 체이닝으로 요청을 구성하는 구조를 설명한다.
웹 UI 테스트는 로그인 세션을 든 프로젝트 객체와 Page Object Model을 써서 페이지 요소·반복 행동은 페이지 클래스에, 테스트 시나리오와 판정은 테스트 클래스에 분리하고 데이터는 모델 클래스로 넘긴다.
메시지가 실제로 도달했는지 확인하기 위해 이메일은 오픈소스 RestMail 서버로, SMS는 안드로이드 SMS 포워딩 앱이 원문을 테스트 서버로 보내 GET으로 조회하는 솔루션을 구축한 사례를 공유한다.
무관한 사람에게 메시지가 가지 않도록 발송 직전 수신자 체커로 테스트 폰 외 번호를 예외 처리하고, 웹훅(콜백)은 Django 테스트 서버가 외부 요청을 받아 응답까지 매핑해 검증하는 구조를 설명한다.
병렬 테스트 시 테스트 간 영향, Docker 컨테이너와 크롬 세션을 독립적으로 띄워 상호 간섭을 원천 차단하는 설계, GUI와 헤드리스 모드 차이 등에 대한 청중 질문에 답한다.