e-nms_qa_automation/docs/index.md

5.2 KiB
Raw Blame History

Документация тестового фреймворка 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. Установите зависимости:
    pip install -e .
    

Запустите тесты:

bash

Все тесты

pytest tests/ -v

Только smoke-тесты

pytest tests/ -m smoke -v Сгенерируйте документацию:

bash mkdocs serve Поддерживаемые тесты Авторизация (успешная/неудачная)

Управление сессиями:

Проверка таблицы

Удаление сессий

Модальные окна

Управление пользователями:

Создание/удаление

Изменение ролей

Сброс паролей

Системные тесты:

Статус сервисов

Лицензии