Files
WellShe/docs/health_check_testing.md
2025-11-06 07:11:15 +09:00

7.0 KiB
Raw Blame History

📋 Инструкция по тестированию Health Check'а серверов

🎯 Что тестируем

Новую функциональность автоматической проверки здоровья серверов в диалоге настроек.

🔧 Подготовка к тестированию

1. Сборка приложения

cd /home/trevor/StudioProjects/WellShe
./gradlew assembleDebug

2. Установка на устройство/эмулятор

adb install -r app/build/outputs/apk/debug/app-debug.apk

3. Включение детального логирования

adb logcat -s ServerHealthRepository:D ServerSettingsViewModel:D HealthApi:D

🧪 Тестовые сценарии

Сценарий 1: Основная функциональность

  1. Запустите приложение
  2. Откройте диалог настроек (нажмите ⚙️)
  3. Наблюдайте автоматическую проверку серверов

Ожидаемый результат:

  • Появляется диалог с кнопкой обновления (🔄)
  • Рядом с каждым сервером показывается индикатор загрузки
  • Через несколько секунд индикаторы меняются на цветные статусы
  • Отображается время отклика и статус

Сценарий 2: Различные статусы серверов

  1. Убедитесь что сервер http://10.0.2.2:8000 запущен
  2. Откройте диалог настроек
  3. Проверьте индикаторы:

Ожидаемые результаты:

  • 🟢 Зеленый для http://10.0.2.2:8000 (если работает быстро)
  • Серый для недоступных серверов
  • Время отклика в миллисекундах

Сценарий 3: Ручное обновление

  1. Откройте диалог настроек
  2. Дождитесь завершения проверки
  3. Нажмите кнопку обновления (🔄)

Ожидаемый результат:

  • Кнопка становится неактивной
  • Появляются индикаторы загрузки
  • Статусы обновляются

Сценарий 4: Выбор сервера по статусу

  1. Откройте диалог настроек
  2. Найдите сервер с зеленым индикатором 🟢
  3. Выберите его
  4. Сохраните настройки

Ожидаемый результат:

  • Сервер выделяется при выборе
  • Toast показывает изменение сервера
  • Последующие запросы идут на новый сервер

🔍 Проверка логов

Ключевые логи для поиска:

# Инициализация проверки
ServerSettingsViewModel: ServerSettingsViewModel initialized
ServerHealthRepository: Checking health for 4 servers

# Проверка отдельного сервера
ServerHealthRepository: Checking health for server: http://10.0.2.2:8000
ServerHealthRepository: Health check for http://10.0.2.2:8000 completed in 15ms
ServerHealthRepository: Server http://10.0.2.2:8000 is healthy, ping: 15ms

# Завершение проверки
ServerHealthRepository: Health check completed for all servers
ServerSettingsViewModel: Health check completed. Results: [...]

⚠️ Возможные проблемы

Проблема: Все серверы показывают "Недоступен"

Причина: Сетевые ограничения или неправильная конфигурация Решение:

  1. Проверить подключение к интернету
  2. Убедиться что сервер запущен на http://10.0.2.2:8000
  3. Проверить настройки эмулятора

Проблема: Долгая проверка (>10 секунд)

Причина: Медленная сеть или высокие таймауты Решение:

  1. Проверить скорость соединения
  2. Уменьшить таймауты в ServerHealthRepository

Проблема: Крашь при открытии диалога

Причина: Ошибки в коде или зависимостях Решение:

  1. Проверить логи с помощью adb logcat
  2. Убедиться что все зависимости добавлены

Критерии успеха

Тест считается пройденным если:

  1. Диалог открывается без ошибок
  2. Автоматически запускается проверка серверов
  3. Отображаются цветные индикаторы статуса
  4. Показывается время отклика
  5. Кнопка обновления работает
  6. Можно выбрать сервер по статусу
  7. Настройки сохраняются корректно
  8. В логах видны детали проверки

📊 Примеры ожидаемых результатов

Быстрый локальный сервер:

🟢 http://10.0.2.2:8000
    8ms • Отлично

Медленный сервер:

🔴 http://slow-server.com:8000
    650ms • Очень медленно

Недоступный сервер:

⚫ http://offline-server.com:8000
    Connection failed

Проверяется:

⏳ http://checking-server.com:8000
    Проверка...

🚀 Дополнительные тесты

Стресс-тест

  1. Открывайте и закрывайте диалог несколько раз подряд
  2. Нажимайте кнопку обновления многократно
  3. Проверяйте что нет утечек памяти

Тест сети

  1. Отключите интернет и откройте диалог
  2. Включите интернет и нажмите обновление
  3. Проверьте корректную обработку ошибок

📝 Отчет о результатах

После тестирования заполните:

  • Основная функциональность работает
  • Индикаторы отображаются корректно
  • Время отклика измеряется точно
  • Ручное обновление работает
  • Логирование детальное и понятное
  • Нет критических ошибок
  • UI отзывчивый и интуитивный

Замечания: ___________________

Предложения по улучшению: ___________________