Как в allure выборочно передавать данные из теста java при его прогоне?
При прогоне теста java+cucumber формируется отчёт. Но отчёт содержит только шаги из gerkin.feature. В качестве логера использую Slf4j. Требуется отдельные параметры прогона теста, возникающие в рантайме, логировать в allure.
Ответы (2 шт):
Здесь простые примеры добавления информации в отчёт (это далеко не все способы):
Первый способ: аннотация @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").