如果我想在测试失败时获取屏幕截图,那么最佳做法是什么?我试着这样做:
1)覆盖AllureRunListener:
$fruits = array_map(function($index,$value) {
return ['index'=>$index,'value'=>$value];
},array_keys($fruits),$fruits);
方法 makeScreenshot(“失败屏幕截图”)是Util类中的静态方法:
public class SimpleScreenshotTestListener extends AllureRunListener{
@Override
public void testFailure(Failure failure) {
if (failure.getDescription().isTest()) {
fireTestCaseFailure(failure.getException());
} else {
startFakeTestCase(failure.getDescription());
fireTestCaseFailure(failure.getException());
finishFakeTestCase();
}
makeScreenshot("Failure screenshot");
}
}
3)在我的pom文件中,我使用了创建的监听器 的 SimpleScreenshotTestListener:
public final class Util {
private Util() {}
@Attachment(value = "{0}", type = "image/png")
public static byte[] makeScreenshot(String name) {
return ((TakesScreenshot) <Thread Local Driver>).getScreenshotAs(OutputType.BYTES);
}
}
我的问题是:这种方式是最好的方法,还是我应该这样做。