# Документация тестового фреймворка NMS Автоматически сгенерированная документация для тестового фреймворка, разработанного для тестирования Network Management System (NMS). ## Обзор проекта Фреймворк разработан с использованием: - **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-окнами (ошибки, успех, информация) - `base_component.py` - базовый класс для всех компонентов - `card_component.py` - карточки пользователей - `confirm_component.py` - модальные окна подтверждения - `modal_window_component.py` - базовые модальные окна - `navbar_component.py` - панель навигации - `table_component.py` - работа с таблицами - `toolbar_component.py` - тулбары приложения #### 2. data/ Данные и конфигурации: - `constants.py` - константы (логины, пароли) - `environment.py` - настройки окружения (test/develop) - `roles_dict.py` - словарь ролей пользователей #### 3. docs/ Документация: - `api/` - документация API классов - `tests/` - документация тестов - `config/` - инструкции по настройке #### 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/ ## Как использовать 1. Установите зависимости: ```bash pip install -e . Запустите тесты: bash # Все тесты pytest tests/ -v # Только smoke-тесты pytest tests/ -m smoke -v Сгенерируйте документацию: bash mkdocs serve Поддерживаемые тесты Авторизация (успешная/неудачная) Управление сессиями: Проверка таблицы Удаление сессий Модальные окна Управление пользователями: Создание/удаление Изменение ролей Сброс паролей Системные тесты: Статус сервисов Лицензии