我想在测试步骤之前和之后制作屏幕截图。
我怎么能做这个?
谢谢你的问题。
Allure Java 适配器具有未记录的功能 -生命周期侦听器
生命周期监听器使用Java SPI
要解决您的问题,只需将以下类添加到您的类路径中
public class EachStepScreenshoter extends LifecycleListener {
@Override
public void fire(StepStartedEvent event) {
takeScreenshot();
}
@Override
public void fire(StepFinishedEvent event) {
takeScreenshot();
}
@Attachment(value="A screenshot")
private byte[] takeScreenshot() {
//Return screenshot content
}
}
对此没有特别的解决方案。Allure 使用 AspectJ 拦截方法调用并检查存在的注释。如您所知,任何返回 byte[] 的方法上的@Attachment注释都可用于截屏。所以我会定义这样的注释方法并在必要时调用它:
@Attachment(value="A screenshot")
private byte[] takeScreenshot() {
//Return screenshot content
}
@Step
private void myStep() {
takeScreenshot();
//Step logic
takeScreenshot();
}