BMar_cg
(B Mar Cg)
25.Май.2018 13:15:44
#21
Вот таким способом так же создаются скрины, если без копирования кладутся в temp
Но заразы не аттачатся ни в какую.
@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);
}
ArtOfLife
(Sergey Korol)
25.Май.2018 15:37:38
#22
@BMar_cg зачем вам лишнее действие с сохранением скринов в файлы, если можно напрямую byte[]
отдавать Allure?
@Attachment(value = "{name}", type = "image/png")
public static byte[] attachScreenshot(String name, byte[] data) {
return data;
}
public static byte[] takeScreenshot(String name) {
return attachScreenshot(name, ((TakesScreenshot) getDriver()).getScreenshotAs(OutputType.BYTE));
}
P.S. С RemoteWebDriver
, если ничего в новых версиях не поменялось, еще аугментация нужна.
BMar_cg
(B Mar Cg)
25.Май.2018 15:51:39
#23
К сожалению так не работает, пробовал по разному передавать в byte, ни скринов ни аттачей.
Потом еще буду RemoteWebDriver подключать, но пока хочу хотя бы с обычным WebDriver разобраться.
ArtOfLife
(Sergey Korol)
25.Май.2018 16:07:31
#24
Ок, включаем режим экстрасенса. Какая версия Allure? Откуда атачи вызываются?
BMar_cg
(B Mar Cg)
25.Май.2018 16:21:57
#26
Аттачи вызываются прям из AllureReporter, на каждом шаге success
<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>
@Override
public void successful(final String step) {
updateStep(step);
getLifecycle().fire(new StepFinishedEvent());
// takeScreenshot();
try {
saveScreenAsImage();
} catch (IOException e) {
e.printStackTrace();
}
}
@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);
}
ArtOfLife
(Sergey Korol)
25.Май.2018 19:17:53
#27
В заголовке указан jbehave. Почему не используете специализированный адаптер? И зачем вам внутренние зависимости commons / generator?
А вообще, я вижу открытый issue о невозможности приатачить что-либо: Attachements adding not working in Allure-Jbehave. · Issue #157 · allure-framework/allure-java · GitHub
У вас только скриншоты не атачатся, или любые файлы? Если любые, то надо разбираться.