首页 > 解决方案 > Selenium - Allure 不会创建屏幕截图

问题描述

我在使用 jenkins 在 allure 生成的报告中连接屏幕截图时遇到问题。1.我有一个叫ListenersT的接口

package Test;

import Test.resources.Base;
import io.qameta.allure.Allure;
import io.qameta.allure.Attachment;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.testng.ITestContext;
import org.testng.ITestListener;
import org.testng.ITestResult;

import java.io.ByteArrayInputStream;
import java.io.IOException;

public class ListenersT extends Base implements ITestListener {
    Base b = new Base();


    public void onFinish(ITestContext arg0) {
        // TODO Auto-generated method stub

    }


    public void onStart(ITestContext arg0) {
        // TODO Auto-generated method stub

    }

    public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
        // TODO Auto-generated method stub

    }


    public void onTestFailure(ITestResult result) {
        // TODO Auto-generated method stub
        //screenshot

        try {
            b.getScreenshot(result.getName());
        } catch (IOException e) {
            e.printStackTrace();
        }

        Object testClass = result.getInstance();
        WebDriver driver = ((Base) testClass).getDriver();
        if(driver instanceof WebDriver) {
            takeScreenshot(driver);
        }
    }

    @Attachment
    public byte[] takeScreenshot(WebDriver driver) {
        return ((TakesScreenshot)driver).getScreenshotAs(OutputType.BYTES);
    }


    public void onTestSkipped(ITestResult arg0) {
        // TODO Auto-generated method stub

    }

    public void onTestStart(ITestResult arg0) {
        // TODO Auto-generated method stub

    }

    public void onTestSuccess(ITestResult arg0) {
        // TODO Auto-generated method stub

    }


}

我在这里附上了屏幕截图支持

  1. 在每个测试中,侦听器“@Listeners ({ListenersT.class})”已添加到开头。

    @Listeners({ListenersT.class})

  2. 不过,我在生成的报告中看不到屏幕截图

在此处输入图像描述

请帮忙。

标签: mavenseleniumjenkinsscreenallure

解决方案


推荐阅读