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

时间:2016-02-25 06:11:17

标签: java selenium-webdriver report

我想在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

3 个答案:

答案 0 :(得分:2)

如果要记录异常的堆栈跟踪,可以将Exception堆栈跟踪转换为String。此课程可在Apache commons-lang-3.3.4 jar function tien(n) { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ma-sach"); var last = sheet.getLastRow(); var data = sheet.getRange(1,1,last,2).getValues(); var kq = 0; var ma = new Array(last); var tien = new Array(last); n = n.replace(" ",""); n = n.toUpperCase(); if (n.search("BONUS") !== -1) { n = n.replace("BONUS",0)} for (var i = 0; i < last; i++){ ma[i] = data[i][0]; tien[i] = data[i][1]; while (n.search(ma[i]) !== -1){ var j = n.search(ma[i]); n = n.replace(ma[i],""); if (n.charAt(j)=="("){var sl = parseInt(n.charAt(j+1))}else{var sl = 1}; kq = kq + tien[i]*sl; } } return kq; }

中找到

简单示例

ExceptionUtils.getStackTrace(e)

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

答案 1 :(得分:1)

或者你可以简单地做

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

答案 2 :(得分:0)

自ExceptionUtils被弃用以来

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

所以我们可以使用

test.log(Status.INFO, "StackTrace Result: " + Thread.currentThread().getStackTrace());