e-nms_qa_automation/docs/index.md

140 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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