java - 如何从 Excel 表中提供的测试数据中打印日志以显示在范围报告中。我正在使用带有 testng 和 maven 的混合框架
问题描述
在 Keyword.java 类中,我包括了这个:
public void logs(String data) throws Throwable
{
extent = new ExtentReports();
test = extent.createTest("SomeName");
htmlReporter = new ExtentHtmlReporter("Test.html");//Constructor takes a path
extent.attachReporter(htmlReporter);
test.info( data);
在 ExecuteLeadTest.java 我有这个代码:
@Test
public void salesBooking() throws Throwable {
System.out.println("Start Sales Booking function...........");
key.logs(data);
SalesBooking exetest = new SalesBooking();
String filePath = "..//FarmERPAutomation//src//test//java//datafile//FarmERPTestCase -
Sales Booking.xlsx";
String sheetName = "Sales Booking";
exetest.readExcelfile(filePath, sheetName);
System.out.println("End Sales Booking function.............");
}
public void readExcelfile(String filePath, String sheetName) throws Throwable {
ArrayList a = new ArrayList();
File src = new File(filePath);
FileInputStream file = new FileInputStream(src);
XSSFWorkbook b = new XSSFWorkbook(file);
Sheet s = b.getSheet(sheetName);
Iterator itr = s.iterator();
while (itr.hasNext()) {
Row rowitr = (Row) itr.next();
Iterator cellitr = rowitr.cellIterator();
while (cellitr.hasNext()) {
Cell celldata = (Cell) cellitr.next();
switch (celldata.getCellType()) {
case Cell.CELL_TYPE_STRING:
a.add(celldata.getStringCellValue());
break;
case Cell.CELL_TYPE_NUMERIC:
a.add(celldata.getNumericCellValue());
break;
case Cell.CELL_TYPE_BOOLEAN:
a.add(celldata.getBooleanCellValue());
break;
}// switch
} // while
} // while
SalesBooking exetest = new SalesBooking();
exetest.forloop(a);
file.close();
}
public void forloop(ArrayList a) throws Throwable {
Keywords key = new Keywords();
SalesBooking exetest = new SalesBooking();
for (int i = 0; i < a.size(); i++) {
// openbrowser
if (a.get(i).equals("openbrowser")) {
String keyword = (String) a.get(i);
String data = (String) a.get(i + 1);
String objectname = (String) a.get(i + 2);
String runmode = (String) a.get(i + 3);
System.out.println(keyword);
System.out.println(data);
System.out.println(objectname);
System.out.println(runmode);
if (runmode.equals("yes")) {
key.openbrowser();
}
}
if (a.get(i).equals("logs")) {
String keyword = (String) a.get(i);
String data = (String) a.get(i + 1);
String objectname = (String) a.get(i + 2);
String runmode = (String) a.get(i + 3);
System.out.println(keyword);
System.out.println(data);
System.out.println(objectname);
System.out.println(runmode);
if (runmode.equals("yes")) {
key.logs(data);
}
}
尽管在 excel 表中获取日志关键字,为什么销售预订没有从关键字调用 logs() 方法并使用日志生成范围报告?
如果这是错误的过程,请就如何在范围报告中从 Excel 表打印日志提出替代方案。
解决方案
推荐阅读
- sql-server - 如何捕获 SQL Server 脚本/代码中出现的所有错误消息
- push - Prometheus 推送网关
- javascript - Javascript中反引号内的if语句
- delphi - 我在 Delphi 中从 IHTMLDocument2 获取超链接时遇到问题
- r - 在特定事件发生之前拉出每一行的某种方法
- jquery - 是否可以使用旧 jQuery 版本运行我的部分代码
- python - 验证准确性没有改变
- r - 在字符串中的特定单词之后提取设置的字符数
- android - 消息:未找到 Repo 'maven'
- pyspark - 如何以小时而不是秒为单位过滤时间戳?