Урок 15. Автоматизация API-тестов: Allure Framework

📁 Блок: API-тестирование ⏱️ Время изучения: ~60 мин 🎯 Сложность: Продвинутая
#allure #reporting #pytest #api-testing #allure-step #allure-decorators

⚡ Кратко: Allure — наглядные отчёты для автотестов

Allure Framework — инструмент с открытым исходным кодом для генерации интерактивных HTML-отчётов по результатам автотестов. Интегрируется с pytest через пакет allure-pytest.

  • Разметка тестов: @allure.epic, @allure.feature, @allure.story, @allure.title, @allure.severity
  • Шаги: with allure.step("Описание"): — разбивают тест на видимые шаги в отчёте
  • @allure.step на методах: декорируй методы API-класса — шаги появятся автоматически при каждом вызове
  • Параметры в шагах: @allure.step("Удалить запись {id}") — значение подставится автоматически
  • Вложения: allure.attach(content, title, type) — прикрепи SQL-запрос, скриншот, лог
  • Запуск: pytest --alluredir=allure-resultsallure serve allure-results

Топ-3 ошибки: 1) Не установить allure CLI (только pip — отчёт не откроется). 2) Вложенные with allure.step работают, но слишком глубокое вложение ухудшает читаемость. 3) Декоратор @allure.step на методе и with allure.step вокруг вызова этого метода создают дублирующиеся шаги.

📖 О чём этот урок

Этот урок посвящён инструменту Allure Framework — стандарту отчётности в мире автоматизированного тестирования. После прохождения урока вы научитесь добавлять к автотестам наглядные интерактивные отчёты, размечать тесты декораторами для группировки, разбивать тесты на читаемые шаги, добавлять вложения (SQL-запросы, скриншоты, логи) и автоматизировать генерацию отчётов.

Что изучим

  • Allure Framework — назначение, возможности, интеграция с pytest
  • Установка и базовый запуск: allure-pytest, allure serve
  • Разметка тестов декораторами: @allure.epic, @allure.feature, @allure.story, @allure.title, @allure.description, @allure.severity, @allure.id
  • Шаги with allure.step: простые и вложенные
  • Оптимизация: @allure.step на методах API-класса и класса работы с БД
  • Динамические параметры в названиях шагов: "Удалить {id}"
  • Вложения (attachments): SQL-запросы, скриншоты, текстовые логи
  • Генерация статического отчёта и передача коллегам
  • Автоматизация прогона через bash-скрипт

📚 Что повторить перед изучением

🎯 Что изучать дальше