Как прикрепить скриншоты SOFTASSERT к отчету Allure? - PullRequest
1 голос
/ 04 ноября 2019

Я - ручной тестировщик, изучающий Selenium + Java на данный момент. Благодаря большому количеству блестящих ответов в Stack Overflow мне удалось сделать снимок экрана при сбое SoftAssert, но сейчас я пытаюсь прикрепить этот снимок экрана к отчету Allure. Может кто-нибудь сказать мне, что добавить в мой код, чтобы эти скриншоты были прикреплены к отчету Allure? Большое спасибо !!

//Override my onAssertFailure:**
public class CustomSoftAssert extends SoftAssert{

     @Override
     public void onAssertFailure(IAssert<?> assertCommand, AssertionError ex)
    {
         WebDriver driver = TestBase.getDriver1();
         Reporting.takeScreenshot(driver);
    }

//takeScreenshot method:
public static void takeScreenshot(WebDriver driver) {

    try 
    {
    TakesScreenshot ts=(TakesScreenshot) driver;
    File source=ts.getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(source, new File("./screenshots/"+System.currentTimeMillis()+".png"));
    System.out.println("Screenshot taken");
    } 
    catch (Exception e)
    {

    System.out.println("Exception while taking screenshot "+e.getMessage());
    } 
}
//onTestFailure method in AllureTestListener**
    @Override
    public void onTestFailure(ITestResult iTestResult) {
        System.out.println("I am in onTestFailure method " + getTestMethodName(iTestResult) + " failed");
        Object testClass = iTestResult.getInstance();
        WebDriver driver = TestBase.getDriver1();

        // Allure ScreenShotRobot and SaveTestLog
        if (driver instanceof WebDriver) {
            System.out.println("Screenshot captured for test case:" + getTestMethodName(iTestResult));
            saveScreenshotPNG(driver);
        }
        // Save a log on allure.
        saveTextLog(getTestMethodName(iTestResult) + " failed and screenshot taken.");      
    }```

...