# Документация тестового фреймворка eNODE-Мониторинг

Автоматически сгенерированная документация для тестового фреймворка, разработанного для тестирования eNODE-мониторинг.

## Обзор проекта

Фреймворк разработан с использованием:

- **Playwright** - для автоматизации браузера

- **Pytest** - как основной тестовый движок

- **Page Object Model** - паттерн для организации тестового кода

- **MkDocs** - для генерации документации

- **Python 3.8+** - язык реализации

## Детальная структура проекта

### Корневая директория
- `.env` - файл с переменными окружения
- `conftest.py` - фикстуры Pytest, настройки генерации документации
- `mkdocs.yml` - конфигурация документации
- `pytest.ini` - конфигурация тестов (маркеры, параметры)
- `requirements.txt` - зависимости Python
- `setup.py` - конфигурация пакета

### Основные модули

#### 1. components/
Базовые компоненты UI:
- `alert_component.py` - работа с alert-окнами (ошибки, успех, информация)
- 

#### 2. data/
Данные и конфигурации:
- `constants.py` - константы (логины, пароли)
- `environment.py` - настройки окружения (test/develop)
- `roles_dict.py` - словарь ролей пользователей
- 

#### 3. docs/
Документация:
- `tests/` - документация тестов
- `config/` - инструкции по настройке
- index.md

#### 4. elements/
UI-элементы:
- `base_element.py` - базовый элемент
- `button_element.py` - кнопки
- `checkbox_element.py` - чекбоксы
- `text_element.py` - текстовые элементы
- `text_input_element.py` - поля ввода
- `toolbar_button_element.py` - кнопки тулбара

#### 5. fixtures/
Фикстуры Pytest:
- `pages.py` - настройки браузеров, контекстов

#### 6. locators/
Локаторы элементов:
- Локаторы для всех основных компонентов (confirm, modal windows, tables и т.д.)

#### 7. modal_windows/
Специализированные модальные окна:
- `modal_add_user.py` - добавление пользователя
- `modal_edit_user.py` - редактирование пользователя

#### 8. pages/
Страницы приложения:
- `base_page.py` - базовый класс страницы
- `login_page.py` - страница авторизации
- `main_page.py` - главная страница
- Табы: `service_status_tab.py`, `session_tab.py`, `users_tab.py`

#### 9. tests/
Тесты:
- Основные тесты (`test_login.py`, `test_session_tab.py` и др.)
- Поддиректории:
  - `components/` - тесты компонентов
  - `e2e/` - end-to-end тесты

#### 10. tools/
Утилиты:
- `logger.py` - система логирования

## Взаимодействие компонентов

1. **Тесты** используют **страницы** (pages)
2. **Страницы** состоят из **компонентов** (components)
3. **Компоненты** состоят из **элементов** (elements)
4. **Элементы** используют **локаторы** из соответствующих файлов
5. Все модули используют:
   - Общие **данные** из data/
   - **Логирование** через tools/logger.py
   - **Фикстуры** из fixtures/

## Как использовать

### Установите зависимости:
bash
pip install -e .
Запустите тесты:

bash
### Все тесты
pytest tests/ -v

### Только smoke-тесты
pytest tests/ -m smoke -v

### Сгенерируйте документацию:

bash

mkdocs serve

### Поддерживаемые тесты
Авторизация (успешная/неудачная)

Управление сессиями:

- Проверка таблицы

- Удаление сессий

- Модальные окна

Управление пользователями:

- Создание/удаление

- Изменение ролей

- Сброс паролей

### Системные тесты:

- Статус сервисов

- Лицензии