2

我想在测试步骤之前和之后制作屏幕截图。

我怎么能做这个?

4

2 回答 2

1

谢谢你的问题。

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
    }
}
于 2014-09-28T16:29:57.927 回答
0

对此没有特别的解决方案。Allure 使用 AspectJ 拦截方法调用并检查存在的注释。如您所知,任何返回 byte[] 的方法上的@Attachment注释都可用于截屏。所以我会定义这样的注释方法并在必要时调用它:

@Attachment(value="A screenshot")
private byte[] takeScreenshot() {
    //Return screenshot content
}

@Step
private void myStep() {
    takeScreenshot();
    //Step logic
    takeScreenshot();
}
于 2014-09-26T05:41:55.027 回答