在使用TestNG框架的情况下,可以通过以下步骤来截取失败测试用例的截图:
以下是一个示例代码:
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;
import org.testng.Reporter;
public class TestFailureListener implements ITestListener {
@Override
public void onTestFailure(ITestResult result) {
// 获取当前测试用例的相关信息
String className = result.getTestClass().getName();
String methodName = result.getMethod().getMethodName();
// 获取WebDriver实例,并进行截图
WebDriver driver = YourWebDriverFactory.getDriver();
File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
// 保存截图文件
String screenshotPath = "path/to/save/screenshot/" + className + "_" + methodName + ".png";
try {
FileUtils.copyFile(screenshotFile, new File(screenshotPath));
} catch (IOException e) {
e.printStackTrace();
}
// 在测试报告中展示截图
Reporter.log("Failure screenshot: <img src=\"" + screenshotPath + "\" width=\"800\" height=\"600\" />");
}
// 其他方法的实现省略...
}
在TestNG的测试类中,添加监听器:
@Listeners(TestFailureListener.class)
public class YourTestNGTestClass {
// 测试方法的实现...
}
这样,在测试用例执行失败时,监听器会自动截取截图,并在测试报告中展示。请注意,以上代码仅为示例,具体实现可能需要根据你的项目和框架进行调整。
领取专属 10元无门槛券
手把手带您无忧上云