1:1 비디오 채팅 E2E 회귀 테스트 자동화: Pytest & Appium 활용
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

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을 활용한 커스텀 parameterization
  • pytest_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 팀의 탐색적 테스트 시간 확보