想要在selenium TestNG中将特定的excel行发送到dataprovider

时间:2018-05-17 14:24:50

标签: excel testng testng-dataprovider

我已经创建了一个10行×10列的excel。我希望dataprovider只返回那些在相应列中具有值“Y”的行。这将在执行测试套件和测试用例时使用将被执行的标记为“Y”。

需要你的帮助。

提前致谢。

请在下面找到我的代码: ......................................

@Test(dataProvider = "testdata")

public void Create(String TC_ID, String TC_Name, String Username, String Password, String aaa, String bbb, String ccc, String ddd, String eee, String fff, String ggg, String hhh, String iii, String jjj, String kkk, String lll) throws InterruptedException {

 

if (lll.equals("Y")) {

} else {

System.out.println("Testcases not flagged for Automation.." + "......." + TC_ID + "...." + TC_Name);

throw new SkipException("...Skipped....");

}

}

//  @AfterMethod

//

//  public void tearDown() {

//  driver.quit();

//  }


@DataProvider(name = "testdata")

public String[][] readExcel() throws BiffException, IOException {

File f = new File("C:/Test input/Test.xls");

Workbook wb = Workbook.getWorkbook(f);

Sheet s = wb.getSheet("Sheet1");

int rows = s.getRows();

int columns = s.getColumns();

//  System.out.println(rows);

//  System.out.println(columns);


String inputData[][] = new String[rows - 1][columns];

for (int i = 1; i < rows; i++) {

for (int j = 0; j < columns; j++) {

Cell c = s.getCell(j, i);

inputData[i - 1][j] = c.getContents();

 }

}
return inputData;

}

}

...................................... 我想在我的excel测试数据中添加一个列,其中将提到标志(Y / N)。只会执行Y标记的测试用例。 但是在我的代码中,Y标记的tcases正在被执行而其他的被跳过,那些跳过的测试用例也被添加到我不想要的testng报告中。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

您可以更新DataProvider本身的代码,而不是这样做,它应该只返回最后一列中有Y的列。 这将有所帮助,您将无法在测试报告中找到它们。