TGViewer
QA Family by Alexey QA Family by Alexey @dev_qa · 1.64K subscribers
Post #212 806
🖥Тестирование тригеров GTM

Если вы занимаетесь тестированием веб-сайтов, то, вероятно, вам приходилось тестировать триггеры в Google Tag Manager и отправлять события аналитики.

Почему это важно? Дело в том, что большинство таких событий имеют прямое отношение к маркетингу. Маркетологи используют различные метрики продаж, чтобы понять, как лучше продавать. В общем, это напрямую связано с деньгами.💸

Как тестировать события❕❕

1⃣ для ручного тестирования и самый удобный способ это использовать https://tagassistant.google.com/
Там просто вставляете url, и проходите тест кейсы, а в другом окне наблюдаете события (рекомендуем)

2⃣ Использовать консоли разработчика
все события пушится в переменную dataLayer

3⃣ Тестирование через Network-панель браузера, можно наблюдать был ли отправлен запрос на нужный сервер (например, на сервер Google Analytics).


Для автоматизированного тестирования на Playwright, вы можете использовать несколько подходов👇

*️⃣ отслеживание через запросы
test('Track network request and verify payload', async ({ page }) => {
await page.goto('https://your-website.com');

// Перехват и проверка сетевых запросов
const [response] = await Promise.all([
page.waitForResponse(response => response.url().includes('www.google-analytics.com/collect') && response.status() === 200),
// Выполняем действие на странице, которое должно вызвать запрос
page.click('button')
]);

const requestPayload = JSON.parse(response.request().postData());

expect(requestPayload).toHaveProperty('event', 'yourExpectedEvent');
expect(requestPayload).toHaveProperty('gtm', 'expectedGtmId');
});


*️⃣проверка данных в dataLayer
test('Check dataLayer for specific event', async ({ page }) => {
await page.goto('https://your-website.com');

// Выполняем действие на странице
await page.click('button#yourButton');

// Получаем значение dataLayer из контекста страницы
const dataLayer = await page.evaluate(() => window.dataLayer);

// Проверка, что dataLayer содержит ожидаемое событие
const eventData = dataLayer.find(event => event.event === 'yourExpectedEvent');

expect(eventData).not.toBeNull();
expect(eventData).toHaveProperty('gtm', 'yourExpectedGtm');
});

Отслеживание сетевых запросов через Network-панель полно и надежно, но тесты получаются менее стабильны. Проверка данных в dataLayer проста и быстро настраивается, но может пропускать события при перезагрузке страницы или изменениях в dataLayer.

Ставьте 👍 👎


Теги: #testing #playwright #automation #dataLayer #GTM #тестирование #разработка
Google Google Tag Assistant Deploy tags in Google Tag Manager easily and safely with the Community Template Gallery.
  • 👎 66
  • 👍 11
  • ❤ 2
More from @dev_qa
  1. Sep 23, 2026Следующий спикер митапа Moscow QA #28 x Черный митап +18 Даниил Ахетов с докладом Как я де…
  2. Sep 23, 2026Приходите будет еще Боря, Костя и Саша из PiterQA Все топовые спикеры которые расскажут ве…
  3. Sep 5, 2026Ссылка на трансляцию митапа Moscow QA#27 x Мир Plat.Form: https://vkvideo.ru/video-2052808…
  4. Sep 5, 2026Vitest 5.0 вышел ➖ trace view в Browser Mode: упавший браузерный тест проигрывается по шаг…
  5. Sep 1, 2026Playwright MCP 0.0.80 добавлены инструменты browser_start_recording / browser_stop_recordi…
  6. Aug 26, 2026Post #339
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →