Проект автоматизации тестирования интернет-магазина: Яндекс.Маркет
Провести функциональное тестирование полного "user case story" маршрута: Авторизация и прохождение всего бизнес пути интернет-магазина на примере покупки товара с установленными фильтровыми значениями.
Проект по Автоматизации Тестирования выполнен на языке Python 3.10.6 3.11 на системе Linux Ubuntu 22.04.1 LTS 23.04 в интегрированной среде разработки PyCharm 2022.2.3 2023.2.4 (Community Edition), на Google Chrome Версия 106.0.5249.119 119.0.6045.123 (Официальная сборка), (64 бит), 9 января 2023 года (Проект обновлён 19 ноября 2023 года).
Проект построен по модели POM (Page Object Model), что позволяет в дальнейшем использовать его как базис для построения новых тестов, также позволяет комфортно его понимать и использовать, плюс возможно интегрировать с CI/CD. Репозиторий содержит следующие директории и файлы:
- Директории:
allure-pytest
- содержит файлы отчётовallure-pytest
.base
- содержит различные базовые методы:- получение текущего URL:
get_current_url
, - валидация по URL:
assert_url
, - валидация по строчному значению:
assert_word
, - создания скриншотов окна браузера:
get_screenshot
.
- получение текущего URL:
logs
- место хранения текстовых логов прохождения тестов,pages
- хранит POM классы страниц c используемыми на странице:- Selectors - в проекте использую CSS_SELECTOR's (Locators),
- Getters - методы, позволяющие получить доступ к Selectors и обращаться к нему с помощью Methods,
- Methods - действия, которые нужно выполнить с Getters,
- Actions - действия непосредственно выполняемые в тесте
test_.py
.
screen
- создаваемые скриншоты, методомget_screenshot
,tests
- хранит тест или группу тестов в пределах одного или нескольких файла(-ов). Содержит в себе методы непосредственно выполняющие тестирование.utilities
- содержит код с помощью которого производится логгирование действий и записываются логи теста(-ов),(Удалено по причине отсутствия необходимости локального хранения chromedriver с момента выпуска Google Chrome 115+ версии).resources
- содержит chromedriver для работы Selenium с Google Chrome
- Файлы:
conftest.py
- содержит параметрыpytest
для запуска параметризированных теста(-ов),requirements.txt
- содержит наименования необходимых плагинов, библиотек и их версий для корректной работы проекта (pytest
,allure
,selenium
и прочие),.gitignore
- содержит исключения для директорий и файлов при работы с Git,README.md
- содержит описание данного проекта.
- Введение логина и пароля,
- Нажатие на кнопку "Вход",
- Подтверждение входа с помощью короткого кода, приходящего на номер телефона, привязанного к электронной почте,
- Проверка подтверждения входа в аккаунт, с помощью
assert_word
сравнения по ключевой фразе в футере сайта.
2. Выбор продукта и прохождение всего бизнес пути (Выбор продукта - Добавление в Корзину - Покупка):
- Переход на страницу "Каталога",
- Выбор категории искомого продукта: "Ноутбуки и Персональные Компьютеры" -> "Ноутбуки",
- Переход на страницу "Фильтров" категории "Ноутбуки",
- Выборка некоторых фильтров, указанным для данного типа продукта,
- Выбор товара в соответствии с введёнными значениями фильтров и добавление его в "Корзину",
- Нажатие на кнопку "Корзина",
- Создание Скриншота Страницы "Корзины" с нашим товаром,
- (Условно)Успешное завершение теста*.
3. В тесте имеется собственная система логгирования и подключен allure-pytest
для вывода отчётов и удобства для работы с итоговыми результатами.
Примечание: Так как автотест написан любительским образом для самообучения и демонстрации своих навыков работодателю, такие моменты веб-сайтов, как "Captcha" или "двух-факторная аутентификация", приходится проходить вручную, ибо я не имею доступа к тестовой среде площадки Яндекс.Маркета. Также, я не имею различных входных данных тестовых сценариев, данных тестового счёта и данных о клиенте. Поэтому некоторые этапы прохождения тестирования мне пришлось опустить, например вышеупомянутая: "Оплата Товара"
Конарев Илья