Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Автоматизированные тесты для веб-приложения Sauce Demo — интернет-магазина для тестирования.

📋 Описание проекта

Проект содержит E2E-тесты для проверки функционала авторизации и корзины покупок интернет-магазина Sauce Demo. Реализован на Python с использованием:

  • pytest — фреймворк для написания тестов
  • Selenium WebDriver — управление браузером
  • Page Object Model — паттерн проектирования для организации кода
  • Allure — генерация отчётов о результатах тестирования
  • Docker — контейнеризация для запуска тестов в изолированной среде

🏗 Структура проекта

├── conftest.py              # Фикстуры pytest (настройка WebDriver)
├── data.py                  # Тестовые данные (пользователи, URL, сообщения)
├── locators.py              # Локаторы элементов страниц
├── Dockerfile               # Docker-образ для запуска тестов
├── requirements.txt         # Python-зависимости
├── page/                    # Page Object классы
│   ├── base_page.py         # Базовый класс с общими методами
│   ├── login_page.py        # Страница авторизации
│   └── inventory_page.py    # Страница инвентаря/корзины
└── tests/                   # Тестовые сценарии
    └── test_saucedemo.py    # Тесты авторизации и корзины

📦 Технологии и версии

Компонент Версия
Python 3.10
pytest 9.0.2
selenium 4.39.0
allure-pytest 2.15.2
Google Chrome latest (в контейнере)

🚀 Установка и запуск

Локальный запуск

  1. Создайте виртуальное окружение:

    .venv\Scripts\Activate.ps1   # Windows
    # или
    source .venv/bin/activate     # Linux/macOS
  2. Установите зависимости:

    pip install -r requirements.txt
  3. Запустите тесты:

    python -m pytest tests -v -s
  4. Запуск с генерацией отчёта Allure:

    python -m pytest tests -v -s --alluredir=allure-results
    allure serve allure-results

Запуск в Docker

  1. Соберите образ:

    docker build -t test_docker_selenium .
  2. Запустите тесты:

    docker run --rm test_docker_selenium
  3. С отчётом Allure (сохранение результатов в локальную директорию):

    docker run --rm -v ${PWD}/docker_results:/app/allure-results test_docker_selenium
  4. Просмотр результатов из контейнера:

    $env:JAVA_HOME = "C:\Program Files\Java\jdk-21"   # Windows (если ошибка нахождения JAVA_HOME)
    allure serve docker_results

🧪 Покрытие тестами

Тесты авторизации (TestLoginPage)

Тест Описание Ожидаемый результат
test_login_user_ok Успешный вход с валидными учётными данными Переход на страницу инвентаря
test_error_password_user Вход с неверным паролем Сообщение об ошибке
test_locked_out_user Вход заблокированным пользователем Сообщение о блокировке
test_clear_username_field Вход с пустыми полями Сообщение о необходимости заполнения
test_login_glitch_user Вход пользователем с задержкой Успешный вход (проверка отказоустойчивости)

Тесты корзины (TestInventoryPage)

Тест Описание Ожидаемый результат
test_add_to_cart Добавление товара в корзину Товар отображается в корзине
test_remove_from_cart Удаление товара из корзины Товар отсутствует в корзине

👥 Тестовые пользователи

Пользователь Логин Пароль
standard_user standard_user secret_sauce
locked_out_user locked_out_user secret_sauce
performance_glitch_user performance_glitch_user secret_sauce

📁 Тестовые данные

Все тестовые данные вынесены в файл data.py:

  • DataUser — учётные данные пользователей
  • DataUrl — URL-адреса страниц
  • DataMessages — сообщения об ошибках
  • DataInventory — названия товаров

🔧 Конфигурация WebDriver

Настройки браузера (headless-режим) находятся в conftest.py:

  • Headless-режим для фонового выполнения
  • Режим инкoгнито
  • Размер окна: 1920x1080
  • Отключение расширений и infobars
  • Оптимизация для Docker (--no-sandbox, --disable-dev-shm-usage)

📊 Генерация отчётов Allure

# После выполнения тестов локально получаем отчет
allure generate allure-results -o allure-report
allure open allure-report

📝 Лицензия

Проект создан для образовательных целей и тестирования.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages