Проект автоматизации тестирования интернет-магазина: Яндекс.Маркет
Провести функциональное тестирование полного "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" или "двух-факторная аутентификация", приходится проходить вручную, ибо я не имею доступа к тестовой среде площадки Яндекс.Маркета. Также, я не имею различных входных данных тестовых сценариев, данных тестового счёта и данных о клиенте. Поэтому некоторые этапы прохождения тестирования мне пришлось опустить, например вышеупомянутая: "Оплата Товара"
Конарев Илья