要使用Selenium来创建Allure截图,您需要先安装Selenium和Allure框架,并确保Java环境已正确配置。
以下是一个简单的示例代码,演示如何使用Selenium WebDriver和Allure框架创建截图:
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import io.qameta.allure.Allure;
import io.qameta.allure.Attachment;
@BeforeTest
public void setUp() {
System.setProperty("webdriver.chrome.driver", "path_to_chrome_driver");
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
AllureWebDriverListener.setDriver(driver);
}
@Test
public void testMethod() {
try {
// 执行测试步骤
} catch (Exception e) {
takeScreenshot();
throw e;
}
}
@Attachment(value = "Screenshot", type = "image/png")
public byte[] takeScreenshot() {
WebDriver driver = AllureWebDriverListener.getDriver();
return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
@AfterTest
public void tearDown() {
WebDriver driver = AllureWebDriverListener.getDriver();
if (driver != null) {
driver.quit();
}
}
请注意,上述示例代码中的"path_to_chrome_driver"应替换为您系统上Chrome浏览器驱动程序的实际路径。
此外,还需要添加必要的Allure监听器以支持截图。创建一个名为AllureWebDriverListener的类,并将其添加到测试套件中:
import org.openqa.selenium.WebDriver;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import io.qameta.allure.Attachment;
public class AllureWebDriverListener extends TestListenerAdapter {
private static ThreadLocal drivers = new ThreadLocal<>();
public static WebDriver getDriver() {
return drivers.get();
}
public static void setDriver(WebDriver driver) {
drivers.set(driver);
}
@Attachment(value = "Page Screenshot", type = "image/png")
public byte[] saveScreenshot(WebDriver driver) {
return ((TakesScreenshot) driver).getScreenshotAs(OutputType.BYTES);
}
@Override
public void onTestFailure(ITestResult result) {
WebDriver driver = getDriver();
if (driver != null) {
saveScreenshot(driver);
}
}
}
以上是一个基本示例,您可以根据自己的需求进行定制和扩展。完成后,您可以运行测试,并在Allure报告中查看截图。