피드로 돌아가기
Cloudflare Turnstile in Playwright: Why Your Tests Stall and How to Solve It in 8 Lines
Dev.toDev.to
DevOps

Cloudflare Turnstile 우회를 통한 CI 환경 테스트 통과 및 런타임 안정성 확보

Cloudflare Turnstile in Playwright: Why Your Tests Stall and How to Solve It in 8 Lines

B.Shahin2026년 6월 3일8intermediate

Context

CI 환경의 IP 대역이 Cloudflare의 고위험군으로 분류되어 Turnstile 챌린지가 강제 활성화되는 문제 발생. 단순 재시도 전략은 IP 기반 스코어링 시스템으로 인해 오히려 영구 차단을 초래하는 구조적 한계 존재.

Technical Solution

  • Sitekey와 Page URL을 추출하여 외부 Solver 서비스에 요청하는 토큰 생성 프로세스 설계
  • 챌린지 해결 후 발행된 JWT 형태의 토큰을 cf-turnstile-response hidden input에 직접 주입하는 방식 채택
  • Iframe 기반의 핑거프린트 루프를 우회하여 8~20초 내에 유효 토큰을 확보하는 비동기 폴링 메커니즘 구현
  • 300초의 토큰 유효 시간을 고려하여 DB 시딩 등 장시간 작업 직후 토큰을 재발행하는 시점 최적화
  • CI 병렬 테스트 워커 수와 Solver Thread 할당량을 일치시켜 큐잉 지연을 방지하는 리소스 매핑 적용

1. CI 러너 IP 대역의 Cloudflare 위험도 수준 확인

2. `data-sitekey` 속성 기반의 동적 키 추출 로직 구현

3. 토큰 주입 시점과 폼 제출 시점 사이의 시간 간격 최소화

4. 병렬 테스트 실행 수와 API Thread Limit 정합성 검토

원문 읽기