Какие методы используются для сбора логов при тестировании?

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

Ответ

Сбор логов зависит от типа приложения и среды. Основные методы:

1. Логирование на уровне приложения (кода): Используются библиотеки логирования, например, в Python:

import logging
logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler('test_run.log'),
        logging.StreamHandler()
    ]
)
logger = logging.getLogger(__name__)
logger.info('Начало тестового сценария')

2. Логирование внешних систем:

  • Веб-приложения: Консоль браузера (Chrome DevTools Console/Network).
  • Мобильные приложения (Android): adb logcat.
    adb logcat -v time -s MyAppTag > app_log.txt
  • Серверные приложения: Чтение файлов логов (Nginx, Apache, системный journalctl).
    tail -f /var/log/nginx/error.log

3. Централизованные системы мониторинга (ELK Stack, Splunk, Sentry): Логи отправляются в агрегатор для анализа, поиска и создания алертов.

Ключевые практики:

  • Использование структурированного формата (JSON) для логов.
  • Настройка уровней логирования (DEBUG, INFO, ERROR).
  • Добавление корреляционных идентификаторов (Correlation ID) для отслеживания запросов через несколько сервисов.