5.2 KiB
5.2 KiB
Документация тестового фреймворка 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/
Как использовать
- Установите зависимости:
pip install -e .
Запустите тесты:
bash
Все тесты
pytest tests/ -v
Только smoke-тесты
pytest tests/ -m smoke -v Сгенерируйте документацию:
bash mkdocs serve Поддерживаемые тесты Авторизация (успешная/неудачная)
Управление сессиями:
Проверка таблицы
Удаление сессий
Модальные окна
Управление пользователями:
Создание/удаление
Изменение ролей
Сброс паролей
Системные тесты:
Статус сервисов
Лицензии