140 lines
5.2 KiB
Markdown
140 lines
5.2 KiB
Markdown
# Документация тестового фреймворка 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
|
||
Поддерживаемые тесты
|
||
Авторизация (успешная/неудачная)
|
||
|
||
Управление сессиями:
|
||
|
||
Проверка таблицы
|
||
|
||
Удаление сессий
|
||
|
||
Модальные окна
|
||
|
||
Управление пользователями:
|
||
|
||
Создание/удаление
|
||
|
||
Изменение ролей
|
||
|
||
Сброс паролей
|
||
|
||
Системные тесты:
|
||
|
||
Статус сервисов
|
||
|
||
Лицензии |