测试运行完毕后,进行截图
public Screenshot TakeScreenshot()
{
return ((ITakesScreenshot)driver).GetScreenshot();
}
如何将此屏幕截图附加到 ReportPortal??
关于附件的一般文档:
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);
}
}
}