Java 是否可以在“范围报告”等步骤之间提供诱惑报告的屏幕截图?
我正在使用诱惑报告为我的测试生成报告。早些时候,我使用范围报告。正如您所知,在扩展报告中,您可以按创建日志和屏幕截图的顺序添加日志和屏幕截图,但在诱惑报告中,所有屏幕截图都将显示在步骤的末尾 我的问题:是否可以在步骤之间显示屏幕截图?我想在每个步骤后创建一个屏幕截图,我想在正确的位置看到它们,而不是在报告末尾看到它们。Java 是否可以在“范围报告”等步骤之间提供诱惑报告的屏幕截图?,java,selenium,selenium-webdriver,allure,selenium-extent-report,Java,Selenium,Selenium Webdriver,Allure,Selenium Extent Report,我正在使用诱惑报告为我的测试生成报告。早些时候,我使用范围报告。正如您所知,在扩展报告中,您可以按创建日志和屏幕截图的顺序添加日志和屏幕截图,但在诱惑报告中,所有屏幕截图都将显示在步骤的末尾 我的问题:是否可以在步骤之间显示屏幕截图?我想在每个步骤后创建一个屏幕截图,我想在正确的位置看到它们,而不是在报告末尾看到它们。 感谢您的帮助:)您可以通过在以下步骤中截图来调用方法: @Test(description = "Screenshot in Step") public void screens
感谢您的帮助:)您可以通过在以下步骤中截图来调用方法:
@Test(description = "Screenshot in Step")
public void screenshotInStepTest() {
driver.get("https://www.google.com");
step1();
step2();
step3();
}
@Step("Step 1")
public void step1(){
System.out.println("step 1");
}
@Step("Step 2 with screenshot")
public void step2(){
System.out.println("step 2");
screenshot();
}
@Step("Step 3")
public void step3(){
System.out.println("step 3");
}
@Attachment(value = "Screenshot", type = "image/png")
public byte[] screenshot() {
return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
更新:
import java.io.ByteArrayInputStream;
//...
@Step("Step 1")
public void step1(){
//...
Allure.addAttachment("Any text", new ByteArrayInputStream(((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES)));
}
报告:
您可以在步骤中通过截图调用方法:
@Test(description = "Screenshot in Step")
public void screenshotInStepTest() {
driver.get("https://www.google.com");
step1();
step2();
step3();
}
@Step("Step 1")
public void step1(){
System.out.println("step 1");
}
@Step("Step 2 with screenshot")
public void step2(){
System.out.println("step 2");
screenshot();
}
@Step("Step 3")
public void step3(){
System.out.println("step 3");
}
@Attachment(value = "Screenshot", type = "image/png")
public byte[] screenshot() {
return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
更新:
import java.io.ByteArrayInputStream;
//...
@Step("Step 1")
public void step1(){
//...
Allure.addAttachment("Any text", new ByteArrayInputStream(((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES)));
}
报告:
感谢您的回复。但是如果我在一个方法中有一些步骤,屏幕截图将出现在最后。正确的?我给这个问题附加了另一张图片。所有包含
screenshot()
方法的@Step
都会有一个屏幕截图。将screenshot()
方法添加到检查登录是否成功
,您将获得所需的屏幕截图。但是在方法内部不可能有Allure.step(“某物”)
。对吗?您可以使用Allure.addAttachment()
,检查答案更新我也测试了这个方法。更改附加的文件名有助于更轻松地找到它。但它仍然出现在最后,而不是它必须出现的地方。谢谢你的回复。但是如果我在一个方法中有一些步骤,屏幕截图将出现在最后。正确的?我给这个问题附加了另一张图片。所有包含screenshot()
方法的@Step
都会有一个屏幕截图。将screenshot()
方法添加到检查登录是否成功
,您将获得所需的屏幕截图。但是在方法内部不可能有Allure.step(“某物”)
。对吗?您可以使用Allure.addAttachment()
,检查答案更新我也测试了这个方法。更改附加的文件名有助于更轻松地找到它。但它仍然出现在最后,而不是必须出现的地方。