피드로 돌아가기
Running 100 Playwright Tests in Parallel Without Inbox Collisions
Dev.toDev.to
DevOps

무제한 Ephemeral Inbox 설계를 통한 CI Parallel Test Collision 제로화

Running 100 Playwright Tests in Parallel Without Inbox Collisions

zerodrop2026년 6월 12일5intermediate

Context

기존 Shared Inbox 기반의 이메일 테스트 아키텍처에서 발생하는 Race Condition 문제 분석. 병렬 워커 수가 제한된 Inbox Pool 크기를 초과할 때 발생하는 테스트 간 데이터 간섭 및 간헐적 타임아웃 장애 확인.

Technical Solution

  • 테스트 실행 시마다 고유한 Random Adjective와 7자리 Alphanumeric 조합의 Isolated Inbox 생성
  • GitHub Actions Matrix 전략과 연동하여 워커당 1:1 Inbox 매핑 구조 설계
  • Cloudflare Edge Routing을 통한 중앙 서버 부하 분산 및 저지연 메일 수신 처리
  • Redis TTL 기반의 30분 자동 삭제 메커니즘을 통한 Ephemeral 데이터 관리
  • Local Runner 단계의 Inbox Name 연산을 통한 API Rate Limit 제약 제거
  • 전용 SDK를 통한 waitForLatest 폴링 기반의 비동기 메일 검증 로직 구현

1. CI 병렬 실행 시 Shared State 존재 여부를 확인하고 Stateless 환경으로 전환할 것

2. 고정된 Resource Pool 대신 Dynamic Resource Generation 패턴 적용 검토

3. 테스트 데이터의 생명주기를 TTL 기반으로 정의하여 데이터 오염 및 누적 방지

4. 외부 API 의존성을 줄이기 위해 식별자 생성 로직을 클라이언트 사이드로 전이

원문 읽기