Selenide JUnit Report Portal не прикрепляются скриншоты к отчётам

Всем привет! Пишу тесты, использую стек:
Java + JUnit5 + Selenide + Log4j + ReportPortal

Добавил в ресурсы конфиги для Log4J


Добавил создание скриншота:

package ru.alfabank.helpers;

import com.codeborne.selenide.Selenide;
import org.openqa.selenium.OutputType;

import java.io.File;

public class AttachScreen {

    public static byte[] createScreenBytes() {
        return Selenide.screenshot(OutputType.BYTES);
    }

    public static File createScreenFile() {
        return Selenide.screenshot(OutputType.FILE);
    }
}

Прикрепление скриншотов в RP

package ru.alfabank.utils;

import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.WebDriverRunner;
import com.codeborne.selenide.commands.TakeScreenshot;
import com.codeborne.selenide.Screenshots;
import com.epam.reportportal.message.ReportPortalMessage;
import lombok.SneakyThrows;
import lombok.experimental.UtilityClass;
import lombok.extern.log4j.Log4j2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.util.Base64;

@Log4j2
@UtilityClass
public class LoggingUtils {

    private static final Logger LOGGER = LoggerFactory.getLogger("binary_data_logger");

    private static final String RP_BASE64 = "RP_MESSAGE#BASE64#{}#{}";

    public static void attachScreen(byte[] bytes, String message) {
        log.info(RP_BASE64, Base64.getEncoder().encodeToString(bytes), message);
    }

    public static void attachScreen(File file, String message) {
        log.info(RP_BASE64, file.getAbsolutePath(), message);
    }
}

И вызываю функцию для прикрепления скриншота в RP

package ru.alfabank.pages;

import com.codeborne.selenide.*;
import com.codeborne.selenide.ex.ElementNotFound;
import com.epam.reportportal.annotations.Step;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Component;
import ru.alfabank.helpers.AttachScreen;
import ru.alfabank.utils.LoggingUtils;

import static com.codeborne.selenide.Condition.text;
import static com.codeborne.selenide.Condition.visible;
import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.$$;

@Log4j2
@Component
public class ITTicketsPage {

    private static final ElementsCollection TICKETS_COLLECTION = $$(".application__cell p");
    private static final SelenideElement TICKETS_NOT_ACCESS = $(".application__row").find("p");

    @Step("Проверяем, содержится ли номер заявки {extend} в группе заявок")
    public boolean isNumTicket(String extend) {
        LoggingUtils.attachScreen(AttachScreen.createScreenFile(), "");
        String numberTicket;
        try {
            TICKETS_COLLECTION.findBy(text(extend)).shouldBe(visible);
            numberTicket = TICKETS_COLLECTION.findBy(text(extend)).getText();
            return numberTicket.substring(0, numberTicket.indexOf(" ")).length() == extend.length();
        } catch (ElementNotFound e) {
            numberTicket = TICKETS_NOT_ACCESS.shouldHave(text(extend)).getText();
            String actualNumber = numberTicket.substring(numberTicket.indexOf("'") + 2);
            return actualNumber.substring(0, actualNumber.indexOf(" ")).length() == extend.length();
        }
    }
}

Но в RP нет скриншотов.

2022-09-20_12-21-10

Подключил fraemwork logger-java-logback, скопировал конфиг с сайта reportportala и ура, всё заработало)

1 лайк