如何在范围报告中打印selenium异常堆栈跟踪

问题描述 投票:2回答:3

我想在Extent报告中的Selenium测试中的每个步骤之后记录注释。因此,当在步骤中抛出异常时,我想捕获堆栈跟踪并将其打印在范围报告上。我在网上找不到任何帮助。有没有人试过这个并找到了办法?

例如,下面创建报告的实例并记录注释

// new instance

ExtentReports extent = new ExtentReports(file-path, replaceExisting);

// starting test

ExtentTest test = extent.startTest("Test Name", "Sample description");

// step log

test.log(LogStatus.INFO, "Click on the object");

Reference:

http://extentreports.relevantcodes.com/java/version2/docs.html#initialize-report

java selenium-webdriver report
3个回答
3
投票

如果要记录异常的堆栈跟踪,可以将Exception堆栈跟踪转换为String。该课程可在Apache commons-lang-3.3.4 jar ExceptionUtils.getStackTrace(e)获得

简单的例子

    try{
             int num[]={1,2,3,4};
             System.out.println(num[5]);
        }catch(Exception e){        
        test.log(LogStatus.INFO/ERROR, ExceptionUtils.getStackTrace(e));
        }

希望这有助于你...如果您有任何疑问,请回来


1
投票

或者你可以干脆做

catch (Exception e) {
    test.log(LogStatus.FAIL, e);
}

0
投票

由于不推荐使用ExceptionUtils

test.log(LogStatus.INFO/ERROR, ExceptionUtils.getStackTrace()); ->this won't help

所以我们可以使用

test.log(Status.INFO, "StackTrace Result: " + Thread.currentThread().getStackTrace());
© www.soinside.com 2019 - 2024. All rights reserved.