Как собрать логи с тестового симулятора или эмулятора?

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

Ответ

Стратегия сбора логов зависит от типа симулятора.

1. Использование встроенных возможностей симулятора: Многие симуляторы поддерживают флаги командной строки для логирования.

./device-simulator --log-level=debug --log-file=./logs/sim_$(date +%Y%m%d).log

2. Перенаправление потоков вывода (stdout/stderr): Самый универсальный метод для консольных приложений.

# Запись всех выходных данных в файл
./simulator > simulator_output.log 2>&1

# Раздельная запись stdout и stderr
./simulator 1>stdout.log 2>stderr.log

3. Специфичные инструменты для мобильных эмуляторов:

  • Android Emulator: Используется adb logcat с фильтрацией по тегу процесса.
    adb logcat -s MyAppEmulatorTag > emulator_log.txt
  • iOS Simulator: Логи доступны через Console.app или команду log.
    xcrun simctl spawn booted log stream --level debug

4. Интеграция с фреймворком тестирования: Например, в pytest можно настроить захват логов симулятора через кастомные фикстуры или хуки.

Рекомендация: Всегда проверяйте документацию конкретного симулятора, так как способы логирования могут быть уникальными.