如何将屏幕截图附加到 ReportPortal

问题描述 投票:0回答:1

测试运行完毕后,进行截图

    public Screenshot TakeScreenshot()
    {
        return ((ITakesScreenshot)driver).GetScreenshot();
    }

如何将此屏幕截图附加到 ReportPortal??

c# selenium nunit reportportal
1个回答
0
投票

关于附件的一般文档:

https://reportportal.io/docs/dev-guides/AttachmentsGuide/#how-to-log-attachments-on-java-agents

GPT 生成示例:

<dependencies>
    <!-- ... -->
    <dependency>
        <groupId>com.epam.reportportal</groupId>
        <artifactId>client-java</artifactId>
        <version>5.0.9</version>
    </dependency>
    <!-- ... -->
</dependencies>
import com.epam.reportportal.message.ReportPortalMessage;
import com.epam.reportportal.service.ReportPortal;
import com.epam.ta.reportportal.ws.model.log.SaveLogRQ;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Calendar;

public class ReportPortalUtils {
    private static final Logger LOGGER = LoggerFactory.getLogger(ReportPortalUtils.class);

    public static void uploadScreenshot(File screenshotFile) {
        try (FileInputStream fis = new FileInputStream(screenshotFile)) {
            ReportPortalMessage message = new ReportPortalMessage(fis, screenshotFile.getName());
            SaveLogRQ saveLogRQ = new SaveLogRQ();
            saveLogRQ.setLogLevel("ERROR");
            saveLogRQ.setTestItemId(ReportPortal.getCurrentTestItem().get());
            saveLogRQ.setLogTime(Calendar.getInstance().getTime());
            saveLogRQ.setMessage("Screenshot of failed test");
            saveLogRQ.setFile(message.getFile());

            ReportPortal.emitLog(saveLogRQ);
        } catch (IOException e) {
            LOGGER.error("Failed to upload screenshot to ReportPortal", e);
        }
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.