Урок 15. Автоматизация API-тестов: Allure Framework
⚡ Кратко: 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-results→allure 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-скрипт
📚 Что повторить перед изучением
- ← Урок 14: Summary session 7 — повторение основ Requests, CompanyApi, EmployeeApi
- Классы в Python:
__init__, методы, декораторы функций - pytest: запуск тестов,
assert, фикстуры,@pytest.mark - Библиотека
requests: GET/POST, заголовки,response.json()
🎯 Что изучать дальше
- → Урок 16: Summary session 8 — итоговое повторение курса Auto QA
- Интеграция Allure с CI/CD (GitHub Actions, Jenkins)
- Allure TestOps — облачная платформа для управления тест-результатами
- pytest-фикстуры уровня session/module для API-тестов