Раздел посвящен логированию и созданию тестовых окружений. Научитесь эффективно собирать и анализировать логи, а также настраивать окружения для тестирования.
24 аудио · 7:05
Olga·
Что такое логи и зачем они нужны тестировщику?
0:35
Логи — это записи о событиях, происходящих в системе во время ее работы.
Они содержат информацию о:
Запросах.
Ошибках.
Состоянии системы.
Действиях пользователей.
Тестировщик использует логи для:
Поиска причин дефектов.
Локализации ошибок.
Анализа поведения системы.
Пример:
Пользователь получил ошибку 500 → в логах можно увидеть причину (например, ошибка в SQL-запросе).
Какие уровни логирования бывают?
0:18
DEBUG — детальная информация для разработчиков.
INFO — обычные события системы.
WARN — предупреждения.
ERROR — ошибки.
FATAL — критические ошибки.
Пример:
ERROR: NullPointerException → ошибка в коде.
Какие виды логов бывают?
0:19
Frontend логи — ошибки в браузере (Console).
Backend логи — серверные ошибки.
Системные логи — работа инфраструктуры.
Логи базы данных — SQL ошибки.
Пример:
Ошибка в UI → проверяем Console и backend.
Как тестировщик работает с логами на практике?
0:17
Алгоритм:
Найти момент ошибки.
Открыть логи.
Найти соответствующую запись.
Проанализировать причину.
Пример:
Ошибка при создании заказа → в логах видно "DB constraint violation" → проблема в базе.
Что такое браузерные логи и как с ними работать?
0:14
Это логи, которые отображаются в DevTools → Console.
Тестировщик проверяет:
Ошибки JavaScript.
Сетевые ошибки.
Предупреждения.
Пример:
Uncaught TypeError → ошибка фронтенда.
Что такое системы логирования?
0:22
Это инструменты для сбора, хранения и анализа логов.
Примеры:
ELK stack (Elasticsearch + Logstash + Kibana).
Grafana + Loki.
Позволяют:
Искать логи.
Фильтровать.
Анализировать.
Пример:
Поиск всех ERROR за последние 10 минут.
Что такое Kibana и как используется?
0:19
Kibana — это инструмент для визуализации и анализа логов.
Тестировщик использует:
Поиск по ключевым словам.
Фильтрацию по времени.
Фильтрацию по уровню (ERROR).
Пример:
Найти все ошибки по endpoint /login за последний час.
Как искать ошибки в Kibana?
0:13
Использовать:
Фильтр по времени.
Фильтр по уровню (ERROR).
Поиск по endpoint или user_id.
Пример:
message: "error" AND endpoint: "/login"
Что такое Trace ID, Span ID и Request ID?
0:26
Trace ID — идентификатор всего запроса через систему.
Span ID — часть запроса внутри одного сервиса.
Request ID — конкретный HTTP-запрос.
Используются для:
Отслеживания запроса через несколько сервисов.
Пример:
Один запрос проходит через 5 сервисов — Trace ID объединяет их.
Как использовать Trace ID на практике?
0:20
Берем Trace ID из одного лога.
Ищем его в других сервисах.
Это позволяет:
Восстановить цепочку запроса.
Найти место ошибки.
Пример:
Ошибка в UI → берем Trace ID → находим, что ошибка в третьем сервисе.
Как анализировать проблему через логи (реальный кейс)?
0:22
Сценарий:
Пользователь не получил уведомление.
Шаги:
Проверить, было ли событие.
Найти лог отправки сообщения.
Проверить брокер.
Проверить consumer.
Найти ошибку.
Вывод:
Если сообщение дошло до брокера, но не обработано → проблема в consumer.
Как понять, где произошла ошибка?
0:12
Если:
Ошибка в Console → фронт.
Ошибка в backend логах → сервер.
Ошибка в БД → SQL.
Пример:
500 ошибка → backend.
Что проверять в логах при ошибке API?
0:12
Статус ошибки.
Текст ошибки.
Stack trace.
SQL ошибки.
Данные запроса.
Пример:
Ошибка: "column not found" → проблема в запросе.
Как организуется работа с логами на проекте?
0:21
Определяются:
Где хранятся логи.
Кто имеет доступ.
Как искать ошибки.
Какие инструменты используются.
Часто:
Kibana.
Grafana.
Логи на сервере.
Пример:
Тестировщик знает, где искать ошибки для каждого сервиса.
Какие типичные баги находят через логи?
0:13
Ошибки в SQL.
NullPointerException.
Ошибки интеграций.
Проблемы с авторизацией.
Проблемы с данными.
Пример:
API падает → лог показывает ошибку в базе.
Пример задачи с собеса: "Ошибка 500, что будешь делать?"
0:14
Алгоритм:
Посмотреть Network.
Найти запрос.
Взять Trace ID.
Пойти в логи.
Найти ERROR.
Определить причину.
Вывод:
Логи позволяют найти источник проблемы.
Пример задачи: "Почему данные не сохраняются?"
0:12
Проверка:
Есть ли запрос.
Что вернул API.
Что в логах.
Есть ли запись в БД.
Вывод:
Если ошибка в логах DB → проблема в базе.
Как объяснить работу с логами на собесе?
0:16
Логи — это основной инструмент для поиска причин дефектов.
С их помощью можно отследить путь запроса через систему, понять, где произошла ошибка, и локализовать проблему на уровне фронтенда, бэкенда или базы данных.
Что такое снифферы и зачем они нужны тестировщику?
0:29
Снифферы — это инструменты для перехвата и анализа сетевого трафика между клиентом и сервером.
Тестировщик использует их для:
Просмотра API-запросов.
Анализа данных.
Поиска ошибок.
Подмены ответов.
Примеры:
Charles Proxy.
Fiddler.
Пример:
Нажали кнопку → через сниффер видим запрос и ответ API.
Что можно проверить с помощью сниффера?
0:13
URL запроса.
Метод (GET, POST).
Headers.
Тело запроса.
Тело ответа.
Статус-код.
Пример:
Проверить, отправляется ли токен в Authorization.
Что такое SSL Proxying и зачем он нужен?
0:15
SSL Proxying позволяет перехватывать HTTPS-трафик.
Без него нельзя увидеть тело запросов.
Пример:
Включаем SSL Proxying → видим JSON запроса логина.
Как тестировщик использует сниффер на практике?
0:18
Алгоритм:
Настроить прокси.
Включить SSL Proxying.
Сделать действие в приложении.
Найти запрос.
Проанализировать ответ.
Пример:
Логин не работает → проверяем API через Charles.
Что такое подмена ответа (mocking) и зачем она нужна?
0:14
Это изменение ответа сервера на тестовые данные.
Используется для:
Проверки UI.
Проверки ошибок.
Тестирования без бэка.
Пример:
Подменить ответ → показать ошибку 500.
Пример задачи: "Как проверить поведение при ошибке сервера?"
0:11
Через сниффер:
Перехватить запрос.
Подменить ответ на 500.
Проверить поведение UI.
Вывод:
UI должен показать ошибку.