Как тестировать интеграцию с системами аналитики (Google Analytics, Amplitude и др.)?

«Как тестировать интеграцию с системами аналитики (Google Analytics, Amplitude и др.)?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тестирование аналитики — это проверка корректности, полноты и своевременности отправки данных о событиях (events) во внешние системы.

Основные этапы тестирования:

  1. Проверка триггеров событий:

    • Событие отправляется только при нужном действии пользователя (клик, отправка формы, переход по странице).
    • Событие не отправляется лишний раз (например, при повторном клике на тот же элемент).
  2. Валидация данных (payload) события:

    • Структура: Правильное название события (event name) и параметров (event properties).
    • Значения: Корректность передаваемых данных (ID пользователя, метки времени, URL страницы, текста кнопки и т.д.).
    • Консистентность: Одинаковые события с разных страниц/компонентов должны иметь единую структуру.

Инструменты для проверки:

  • Вкладка Network в DevTools: Фильтрация запросов по домену аналитики (например, www.google-analytics.com, api.amplitude.com).
  • Расширения браузера: Google Analytics Debugger, Snowplow Inspector.
  • Прокси-инструменты: Charles Proxy, Fiddler — для детального анализа тела запроса (payload).
  • Режим отладки в самой системе аналитики (например, DebugView в Google Analytics 4).

Пример проверки в DevTools Console:

// Можно перехватывать отправляемые события, если SDK аналитики предоставляет debug-режим
// Для GA4 (gtag.js) можно включить отладку:
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID', { debug_mode: true }); // События будут видны в консоли

Практические проверки:

  • События страницы (Pageview): Отправляются при загрузке и смене роута (в SPA).
  • Пользовательские события (Custom Events): button_click, form_submit, video_start.
  • Тестирование в разных сценариях:
    • При отсутствии сети (события могут кешироваться и отправляться позже).
    • С блокировщиками рекламы (аналитика может не загрузиться).
    • На разных платформах (веб, мобильное приложение).

Важно: Сравнивайте отправляемые данные с требованиями документации по аналитике в проекте.