Автоматические тесты баннера согласия на Playwright: практическое руководство

Зачем автоматизировать проверку согласия

Ручные проверки согласия легко пропустить и легко выполнить неправильно. Новый тег от маркетинга, обновление темы или переработанный загрузчик скриптов могут незаметно начать запускать трекеры до получения согласия, и никто этого не замечает, пока не заметит клиент или регулятор. Автоматические браузерные тесты превращают вопрос «ведёт ли себя наш баннер по-прежнему правильно?» во что-то, что выполняется при каждом релизе. Playwright хорошо подходит, потому что управляет настоящими браузерами, умеет перехватывать сетевые запросы и предоставляет свежие изолированные контексты браузера.

Тестовые контексты

Каждый тест должен начинаться с чистого контекста браузера, без cookie и локального хранилища. Это имитирует впервые пришедшего посетителя. Создавайте новый контекст для каждого теста, а не переиспользуйте страницу, иначе выбор, сохранённый одним тестом, перетечёт в следующий.

Тест 1. До согласия ничего не срабатывает

Слушайте все сетевые запросы с момента начала загрузки страницы. Загрузите страницу, дождитесь простоя и не трогайте баннер. Затем сравните запросы со списком доменов трекеров, который вы ведёте: аналитика, реклама и пиксели соцсетей. Тест падает, если какой-либо запрос уходит на домен из списка. Также прочитайте список cookie из контекста и считайте тест проваленным, если существует любая необязательная cookie.

Тест 2. Отказ сохраняет всё выключенным

  1. Загрузите страницу в новом контексте.
  2. Нажмите элемент отказа в баннере.
  3. Перейдите ещё на две-три страницы, включая одну со встроенными медиа.
  4. Проверьте, что запросов к трекерам не было и необязательные cookie не устанавливались.
  5. Перезагрузите страницу и проверьте, что баннер остаётся скрытым, а выбор сохраняется.

Тест 3. Принятие включает то, что должно

Нажмите «принять» и проверьте, что ожидаемые теги теперь срабатывают, например запрос вашей аналитики. Это защищает от обратного сбоя: баннер записывает согласие, но никогда не освобождает скрипты, что тихо стоит вам данных и дохода.

Тест 4. Детализированный выбор

Откройте уровень настроек, включите только одну цель и сохраните. Проверьте, что теги, связанные с этой целью, срабатывают, а теги, связанные с остальными, нет. Держите небольшой файл соответствия целей ожидаемым доменам, чтобы тест читался ясно и его было легко обновлять.

Тест 5. Отзыв

Примите, затем снова откройте настройки через вашу постоянную ссылку и отзовите согласие. Проверьте, что последующие запросы к трекерам прекращаются и сохранённое состояние согласия отражает изменение. Учтите, что уже установленные cookie, возможно, придётся удалять явно, поэтому определите свою политику и проверьте её.

Тест 6. Сигналы

Если вы используете Google Consent Mode, прочитайте data layer в контексте страницы до и после каждого выбора и проверьте, что значения состояния согласия совпадают: denied по умолчанию, granted для категорий, которые принял посетитель. Если вы используете строку TCF, прочитайте её через TCF API и проверьте, что она присутствует после выбора и отражает его.

Как сделать тесты надёжными

Где место FlexyConsent

FlexyConsent поддерживает IAB TCF 2.4, IAB GPP v1.1 и Google Consent Mode v2, поэтому сигналы, которые вы проверяете в тестах, стандартные, и их можно прочитать со страницы. Баннер доступен на 58 языках; если вы обслуживаете несколько, добавьте тест, загружающий хотя бы одну неанглийскую версию.

Главные выводы

← Блог Читать все →