Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Шаблон под автоматизированные тесты

Этот проект содержит автотесты на Python + Selenium + pytest для проверки ключевых пользовательских сценариев на сайте litres.ru:

  • покупка книги из разных жанров;
  • удаление книги из корзины;
  • поиск книги по названию.

Тесты используют паттерн Page Object (папка pages) и вспомогательный базовый класс Base (папка base).


Технологии

  • Python 3.11+ (рекомендуется виртуальное окружение)
  • Selenium WebDriver
  • pytest
  • webdriver-manager
  • Faker
  • python-dotenv
  • Black (для автоформатирования кода по PEP8)

Все зависимости перечислены в файле requirements.txt.


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

  • base/ – базовый класс Base с общими методами (проверки, скриншоты и т.п.).
  • pages/ – Page Object’ы:
    • login_page.py – авторизация пользователя;
    • main_page.py – главная страница (поиск, переход в каталог жанров);
    • catalog_page.py – каталог жанров и выбор книги;
    • cart_page.py – корзина и переход к покупке;
    • payment_page.py – заполнение данных оплаты (фейковые данные через Faker);
    • components/filters.py – отдельный компонент для работы с фильтрами на сайте.
  • tests/ – pytest‑тесты:
    • test_buy_product.py – сценарии покупки книги из разных жанров;
    • test_delete_book.py – тест удаления книги из корзины;
    • test_search_book.py – тест поиска книги;
    • conftest.py – общие фикстуры.
  • screen/ – папка для сохранения скриншотов.

Подготовка окружения

  1. Клонировать репозиторий (или скопировать проект):
git clone <URL_РЕПОЗИТОРИЯ>
cd AutomationSeleniumProject
  1. Создать виртуальное окружение (опционально, но рекомендуется):
python -m venv .venv
.\.venv\Scripts\activate  # Windows
  1. Установить зависимости:
python -m pip install --upgrade pip
pip install -r requirements.txt

Настройка переменных окружения

Для тестов авторизации используются логин и пароль, читаемые из переменных окружения (через python-dotenv):

  • LOGIN – логин пользователя litres.ru;
  • PASSWORD – пароль.

Создайте файл .env в корне проекта (рядом с requirements.txt) и добавьте в него:

LOGIN=ваш_логин
PASSWORD=ваш_пароль

Файл .env уже должен быть проигнорирован системой контроля версий (см. .gitignore).


Запуск тестов

Запуск всех тестов:

pytest

Запуск только тестов покупки:

pytest tests/test_buy_product.py

Запуск теста поиска книги:

pytest tests/test_search_book.py

Тесты используют webdriver_manager, поэтому драйвер Chrome будет автоматически скачан и обновлён при необходимости. В опциях браузера уже добавлены флаги --disable-notifications и --disable-popup-blocking.


Скриншоты

Метод get_screenshot базового класса Base сохраняет скриншоты в папку screen/ с именем вида:

screenshot YYYY.MM.DD-HH.MM.SS.png

Путь к директории для скриншотов жёстко прописан в коде (Base.get_screenshot). При переносе проекта при необходимости скорректируйте путь.


About

Automation Selenium Project Template

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages