175 lines
7.0 KiB
Markdown
175 lines
7.0 KiB
Markdown
# 📋 Инструкция по тестированию 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 отзывчивый и интуитивный
|
||
|
||
**Замечания:** ___________________
|
||
|
||
**Предложения по улучшению:** ___________________
|