Как добавить allure плагин java

Как добавить allure плагин java

Интеграция Allure в Java-проект позволяет автоматически генерировать наглядные отчёты о выполнении автотестов. Эти отчёты содержат информацию о тест-кейсах, шагах, вложениях, а также хронологию выполнения. Поддерживаются JUnit, TestNG, Selenide и другие популярные фреймворки.

Для Maven-проекта необходимо подключить плагин io.qameta.allure. В файл pom.xml добавляется раздел <plugin> внутри <build>, в котором указывается идентификатор плагина, версия (например, 2.11.2), а также конфигурация генерации отчёта и пути к результатам. Дополнительно подключаются зависимости allure-junit5 или allure-testng в зависимости от используемого тестового фреймворка.

Если используется Gradle, в файл build.gradle добавляется плагин io.qameta.allure с помощью секции plugins или через buildscript. Указывается версия, пути к результатам и директория генерации отчётов. Для JUnit5 или TestNG также необходимо добавить соответствующие зависимости в секцию dependencies.

После запуска тестов и генерации результатов (в каталоге build/allure-results или target/allure-results) отчёт формируется командой allure serve или allure generate. Для этого необходимо предварительно установить CLI-версию Allure. Также возможно настроить автоматическую генерацию отчёта через CI/CD.

Подключение Allure к Maven-проекту

Подключение Allure к Maven-проекту

Для интеграции Allure в Maven-проект необходимо внести изменения в файл pom.xml. Сначала добавьте плагин Allure к разделу build:

<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.11.2</version>
<executions>
<execution>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>

Также необходимо указать зависимости для аннотаций:

<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit5</artifactId>
<version>2.25.0</version>
</dependency>

Если используется JUnit 4:

<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit4</artifactId>
<version>2.25.0</version>
</dependency>

Для генерации отчёта выполните:

mvn clean test
mvn allure:report

Генерируемый отчёт будет доступен в директории target/site/allure-maven-plugin. Для просмотра используйте команду:

mvn allure:serve

Если тесты запускаются через Surefire, убедитесь в его наличии и настройке:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M9</version>
</plugin>
@Epic("Авторизация")
@Feature("Успешный вход")
@Test
@Description("Проверка входа с корректными данными")
public void loginWithValidCredentials() {
// тестовая логика
}

Настройка плагина Allure в файле pom.xml

Настройка плагина Allure в файле pom.xml

Для интеграции Allure в Maven-проект необходимо добавить плагин allure-maven в секцию <build><plugins> файла pom.xml. Пример настройки:


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

Для корректной генерации отчётов требуется указать профиль, который будет вызывать нужные фазы. Добавьте следующий профиль в секцию <profiles>:


<profile>
<id>allure</id>
<build>
<plugins>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.11.2</version>
<executions>
<execution>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>

После запуска тестов командой mvn clean test отчёт можно сформировать через mvn allure:report или активировать профиль: mvn clean test -Pallure.

Убедитесь, что фреймворк тестирования поддерживает Allure (например, JUnit или TestNG) и соответствующий адаптер добавлен в зависимости. Для JUnit 5:


<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit5</artifactId>
<version>2.27.0</version>
</dependency>

Генерация возможна только при наличии результатов тестов в каталоге target/allure-results, который формируется автоматически при наличии адаптера. Без этого отчёт не будет создан.

Добавление зависимостей Allure для JUnit 4 и JUnit 5

Добавление зависимостей Allure для JUnit 4 и JUnit 5

Для подключения Allure в проект на Java с использованием JUnit необходимо добавить зависимости в файл pom.xml (если используется Maven) или build.gradle (если Gradle).

JUnit 4 (Maven):

<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit4</artifactId>
<version>2.27.0</version>
</dependency>

JUnit 4 (Gradle):

dependencies {
testImplementation 'io.qameta.allure:allure-junit4:2.27.0'
}

JUnit 5 (Maven):

<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit5</artifactId>
<version>2.27.0</version>
</dependency>

JUnit 5 (Gradle):

dependencies {
testImplementation 'io.qameta.allure:allure-junit5:2.27.0'
}

Обновлённая версия Allure может отличаться. Рекомендуется проверять актуальный номер на Maven Central или в репозитории GitHub.

Кроме зависимостей, необходимо подключить плагин для генерации отчётов. Для Maven это:

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

Для Gradle – плагин:

plugins {
id 'io.qameta.allure' version '2.11.2'
}

После добавления зависимостей и плагинов можно запускать тесты и собирать отчёт при помощи команд mvn clean test allure:report или ./gradlew clean test allureReport в зависимости от сборщика.

Генерация отчётов Allure через командную строку

Генерация отчётов Allure через командную строку

Для генерации отчётов Allure необходимо установить командную утилиту Allure CLI. Скачайте архив с официального сайта, распакуйте его и добавьте путь к bin-директории в переменную среды PATH.

После выполнения тестов с включённым Allure-адаптером будет создан каталог с результатами, обычно это allure-results. Убедитесь, что в нём присутствуют файлы *.xml, *.json и *.txt.

Для генерации отчёта используйте команду:

allure generate allure-results --clean -o allure-report

Опция --clean удаляет старую версию отчёта перед созданием новой. Путь -o allure-report указывает директорию для выходного HTML-отчёта. Каталог будет создан автоматически, если не существует.

Для запуска отчёта в браузере выполните:

allure open allure-report

Если необходимо сгенерировать отчёт без сохранения, используйте:

allure serve allure-results

Эта команда поднимает временный сервер и открывает отчёт в браузере без создания файлов на диске.

При ошибках генерации проверьте структуру каталога allure-results и убедитесь, что результаты тестов действительно туда сохраняются. Также проверьте, что используемая версия Allure CLI совместима с версией адаптера в проекте.

Интеграция Allure с CI/CD (на примере GitHub Actions)

Для генерации отчётов Allure в GitHub Actions потребуется настроить workflow с шагами сборки проекта, запуска тестов и публикации отчёта. Пример приведён для проекта на Maven.

  1. В корне проекта создать файл .github/workflows/tests.yml.
  2. Пример содержимого workflow-файла:
name: Run Tests with Allure
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Set up Maven
run: mvn -B clean install
- name: Run tests with Allure
run: mvn clean test allure:report
- name: Upload Allure results
uses: actions/upload-artifact@v3
with:
name: allure-results
path: target/allure-results
- name: Generate Allure report
run: |
wget https://github.com/allure-framework/allure2/releases/download/2.27.0/allure-2.27.0.tgz
tar -xzf allure-2.27.0.tgz
./allure-2.27.0/bin/allure generate target/allure-results --clean -o target/allure-report
- name: Upload Allure report
uses: actions/upload-artifact@v3
with:
name: allure-report
path: target/allure-report
  • В шаге mvn clean test allure:report запускаются тесты и формируются промежуточные данные для отчёта.
  • Генерация HTML-отчёта выполняется отдельно, так как GitHub Actions не поддерживает плагин Allure CLI напрямую.
  • Артефакты allure-results и allure-report сохраняются как результат выполнения workflow и доступны для скачивания в интерфейсе GitHub.

Для постоянного доступа к отчёту можно добавить шаг публикации в GitHub Pages или использовать сторонние решения для размещения отчётов.

Аннотации Allure в тестах: применение и примеры

Аннотации Allure в тестах: применение и примеры

Аннотации Allure предоставляют возможность добавлять метаинформацию к тестам, улучшая их отчётность и читабельность. Они позволяют интегрировать дополнительные данные, такие как описание, этапы теста, параметры и статус. Это повышает информативность тестов и делает отчёты более понятными.

Для работы с Allure в тестах Java используется набор аннотаций, каждая из которых выполняет свою роль. Рассмотрим основные из них:

@Step – используется для добавления шагов в тест. Аннотированные методы отображаются в отчете как отдельные шаги с возможностью подробного описания. Пример:

@Step("Пользователь выполняет вход в систему с логином {0} и паролем {1}")
public void login(String username, String password) {
// Логика входа в систему
}

Здесь {0} и {1} – это параметры метода, которые будут отображены в отчете, что улучшает восприятие происходящего. Аннотация упрощает добавление логирования шагов теста, что делает тесты более прозрачными.

@Attachment – используется для прикрепления файлов или данных к отчету. Это может быть полезно для прикрепления логов, скриншотов или других артефактов, которые могут помочь в анализе теста. Пример:

@Attachment(value = "Скриншот ошибки", type = "image/png")
public byte[] attachScreenshot() {
return takeScreenshot();
}

Этот метод прикрепляет скриншот к отчету Allure. Файл будет виден в соответствующем разделе отчёта, что позволяет визуализировать результаты теста.

@TmsLink – аннотация для связывания теста с системой отслеживания задач (например, JIRA). Она помогает привязать конкретный тест к задаче или багу, что улучшает управление тестированием. Пример:

@TmsLink("TMS-123")
public void testLogin() {
// Логика теста
}

После выполнения теста в отчете будет отображена ссылка на задачу в TMS-системе, что облегчает отслеживание выполнения задач и дефектов.

@Issue – используется для связывания тестов с дефектами. Пример:

@Issue("BUG-456")
public void testLoginFailure() {
// Логика теста с ошибкой
}

В отчете появится ссылка на баг, связанный с конкретным тестом, что позволяет быстро переходить к подробностям дефекта.

Использование аннотаций Allure позволяет значительно улучшить отчётность и качество тестирования, обеспечивая лучшее понимание и диагностику проблем на всех этапах тестирования.

Настройка отображения скриншотов и логов в отчёте

Настройка отображения скриншотов и логов в отчёте

Для эффективной визуализации тестов и их результатов Allure предоставляет возможность интегрировать скриншоты и логи в отчёт. Это помогает получить более полное представление о ходе тестирования, выявленных ошибках и состояниях приложения в момент их возникновения.

Чтобы настроить отображение скриншотов и логов, необходимо выполнить несколько шагов:

  • Добавление зависимостей Allure в проект, если они ещё не были добавлены. Для этого в файле pom.xml (если используете Maven) или build.gradle (если используете Gradle) нужно прописать соответствующие зависимости для Allure и Allure-аннотаций.
  • Включение добавления скриншотов в тесты. Для этого нужно использовать аннотацию @Attachment для прикрепления изображений к отчёту:

@Attachment(value = "Screenshot", type = "image/png")
public byte[] saveScreenshot(byte[] screenshot) {
return screenshot;
}

Этот метод будет вызываться в случае ошибки в тесте, автоматически прикрепляя снимок экрана в отчёт.

Для записи логов необходимо использовать подходящие логгер-методы и аналогичную аннотацию @Attachment, но для текста:


@Attachment(value = "Test Log", type = "text/plain")
public String saveLogs(String logs) {
return logs;
}

@Test
public void testWithLogs() {
logger.info("Test started");
// выполнение теста
logger.info("Test finished");
}
  • Для корректного отображения скриншотов и логов важно правильно настроить обработку ошибок. Лучше всего это делать в блоках try-catch, чтобы при возникновении исключений сохранялись все необходимые данные:

try {
// код теста
} catch (Exception e) {
saveScreenshot(getScreenshotBytes());
saveLogs("Error occurred: " + e.getMessage());
throw e;
}

В результате Allure добавит все вложенные скриншоты и логи в отчёт, что обеспечит удобную диагностику проблем. Также важно помнить, что скриншоты и логи будут храниться в соответствующих папках проекта, определённых в конфигурации Allure.

  • Настройка отчёта для отображения скриншотов и логов может зависеть от конфигурации плагина и версии Allure. Всегда проверяйте совместимость библиотек и настройку путей для корректной работы отчётов.

Обновление и устранение конфликтов версий Allure

При работе с плагином Allure в проекте Java важно следить за актуальностью используемой версии и избегать конфликтов с зависимостями. Allure активно обновляется, поэтому важно использовать последнюю стабильную версию для получения исправлений и улучшений.

Чтобы обновить Allure в проекте, нужно сначала проверить текущую версию в файле зависимостей, например, в pom.xml (для Maven) или build.gradle (для Gradle). В случае Maven можно указать последнюю версию Allure в разделе dependencies, обновив тег version. Для Gradle это делается через обновление соответствующей зависимости в секции dependencies.

Если проект использует несколько плагинов или зависимостей, которые могут иметь различные версии Allure, это часто приводит к конфликтам. Одним из способов решения проблемы является настройка исключений для зависимостей в файле pom.xml или build.gradle. В Maven это можно сделать с помощью тега exclusions внутри блока зависимостей. В Gradle – с помощью метода exclude.

Если при обновлении версии Allure возникают проблемы, например, с совместимостью старых отчетов или функциональностью, рекомендуется использовать стабильную версию, а не последнюю доступную. Также полезно проверять изменения в release notes на GitHub, чтобы избежать неожиданных изменений в API.

Для устранения конфликтов версий можно использовать подходы, такие как применение версии Allure только для тестирования или задания одной единой версии для всех зависимостей, используя механизм управления зависимостями, доступный в Maven или Gradle. Это помогает избежать ситуаций, когда разные компоненты проекта используют разные версии плагина, что может вызывать неожиданные ошибки при генерации отчетов.

При наличии конкретных конфликтов версий, полезно изучить логи сборки и отчет об ошибках для точного выявления причины. Часто это помогает понять, какие зависимости вызывают проблемы и как их правильно исключить или заменить.

Вопрос-ответ:

Что такое плагин Allure и зачем он нужен в проекте Java?

Allure — это инструмент для создания отчетов о тестах в формате HTML. Он предоставляет подробные отчеты с графиками, снимками экрана и логами, что помогает легче анализировать результаты тестирования. В проекте Java плагин Allure используется для генерации отчетов о результатах тестов, выполненных с помощью фреймворков, таких как JUnit или TestNG. Этот плагин полезен, когда нужно получить наглядную информацию о прохождении тестов в виде удобного отчета.

Ссылка на основную публикацию