7.0 KiB
7.0 KiB
📋 Инструкция по тестированию 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: Основная функциональность
- Запустите приложение
- Откройте диалог настроек (нажмите ⚙️)
- Наблюдайте автоматическую проверку серверов
Ожидаемый результат:
- Появляется диалог с кнопкой обновления (🔄)
- Рядом с каждым сервером показывается индикатор загрузки
- Через несколько секунд индикаторы меняются на цветные статусы
- Отображается время отклика и статус
Сценарий 2: Различные статусы серверов
- Убедитесь что сервер
http://10.0.2.2:8000запущен - Откройте диалог настроек
- Проверьте индикаторы:
Ожидаемые результаты:
- 🟢 Зеленый для
http://10.0.2.2:8000(если работает быстро) - ⚫ Серый для недоступных серверов
- Время отклика в миллисекундах
Сценарий 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: [...]
⚠️ Возможные проблемы
Проблема: Все серверы показывают "Недоступен"
Причина: Сетевые ограничения или неправильная конфигурация Решение:
- Проверить подключение к интернету
- Убедиться что сервер запущен на
http://10.0.2.2:8000 - Проверить настройки эмулятора
Проблема: Долгая проверка (>10 секунд)
Причина: Медленная сеть или высокие таймауты Решение:
- Проверить скорость соединения
- Уменьшить таймауты в
ServerHealthRepository
Проблема: Крашь при открытии диалога
Причина: Ошибки в коде или зависимостях Решение:
- Проверить логи с помощью
adb logcat - Убедиться что все зависимости добавлены
✅ Критерии успеха
Тест считается пройденным если:
- ✅ Диалог открывается без ошибок
- ✅ Автоматически запускается проверка серверов
- ✅ Отображаются цветные индикаторы статуса
- ✅ Показывается время отклика
- ✅ Кнопка обновления работает
- ✅ Можно выбрать сервер по статусу
- ✅ Настройки сохраняются корректно
- ✅ В логах видны детали проверки
📊 Примеры ожидаемых результатов
Быстрый локальный сервер:
🟢 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
Проверка...
🚀 Дополнительные тесты
Стресс-тест
- Открывайте и закрывайте диалог несколько раз подряд
- Нажимайте кнопку обновления многократно
- Проверяйте что нет утечек памяти
Тест сети
- Отключите интернет и откройте диалог
- Включите интернет и нажмите обновление
- Проверьте корректную обработку ошибок
📝 Отчет о результатах
После тестирования заполните:
- Основная функциональность работает
- Индикаторы отображаются корректно
- Время отклика измеряется точно
- Ручное обновление работает
- Логирование детальное и понятное
- Нет критических ошибок
- UI отзывчивый и интуитивный
Замечания: ___________________
Предложения по улучшению: ___________________