From 248cc83181e48a8e1fe8663df5bf615cd7ecc870 Mon Sep 17 00:00:00 2001 From: AlexeyZh Date: Thu, 31 Oct 2024 18:08:15 +0300 Subject: [PATCH] docs: updated readme --- README.md | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 138 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 409c366..1564a52 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,139 @@ -"# ParaBank" +# Проект автоматизированного тестирования Parabank + +[![Ruff Linter](https://github.com/ZhikharevAl/ParaBank/actions/workflows/ruff_check.yml/badge.svg)](https://github.com/ZhikharevAl/ParaBank/actions/workflows/ruff_check.yml) +[![Playwright Tests](https://github.com/ZhikharevAl/ParaBank/actions/workflows/auto_tests.yml/badge.svg)](https://github.com/ZhikharevAl/ParaBank/actions/workflows/auto_tests.yml) + +## Оглавление + +- [Описание проекта](#описание-проекта) +- [Структура проекта](#структура-проекта) +- [Диаграмма состояний](#диаграмма-состояний) +- [Основные функции](#основные-функции) +- [Технологии и инструменты](#технологии-и-инструменты) +- [Настройка окружения](#настройка-окружения) +- [Запуск тестов](#запуск-тестов) +- [Структура отчетов](#структура-отчетов) +- [Особенности проекта](#особенности-проекта) + +## Описание проекта + +Данный проект представляет собой набор автоматизированных тестов для веб-приложения Parabank. Тесты покрывают основные функции, такие как регистрация пользователя, авторизация, просмотр счета и транзакций, а также другие действия, поддерживаемые сайтом. + +## Структура проекта + +```bash +parabank/ +│ +├── .github/ # Конфигурации GitHub Actions +│ ├── workflows/ +│ ├── auto_tests.yml +│ ├── ruff_check.yml +├── config/ # Настройки конфигурации +├── data/ # Модули для работы с тестовыми данными +│ ├── __init__.py +│ ├── user_data.py +├── docs/ # Документация +├── pages/ # Page Object модели для страниц сайта Parabank +│ ├── __init__.py +│ ├── base_page.py +│ ├── main_page.py +│ ├── overview_page.py +│ ├── register_page.py +├── tests/ # Тестовые модули +│ ├── base/ +│ ├── __init__.py +│ ├── base_test.py +│ ├── ui/ +│ ├── __init__.py +│ ├── test_ui_elements.py +│ ├── test_login.py +│ ├── test_main_parabank.py +│ ├── test_register.py +├── .gitignore +├── conftest.py # Конфигурация PyTest +├── pyproject.toml # Конфигурация для Ruff +├── pytest.ini # Конфигурация PyTest +├── README.md +├── requirements.txt # Зависимости проекта +``` + +## [Диаграмма состояний](./attachment/Untitled%20diagram-2024-10-19-004955.svg) + ![Full diagram](./attachment/Untitled%20diagram-2024-10-19-004955.svg) -![State diagram](./attachment/2024-10-19_05-02-30.png) \ No newline at end of file +![State diagram](./attachment/2024-10-19_05-02-30.png) + +## Основные функции + +- Регистрация нового пользователя с различными валидными и невалидными данными +- Авторизация зарегистрированного пользователя +- Просмотр баланса счета, истории транзакций и информации о пользователе +- Проверка корректности отображения элементов интерфейса + +## Технологии и инструменты + +- Python +- Pytest +- Allure для отчетов +- Playwright для взаимодействия с UI +- Page Object Model для структурирования тестов +- GitHub Actions для CI/CD + +## Настройка окружения + +1. Убедитесь, что установлен Python 3.10+ +2. Клонируйте репозиторий: + + ```bash + git clone https://github.com/ZhikharevAl/ParaBank.git + cd ParaBank + ``` + +3. Создайте виртуальное окружение и активируйте его: + + ```bash + uv venv .venv + source .venv/bin/activate # Для Linux/Mac + .venv\Scripts\activate # Для Windows + ``` + +4. Установите зависимости: + + ```bash + uv pip install --upgrade -r requirements.txt + ``` + +## Запуск тестов + +Для запуска всех тестов: + +```bash +pytest +``` + +Для запуска конкретного теста: + +```bash +pytest tests/ui/test_ui_elements.py +``` + +Для создания Allure-отчета: + +```bash +pytest --alluredir=./allure-results +allure serve ./allure-results +``` + +## Структура отчетов + +Проект использует Allure для генерации отчетов. Каждый тест включает: + +- Подробное описание шагов +- Скриншоты при сбоях +- Уровень приоритета теста + +## Особенности проекта + +- Использование Page Object Model для структурирования кода +- Параметризация тестов для охвата разных сценариев +- Поддержка CI/CD через GitHub Actions для автоматического запуска тестов +- Разделение тестов по категориям для лучшего покрытия