📝 Задания: Allure Framework

← К оглавлению урока

⚡ Задания из лекции

  1. Что такое Allure и зачем он нужен?
  2. Какие преимущества Allure?
  3. Какие декораторы используются в Allure?
  4. Как добавить вложения (SQL-запросы, скриншоты) в Allure?
  5. Как автоматизировать запуск тестов с генерацией отчёта Allure?

→ Решения

Теоретические вопросы (из лекции)

Задание 1

Что такое Allure Framework и зачем он нужен в автотестировании?

Задание 2

Перечислите основные возможности Allure Framework (4 категории).

Задание 3

Какие декораторы используются в Allure для разметки тестов? Опишите каждый.

Задание 4

Как в Allure добавить вложения (например, SQL-запросы или скриншоты)? Напишите сигнатуру метода и опишите параметры.

Задание 5

Как автоматизировать запуск тестов с генерацией отчёта Allure? Опишите последовательность команд.

Практические задания (код)

Задание 6

Добавьте разметку Allure к следующему классу тестов компаний. Используйте: @allure.epic, @allure.severity, @allure.story, @allure.feature, @allure.title.

# tests/test_companies.py  — ЗАДАНИЕ: добавить разметку Allure
class CompanyTest:
    api = CompanyApi("https://x-clients-be.onrender.com")

    def test_get_companies(self):
        result = self.api.get_company_list()
        assert len(result) > 0

    def test_get_active_companies(self):
        result = self.api.get_company_list(params_to_add={"active": True})
        assert all(c["isActive"] for c in result)

    def test_add_new(self):
        result = self.api.create_company("TestCompany")
        assert result["name"] == "TestCompany"

Задание 7

Разбейте метод test_add_new на явные шаги с помощью with allure.step. Шаги должны быть: «Получить количество ДО», «Создать компанию» (с вложенными шагами: «Сгенерировать название», «Вызвать API»), «Проверить поля», «Получить количество ПОСЛЕ», «Сравнить».

Задание 8

Добавьте декоратор @allure.step с динамическим параметром к методам следующего класса:

# api/company_api.py  — ЗАДАНИЕ: добавить @allure.step с параметрами
class CompanyApi:
    def get_company(self, id):
        ...

    def create_company(self, name, description=""):
        ...

    def delete(self, id):
        ...

В строке шага должны фигурировать значения параметров (id, name).

Задание 9

Добавьте в метод get_companies класса CompanyTable вложение SQL-запроса в отчёт Allure. Вложение должно иметь тип TEXT и содержательный заголовок.

Задание 10

Напишите PowerShell-скрипт run.ps1, который: очищает предыдущие результаты и отчёт, запускает тесты с записью в allure-results, генерирует HTML-отчёт в allure-report и открывает его в браузере.