1:1 비디오 채팅 서비스는 E2E 회귀 테스트를 어떻게 자동화할까?
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
소프트웨어 개발자, QA 엔지니어, 테스트 자동화 담당자 / 중급~고급 수준
핵심 요약
- Pytest와 Appium을 활용한 1:1 비디오 채팅 테스트 자동화 구현
- Cross-플랫폼 병렬 실행을 위한 플랫폼 조합 parameterization 및 skip 기능
- Segment 기능을 통한 테스트 간 유저 매칭 간섭 방지
- ThreadPoolExecutor를 사용한 비동기 병렬 실행으로 테스트 시간 95% 단축
- Page Object Model + 인터페이스 기반 플랫폼 호환성 확보
섹션별 세부 요약
1. 비디오 채팅 테스트 자동화의 주요 과제
- Non-Interaction vs Interaction 테스트 구분으로 테스트 구성 최적화
- 1:1 인터랙션 테스트 시 2개의
driver
생성 필요성 - Android/iOS 간 크로스 플랫폼 테스트 조합 4가지 (Android-Android, Android-iOS, iOS-Android, iOS-iOS) 필수
- 랜덤 매칭 기능으로 인한 병렬 테스트 간 유저 간섭 문제 발생
2. 플랫폼 조합 및 병렬 실행 구현
pytest_generate_tests
hook을 활용한 커스텀 parameterizationpytest_addoption
으로 플랫폼 그룹별 실행 조건 설정 (group1~group4)dual_drivers
fixture로 플랫폼별driver
생성 및 관리skip_android_android
/skip_android_ios
fixture로 특정 조합 스킵 처리
3. Segment 기반 테스트 전처리
- 서버 개발팀과 협업하여 Segment 기능을 통한 유저 그룹 분리
setup_segment_test_purpose_on
fixture로 테스트 계정에 Segment 할당- 테스트 병렬 실행 시 유저 간 의도치 않은 매칭 방지
4. 비동기 병렬 실행 구현
concurrent.futures.ThreadPoolExecutor
를 활용한 테스트 스텝 병렬 처리concurrent_method
fixture로 의존 없는 스텝 동시 실행- 테스트 케이스당 실행 시간 1~2분 단축, 전체 테스트 스위트 6시간 단축
5. 플랫폼 호환성 확보
- Page Object Model + 인터페이스 기반 플랫폼별 동작 통일
PageFactory.get_page()
로 플랫폼별 Page 객체 생성 및 관리TestInMatch
테스트 클래스 예시:setup_page_object
fixture로 페이지 객체 생성
결론
- 테스트 자동화를 통해 13MD 수동 테스트 작업을 7시간으로 단축
- Segment 기능 활용으로 병렬 테스트 간 유저 간섭 방지
pytest
+Appium
+concurrent.futures
조합으로 비동기 병렬 테스트 구현- 308개 테스트 케이스 × 4 플랫폼 조합 자동화로 QA 팀의 탐색적 테스트 시간 확보