Автоматичні тести банера згоди на Playwright: практичний посібник
Навіщо автоматизувати перевірку згоди
Ручні перевірки згоди легко пропустити й легко виконати неправильно. Новий тег від маркетингу, оновлення теми чи перероблений завантажувач скриптів можуть непомітно почати запускати трекери до отримання згоди, і ніхто цього не помічає, доки не помітить клієнт чи регулятор. Автоматичні браузерні тести перетворюють питання «чи наш банер і далі поводиться правильно?» на щось, що виконується під час кожного релізу. Playwright добре підходить, бо керує справжніми браузерами, вміє перехоплювати мережеві запити й надає свіжі ізольовані контексти браузера.
Тестові контексти
Кожен тест має починатися з чистого контексту браузера, без cookie й локального сховища. Це імітує відвідувача, що прийшов уперше. Створюйте новий контекст для кожного тесту, а не перевикористовуйте сторінку, інакше вибір, збережений одним тестом, перетече в наступний.
Тест 1. До згоди нічого не спрацьовує
Слухайте всі мережеві запити з моменту початку завантаження сторінки. Завантажте сторінку, зачекайте простою й не торкайтеся банера. Потім порівняйте запити зі списком доменів трекерів, який ви ведете: аналітика, реклама та пікселі соцмереж. Тест падає, якщо будь-який запит іде на домен зі списку. Також прочитайте перелік cookie з контексту й вважайте тест проваленим, якщо існує будь-яка необов'язкова cookie.
Тест 2. Відмова зберігає все вимкненим
- Завантажте сторінку в новому контексті.
- Натисніть елемент відмови в банері.
- Перейдіть ще на дві-три сторінки, зокрема одну із вбудованими медіа.
- Перевірте, що запитів до трекерів не було й необов'язкові cookie не встановлювалися.
- Перезавантажте сторінку та перевірте, що банер лишається прихованим, а вибір зберігається.
Тест 3. Прийняття вмикає те, що має
Натисніть «прийняти» й перевірте, що очікувані теги тепер спрацьовують, наприклад запит вашої аналітики. Це захищає від зворотного збою: банер записує згоду, але ніколи не звільняє скрипти, що тихо коштує вам даних і доходу.
Тест 4. Деталізований вибір
Відкрийте рівень налаштувань, увімкніть лише одну ціль і збережіть. Перевірте, що теги, пов'язані з цією ціллю, спрацьовують, а теги, пов'язані з іншими, ні. Тримайте невеликий файл відповідності цілей очікуваним доменам, щоб тест читався ясно й його було легко оновлювати.
Тест 5. Відкликання
Прийміть, потім знову відкрийте налаштування через ваше постійне посилання й відкличте згоду. Перевірте, що подальші запити до трекерів припиняються, а збережений стан згоди відображає зміну. Зважте, що вже встановлені cookie, можливо, доведеться видаляти явно, тож визначте свою політику й перевірте її.
Тест 6. Сигнали
Якщо ви використовуєте Google Consent Mode, прочитайте data layer у контексті сторінки до та після кожного вибору й перевірте, що значення стану згоди збігаються: denied за замовчуванням, granted для категорій, які прийняв відвідувач. Якщо ви використовуєте рядок TCF, прочитайте його через TCF API й перевірте, що він присутній після вибору та відображає його.
Як зробити тести надійними
- Використовуйте стійкі селектори, як-от тестові атрибути чи доступні ролі, замість CSS-класів, що змінюються з оновленням дизайну.
- Чекайте явних умов, а не фіксованих затримок.
- Запускайте тести на копії стейджингу з тим самим налаштуванням тегів, що й у продакшені.
- Запускайте невелику версію набору за розкладом, а не лише під час деплою, бо сторонні скрипти змінюються без вашого релізу.
- Перевіряйте основні регіони, які ви обслуговуєте, задаючи геолокацію або використовуючи перевизначення регіону, яке пропонує ваша CMP.
Де місце FlexyConsent
FlexyConsent підтримує IAB TCF 2.4, IAB GPP v1.1 і Google Consent Mode v2, тож сигнали, які ви перевіряєте в тестах, стандартні, і їх можна прочитати зі сторінки. Банер доступний 58 мовами; якщо ви обслуговуєте кілька, додайте тест, що завантажує щонайменше одну неанглійську версію.
Головні висновки
- Використовуйте свіжий контекст браузера для кожного тесту, щоб імітувати відвідувача, що прийшов уперше.
- Перевіряйте мережеві запити й cookie, а не лише вигляд банера.
- Покрийте чотири шляхи: без взаємодії, відмова, прийняття та відкликання.
- Перевіряйте сигнали згоди і в data layer, і через TCF API.
- Запускайте набір під час релізу та за розкладом, щоб ловити дрейф через сторонні скрипти.