在Selenium Java中,可以使用Apache POI库来从Excel文件中获取@tag到CucumberOptions。
首先,需要在项目中添加Apache POI的依赖。可以在Maven项目中的pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
接下来,可以创建一个ExcelUtils类来处理Excel文件的读取操作。以下是一个示例代码:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
public class ExcelUtils {
public static Object[][] getTagsFromExcel(String filePath, String sheetName) throws IOException {
FileInputStream file = new FileInputStream(filePath);
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheet(sheetName);
int rowCount = sheet.getLastRowNum();
int colCount = sheet.getRow(0).getLastCellNum();
Object[][] data = new Object[rowCount][colCount];
for (int i = 0; i < rowCount; i++) {
Row row = sheet.getRow(i + 1);
for (int j = 0; j < colCount; j++) {
Cell cell = row.getCell(j);
data[i][j] = cell.getStringCellValue();
}
}
workbook.close();
file.close();
return data;
}
}
上述代码中,getTagsFromExcel方法接收Excel文件的路径和工作表名称作为参数,并返回一个二维数组,其中包含从Excel文件中读取的@tag数据。
在CucumberOptions注解中,可以使用tags参数来指定要运行的测试用例。可以在测试类中使用ExcelUtils类来获取@tag数据,并将其传递给CucumberOptions注解。以下是一个示例代码:
import cucumber.api.CucumberOptions;
import cucumber.api.testng.AbstractTestNGCucumberTests;
import org.testng.annotations.DataProvider;
public class TestRunner extends AbstractTestNGCucumberTests {
@DataProvider(parallel = true)
public Object[][] scenarios() throws IOException {
String excelFilePath = "path/to/excel/file.xlsx";
String sheetName = "Sheet1";
return ExcelUtils.getTagsFromExcel(excelFilePath, sheetName);
}
@CucumberOptions(
features = "src/test/resources/features",
glue = "stepdefinitions",
tags = "@tag",
plugin = {"pretty", "html:target/cucumber-reports"}
)
public class TestRunner extends AbstractTestNGCucumberTests {
}
}
在上述代码中,通过@DataProvider注解提供了一个名为scenarios的数据提供程序,该数据提供程序使用ExcelUtils类从Excel文件中获取@tag数据。然后,将获取的@tag数据传递给CucumberOptions注解的tags参数。
这样,在运行测试时,Cucumber将根据Excel文件中的@tag数据来选择要运行的测试用例。
请注意,以上示例代码仅演示了如何从Excel文件中获取@tag数据,并将其传递给CucumberOptions注解。实际项目中,还需要根据具体需求进行适当的修改和调整。
领取专属 10元无门槛券
手把手带您无忧上云