Как в allure выборочно передавать данные из теста java при его прогоне?

При прогоне теста java+cucumber формируется отчёт. Но отчёт содержит только шаги из gerkin.feature. В качестве логера использую Slf4j. Требуется отдельные параметры прогона теста, возникающие в рантайме, логировать в allure.


Ответы (2 шт):

Автор решения: nikoshi

Здесь простые примеры добавления информации в отчёт (это далеко не все способы):

Первый способ: аннотация @Attachment см. здесь и здесь

Пометить этой аннотацией любой метод, который должен возвращать String или byte[]. Использовать аннотированный метод в любом месте в шаге теста/тесте.

Добавить текст:

@Attachment(value = "Заголовок вложения", type = "text/html")
public String sendMessageToReport(String message) {
    return message;
}

Использовать в шаге теста:

@Step
public void doSomething() {
    String id = getSomeId(); // получите ваш id и передайте в метод
    sendMessageToReport(id)
    // id будет в отчёте в разделе Test body > Step  ​
}

Добавить любой файл (документ, изображение, видео и пр.)

@Attachment
public static byte[] sendBytes(String resourceName) throws IOException {
    return Files.readAllBytes(Paths.get("src/main/resources", resourceName));
}

Использовать в шаге теста:

@Step
public void doSomething() {
    // передайте в метод имя документа, изображения, видео и пр.
    sendBytes("имя_файла")
    // файл будет в отчёте в разделе Test body > Step  ​
}

Аннотация @Attachment имеет 3 параматра: value/name — наименование вложения; type — тип информации в соответствии со стандартом MIME; fileExtension — опциональное расширение файла вложения, начинающееся с точки.

Второй способ: статический метод addAttachment из класса Allure см. здесь и здесь. Метод перегружен и принимает до 4 аргументов: 2 обязательны (заголовок вложения и прикладываемый контент в виде String или InputStream из нужного файла), 2 опциональны (расширение файла и MIME-тип).

Добавить текст:

@Step()
public void doSomething() {
    String id = getSomeId(); // получите ваш id и передайте в метод
    Allure.addAttachment("Заголовок вложения", id);
    // id будет в отчёте в разделе Test body > Step
}

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

→ Ссылка
Автор решения: Денис Кондратов

В результате подключил плагин: allure-maven и использовал в коде Allure.addAttachment("ID", "my id").

→ Ссылка