大家好。 有一个使用 BDD (Jbehave) (Thucydides) 的现成项目
需要将 Allure 报告与项目联系起来。为此,AllureReporter 取自这里 allure-jbehave-reporter 报告正在工作,一切都很好。
但是有一个大问题,测试是在 Selenium Hub 上的 RemoteWebDriver 的帮助下开始的。我们需要屏幕截图来了解问题所在,以及那里发生了什么。
目前,Allure 没有截取屏幕截图。也就是说,不会从屏幕上截取屏幕截图,也不会附加任何屏幕截图。
试过:
@Attachment(value = "Page screenshot", type = "image/png")
public byte[] saveScreenshot(byte[] screenShot) {
return screenShot;
}
和
public static byte[] takeScreenshot() {
WebDriver driver = ThucydidesWebDriverSupport.getDriver();
if (WebDriverFactory.isAlive(driver) && (driver instanceof TakesScreenshot)) {
return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
return null;
}
和
Allure.addAttachment()
这一切都不适合我。
这种方式有效,从屏幕上截取屏幕截图并添加他们指定的文件夹,但是!它们没有附在报告中。
@Attachment(value = "Page screenshot", type = "image/png")
public byte[] saveScreenAsImage() throws IOException {
WebDriver driver = ThucydidesWebDriverSupport.getDriver();
File file = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(file, new File("target/allure-results/" + file.getName()));
return Files.toByteArray(file);
}
有什么想法可以解决这个问题吗?
提前致谢。
这是POM
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-java-commons</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-generator</artifactId>
<version>2.5.0</version>
</dependency>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.9</version>
<configuration>
<reportVersion>2.6.0</reportVersion>
<allureDownloadUrl>https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.6.0/allure-2.6.0.zip</allureDownloadUrl>
</configuration>
<executions>
<execution>
<id>allure-report</id>
<phase>post-integration-test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>