我想在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
答案 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());