Документация тестового фреймворка NMS
Автоматически сгенерированная документация для тестового фреймворка, разработанного для тестирования Network Management System (NMS).
Обзор проекта
Фреймворк разработан с использованием: - Playwright - для автоматизации браузера - Pytest - как основной тестовый движок - Page Object Model - паттерн для организации тестового кода - MkDocs - для генерации документации - Python 3.8+ - язык реализации
Детальная структура проекта
Корневая директория
.env- файл с переменными окруженияconftest.py- фикстуры Pytest, настройки генерации документацииmkdocs.yml- конфигурация документацииpytest.ini- конфигурация тестов (маркеры, параметры)requirements.txt- зависимости Pythonsetup.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 - система логирования
Взаимодействие компонентов
- Тесты используют страницы (pages)
- Страницы состоят из компонентов (components)
- Компоненты состоят из элементов (elements)
- Элементы используют локаторы из соответствующих файлов
- Все модули используют:
- Общие данные из data/
- Логирование через tools/logger.py
- Фикстуры из fixtures/
Как использовать
- Установите зависимости: ```bash pip install -e . Запустите тесты:
bash
Все тесты
pytest tests/ -v
Только smoke-тесты
pytest tests/ -m smoke -v Сгенерируйте документацию:
bash mkdocs serve Поддерживаемые тесты Авторизация (успешная/неудачная)
Управление сессиями:
Проверка таблицы
Удаление сессий
Модальные окна
Управление пользователями:
Создание/удаление
Изменение ролей
Сброс паролей
Системные тесты:
Статус сервисов
Лицензии