server selection
This commit is contained in:
174
docs/health_check_testing.md
Normal file
174
docs/health_check_testing.md
Normal file
@@ -0,0 +1,174 @@
|
||||
# 📋 Инструкция по тестированию Health Check'а серверов
|
||||
|
||||
## 🎯 Что тестируем
|
||||
|
||||
Новую функциональность автоматической проверки здоровья серверов в диалоге настроек.
|
||||
|
||||
## 🔧 Подготовка к тестированию
|
||||
|
||||
### 1. Сборка приложения
|
||||
```bash
|
||||
cd /home/trevor/StudioProjects/WellShe
|
||||
./gradlew assembleDebug
|
||||
```
|
||||
|
||||
### 2. Установка на устройство/эмулятор
|
||||
```bash
|
||||
adb install -r app/build/outputs/apk/debug/app-debug.apk
|
||||
```
|
||||
|
||||
### 3. Включение детального логирования
|
||||
```bash
|
||||
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 показывает изменение сервера
|
||||
- Последующие запросы идут на новый сервер
|
||||
|
||||
## 🔍 Проверка логов
|
||||
|
||||
### Ключевые логи для поиска:
|
||||
|
||||
```bash
|
||||
# Инициализация проверки
|
||||
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 отзывчивый и интуитивный
|
||||
|
||||
**Замечания:** ___________________
|
||||
|
||||
**Предложения по улучшению:** ___________________
|
||||
Reference in New Issue
Block a user