作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 allure 报告的 Selenide+Java 项目。我正在使用 TestExecutionListener 来处理浏览器设置,但我在弄清楚如何将屏幕截图添加到测试失败的报告中时遇到了一些极端困难。
我正在使用
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit5</artifactId>
<version>2.13.0</version>
<scope>test</scope>
</dependency>
在我的监听器代码中:
public class BrowserListener implements TestExecutionListener {
Browser browser;
@Override
public void executionStarted(TestIdentifier testIdentifier) {
if(testIdentifier.isTest()) {
browser = new Browser();
browser.openBrowser();
}
}
@Override
public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) {
//code here to log failed execution - ideally would like to put screenshot on failure
browser.close();
}
}
如何使用 Selenide/Junit 5 将屏幕截图添加到 Allure 报告?
最佳答案
我设法通过添加以下内容使其正常工作:
import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.WebDriverRunner;
import org.apache.commons.io.FileUtils;
import org.junit.platform.engine.TestExecutionResult;
import org.junit.platform.launcher.TestExecutionListener;
import org.junit.platform.launcher.TestIdentifier;
import org.openqa.selenium.NoSuchSessionException;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import java.io.File;
import java.io.IOException;
import static com.codeborne.selenide.Selenide.open;
import static com.codeborne.selenide.WebDriverRunner.getSelenideDriver;
import static io.qameta.allure.Allure.addAttachment;
@Override
public void executionFinished(TestIdentifier testIdentifier, TestExecutionResult testExecutionResult) {
if (testExecutionResult.getStatus().equals(TestExecutionResult.Status.FAILED)) {
try {
File screenshotAs = ((TakesScreenshot) getSelenideDriver().getWebDriver()).getScreenshotAs(OutputType.FILE);
addAttachment("Screenshot", FileUtils.openInputStream(screenshotAs));
} catch (IOException | NoSuchSessionException e) {
// NO OP
} finally {
WebDriverRunner.getSelenideDriver().getWebDriver().quit();
}
}
}
关于junit5 - 如何在 Allure 报告中添加屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59195989/
我是一名优秀的程序员,十分优秀!