Что такое Allure Framework и как его используют в тестировании?

Ответ

Allure Framework — это инструмент для создания интерактивных и наглядных отчётов о выполнении автотестов. Он агрегирует данные из популярных тестовых фреймворков (JUnit, TestNG, pytest и др.) и представляет их в виде веб-отчёта с детализацией по шагам, вложениям и метаданным.

Ключевые возможности:

  • Аннотации для структурирования: Позволяют добавлять описание, разбивать тест на шаги, задавать важность и функциональность.
  • Вложения (аттачи): К отчёту можно прикреплять скриншоты, логи, XML-данные и другие файлы для упрощения анализа падений.
  • Группировка и фильтрация: Тесты группируются по наборам (suites), severity (критичность), story/feature (функциональность).
  • Интеграция с CI/CD: Отчёты легко встраиваются в пайплайны (Jenkins, GitLab CI).

Пример настройки и использования с Maven и JUnit 5:

  1. Добавление плагина в pom.xml:
    <plugin>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-maven</artifactId>
        <version>2.10.0</version>
    </plugin>
  2. Использование аннотаций в тесте:

    import io.qameta.allure.*;
    
    @Test
    @DisplayName("Проверка успешного логина")
    @Story("Авторизация")
    @Severity(SeverityLevel.BLOCKER)
    public void testSuccessfulLogin() {
        Allure.step("Открыть страницу логина");
        // ... код шага
        Allure.step("Ввести валидные креденшелы");
        // ... код шага
        Allure.attachment("Скриншот после логина", Files.readAllBytes(screenshotPath));
    }
  3. Генерация отчёта: После запуска тестов (mvn test) отчёт генерируется командой mvn allure:serve и автоматически открывается в браузере.

Ответ 18+ 🔞

А, ну ты смотри, какой красавчик подъехал — Allure Framework, блядь! Это ж не просто отчёт, это целый театр с подробностями, где каждый проваленный тест — это не просто строчка в логе, а целая драма с аннотациями, скриншотами и прочей хуйнёй, чтобы даже менеджер, который в коде нихуя не шарит, мог посмотреть и сказать: «О, тут скриншотик, а тут логи, а тут, сука, всё сломалось!».

Что он умеет, этот красавчик:

  • Аннотации, блядь: Ты можешь тест разбить на шаги, как в кулинарном рецепте — «взять ложку», «перемешать», «получить пиздюлей от продакшена». И всё это будет красиво в отчёте.
  • Вот это вот всё прикрепить можно: Упал тест? Не просто «упал», а «упал, вот скриншот, вот логи, вот XML, разбирайся, долбоёб». Красота, ёпта!
  • Разложить по полочкам: Группирует тесты по сьютам, по критичности, по фичам — хочешь, смотри только самые важные, хочешь — все подряд, как в помойке.
  • В CI/CD встроится: Дженкинс, Гитлаб — ему похуй, везде приткнётся и отчёт нарисует.

Смотри, как это выглядит на практике, с Maven и JUnit 5, чтобы не быть, как тот Герасим, который только «Му-му» мычит:

  1. В pom.xml эту хрень добавить надо:

    <plugin>
        <groupId>io.qameta.allure</groupId>
        <artifactId>allure-maven</artifactId>
        <version>2.10.0</version>
    </plugin>

    Без этого — нихуя не заработает, как без костылей.

  2. А в тесте уже начинается магия, блядь:

    import io.qameta.allure.*;
    
    @Test
    @DisplayName("Проверка успешного логина") // Чтоб не test1, а понятно было
    @Story("Авторизация") // К какой басне относится
    @Severity(SeverityLevel.BLOCKER) // Важность — если сломается, всё, пиздец, блокер!
    public void testSuccessfulLogin() {
        Allure.step("Открыть страницу логина"); // Шаг первый, ёбана
        // ... тут код, который открывает
        Allure.step("Ввести валидные креденшелы"); // Шаг второй
        // ... тут код, который вводит
        Allure.attachment("Скриншот после логина", Files.readAllBytes(screenshotPath)); // А вот и скриншотик, на тебе!
    }
  3. А потом, сука, самое сладкое: Запустил тесты (mvn test), они там поработали, нагенерировали кучу JSON-ов в папочку target/allure-results. А потом пишешь mvn allure:serve — и он тебе, этот хитрожопый фреймворк, локальный сервер поднимает и в браузере открывает отчёт такой красивый, интерактивный, что аж ебушки-воробушки! Всё видно, по чему кликать, где смотреть. Во, блядь, удобно!

Вот и весь сказ. Не просто «упало/не упало», а целая инспекция с доказательной базой. Чистая бюрократия, но полезная, ёпта.