【发布时间】:2015-09-08 20:41:51
【问题描述】:
谁能告诉我如何使用 Selenium 中的数据提供程序从 Excel 工作表(最新的 Excel 文件格式)中检索数据的逻辑?
我主要是在数据提供者中寻找 for 循环逻辑。
【问题讨论】:
-
到目前为止你尝试过什么?
谁能告诉我如何使用 Selenium 中的数据提供程序从 Excel 工作表(最新的 Excel 文件格式)中检索数据的逻辑?
我主要是在数据提供者中寻找 for 循环逻辑。
【问题讨论】:
基本上,TestNG Data Provider 是您创建的任何东西。
如果要读取 xlsx 文件,则需要创建一个读取 excel 行并返回数据集的类。
@DataProvider(name = "data")
public static Object[][] returnExcelSheetData()
throws BiffException, IOException
{
String absolutePath = filePath.concat("/").concat(fileName); //path to excel file
FileInputStream file = new FileInputStream(new File(absolutePath));
Workbook workbook = Workbook.getWorkbook(file);
Sheet worksheet = workbook.getSheet(sheetName); //sheet name
int ROWS = worksheet.getRows() - 1; //if headers are present - use -1
int COLS = worksheet.getColumns(); //read all columns
Object[][] dataset = new Object[ROWS][COLS];
for (int rowCount = 0; rowCount < ROWS; rowCount++) {
for (int colCount = 0; colCount < COLS; colCount++) {
dataset[rowCount][colCount] = worksheet.getCell(colCount,
rowCount + 1).getContents();
}
}
workbook.close();
file.close();
return dataset;
for 循环遍历所有列和所有行并返回数据集。
如果只使用 1 行数据和 1 行表头,DataProvider 会将数据传递给测试。
如果使用2行数据,每行都会调用DataProvider的方法(2行数据2次)
【讨论】:
@DataProvider 的工作示例。这是完整的代码。您只需将数据提供者添加到您的@Test 类
JUnit 或TestNG。就个人而言,我使用TestNG,因为它更通用。