Playwright로 하는 동의 배너 자동화 테스트: 실습 가이드
동의 테스트를 자동화하는 이유
수동 동의 점검은 건너뛰기 쉽고 틀리기도 쉽습니다. 마케팅에서 추가한 새 태그, 테마 업데이트, 리팩터링된 스크립트 로더가 동의 전에 추적기를 조용히 실행하기 시작할 수 있으며, 고객이나 규제기관이 발견하기 전까지는 아무도 알아채지 못합니다. 자동화된 브라우저 테스트는 “우리 배너가 여전히 제대로 동작하는가?”라는 질문을 모든 릴리스마다 실행되는 것으로 바꿔 줍니다. Playwright는 실제 브라우저를 제어하고, 네트워크 요청을 가로챌 수 있으며, 새롭고 격리된 브라우저 컨텍스트를 제공하므로 적합합니다.
테스트 컨텍스트
각 테스트는 쿠키도 로컬 스토리지도 없는 깨끗한 브라우저 컨텍스트에서 시작해야 합니다. 이는 처음 방문한 사용자를 모방합니다. 페이지를 재사용하지 말고 테스트마다 새 컨텍스트를 만드세요. 그렇지 않으면 한 테스트에서 저장된 선택이 다음 테스트로 새어 들어갑니다.
테스트 1: 동의 전에는 아무것도 실행되지 않는다
페이지가 로드되기 시작하는 순간부터 모든 네트워크 요청을 감시하세요. 페이지를 로드하고, 유휴 상태가 될 때까지 기다리며, 배너는 건드리지 않습니다. 그런 다음 분석, 광고, 소셜 픽셀처럼 관리하는 추적기 도메인 목록과 요청을 비교합니다. 목록에 있는 도메인으로 가는 요청이 하나라도 있으면 테스트는 실패합니다. 컨텍스트에서 쿠키 목록도 읽어, 필수가 아닌 쿠키가 하나라도 있으면 실패 처리합니다.
테스트 2: 거부하면 계속 꺼져 있다
- 새 컨텍스트에서 페이지를 로드합니다.
- 배너의 거부 컨트롤을 클릭합니다.
- 임베드된 미디어가 있는 페이지를 포함해 두세 개의 페이지를 더 탐색합니다.
- 추적기 요청이 없고 필수가 아닌 쿠키가 설정되지 않았음을 단언합니다.
- 새로고침하고 배너가 숨겨진 상태로 유지되며 선택이 지속됨을 단언합니다.
테스트 3: 수락하면 켜져야 할 것이 켜진다
수락을 클릭하고 분석 요청 같은 기대하는 태그가 이제 실행되는지 단언합니다. 이것은 반대의 실패를 막아 줍니다. 동의는 기록하지만 스크립트는 절대 풀어주지 않는 배너는 조용히 데이터와 수익을 잃게 만듭니다.
테스트 4: 세분화된 선택
환경설정 계층을 열고 하나의 목적만 활성화한 뒤 저장합니다. 해당 목적에 연결된 태그는 실행되고 다른 목적에 연결된 태그는 실행되지 않음을 단언합니다. 목적에서 기대 도메인으로의 작은 매핑 파일을 유지하면 테스트가 명확하게 읽히고 업데이트하기 쉽습니다.
테스트 5: 철회
수락한 뒤, 상시 링크를 통해 설정을 다시 열고 철회합니다. 이후 추적기로 가는 요청이 멈추고 저장된 동의 상태가 변경을 반영함을 단언합니다. 이미 설정된 쿠키는 명시적으로 제거해야 할 수 있으므로, 정책을 정하고 그에 대해 테스트하세요.
테스트 6: 신호
Google Consent Mode를 사용한다면, 각 선택 전후에 페이지 컨텍스트에서 데이터 레이어를 읽고 동의 상태 값이 일치함을 단언하세요. 기본값은 denied, 방문자가 수락한 범주는 granted입니다. TCF 문자열을 사용한다면 TCF API로 읽어 선택 후에 존재하며 그 선택을 반영하고 있음을 단언하세요.
테스트를 안정적으로 유지하기
- 디자인 업데이트로 바뀌는 CSS 클래스 대신 테스트 속성이나 접근성 역할 같은 안정적인 선택자를 사용하세요.
- 고정된 지연이 아니라 명시적인 조건을 기다리세요.
- 프로덕션과 같은 태그 구성을 가진 스테이징 사본에 대해 테스트를 실행하세요.
- 서드파티 스크립트는 우리 릴리스와 무관하게 바뀌므로, 배포 때만이 아니라 일정에 따라서도 작은 버전의 스위트를 실행하세요.
- 지리적 위치를 설정하거나 CMP가 제공하는 지역 재정의를 사용해 서비스하는 주요 지역을 테스트하세요.
FlexyConsent의 위치
FlexyConsent는 IAB TCF 2.4, IAB GPP v1.1, Google Consent Mode v2를 지원하므로 테스트에서 단언하는 신호는 페이지에서 읽을 수 있는 표준 신호입니다. 배너는 58개 언어로 제공됩니다. 여러 언어를 서비스한다면 영어가 아닌 버전을 하나 이상 로드하는 테스트를 포함하세요.
핵심 요약
- 처음 방문한 사용자를 모방하도록 테스트마다 새로운 브라우저 컨텍스트를 사용하세요.
- 배너의 외형만이 아니라 네트워크 요청과 쿠키를 단언하세요.
- 상호작용 없음, 거부, 수락, 철회의 네 가지 경로를 다루세요.
- 데이터 레이어나 TCF API의 동의 신호도 확인하세요.
- 서드파티 스크립트로 인한 변화를 포착하도록 릴리스 시와 일정에 따라 스위트를 실행하세요.