Skip to content

Nikilimanjaro/otus_final_project

Repository files navigation

Проектная работа по курсу Python QA Engineer

Введение

Темой данной проектной работы является автоматизация тестирования OpenCart.

Для успешной сдачи проекта необходимо:

  1. Реализовать минимум 10 автотестов.
  2. Развернуть Jenkins и настроить автоматический запуск.
  3. Настроить отчётность по результатам прогона.

При этом оцениваться проект будет по следующим критериям:

  1. Использование паттерна PageObject.
  2. Использование отчётности и возможностей Allure (title, steps, attach).
  3. Минимум 10 автотестов.
  4. Реализовать прикрепление скриншота при падении.
  5. Запуск тестов выполняется из Jenkins, отчётность собирается там же.

Проектный раздел

Разворачивание OpenCart

Для начала необходимо развернуть локально приложение OpenCart и базы данных к нему. Вся необходимая процедура описана в файле docker-compose.yml.

img.png

Написание автотестов

После разворачивания приложения OpenCart были реализованы автотесты с использованием паттерна PageObject. Этот паттерн позволяет разделить тестовую логику и сами тесты непосредственно. Благодаря ему получается писать легко поддерживаемый код в стиле ООП. Тесты можно посмотреть вот здесь, а логику к ним вот тут.

Одним из критериев оценки проекта является реализация прикрепление скриншота к allure-отчету при падении. Данная фича присутствует в проекте как идущий "из коробки" хук pytest_runtest_makereport. Каждый тест передает свой контекст управления в этот хук с помощью механизма "yield справа" и если он имеет статус failed, то происходит прикрепление скриншота страницы к allure-отчету.

img.png

Заворачивание автотестов в докер

Все реализованные автотесты были завернуты в докер для обеспечения всегда детерминированной среды выполнения. Тут можно посмотреть Dockerfile для автотетсов.

Разворачивание Selenoid

Локально был развернут selenoid - своего рода обертка над докером для удобной работы с выполнением, отслеживанием и отладкой автотестов.

img.png

Разворачивание Jenkins

Самая тяжелая часть проекта. Куча ошибок и минимальные шансы нагуглить их исправление. Главная проблема - установка докер внутрь дженкинса. Никак не удавалось установить сертификаты и gpg keys. Проблему удалось решить, добавив параметр загрузки DEBIAN_FRONTEND=noninteractive. Тут можно посмотреть Dockerfile для Jenkins'a.

Следующим шагом нужно было настроить сборку, которая будет автоматически запускать тесты. img.png

Была реализована сборка, которая автоматически удаляет устаревшие сборки, имеет параметры для запуска, берет код из текущего репозитория и генерирует allure-отчет.

img.png

img_1.png

img.png

img.png

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published