大家好。 有一个使用BDD(Jbehave)(Thucydides)的现成项目
需要将“魅力”报告连接到项目。 为此,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()
那都不适合我。
通过这种方式,可以从屏幕上拍摄屏幕快照并添加其指定的文件夹BUT!它们未附加到报告中。
@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>