在Selenium中,可以使用TestNG的@DataProvider注解来提供测试数据,并且可以通过监听器的方式获取测试结果并将其保存到Excel中。
首先,需要导入TestNG和Apache POI的依赖包,以便使用相关的注解和类。在Maven项目中,可以在pom.xml文件中添加以下依赖:
<dependencies>
<!-- TestNG -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.4.0</version>
</dependency>
<!-- Apache POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
</dependencies>
接下来,创建一个测试类,并在测试方法上使用@DataProvider注解来提供测试数据。同时,使用TestNG的监听器接口ITestListener来监听测试结果。
import org.testng.annotations.DataProvider;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test;
import org.testng.ITestListener;
import org.testng.ITestResult;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
@Listeners(TestListener.class)
public class SeleniumTest {
@Test(dataProvider = "testData")
public void testMethod(String data) {
// 测试逻辑
}
@DataProvider(name = "testData")
public Object[][] testData() {
// 提供测试数据
return new Object[][] {
{"data1"},
{"data2"},
{"data3"}
};
}
}
然后,创建一个实现ITestListener接口的监听器类,并在其中实现获取测试结果并将其保存到Excel的逻辑。
import org.testng.ITestListener;
import org.testng.ITestResult;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class TestListener implements ITestListener {
@Override
public void onTestFailure(ITestResult result) {
saveResultToExcel(result, "Failure");
}
@Override
public void onTestSuccess(ITestResult result) {
saveResultToExcel(result, "Success");
}
private void saveResultToExcel(ITestResult result, String status) {
String methodName = result.getMethod().getMethodName();
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Test Results");
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("Test Method");
cell = row.createCell(1);
cell.setCellValue("Status");
row = sheet.createRow(1);
cell = row.createCell(0);
cell.setCellValue(methodName);
cell = row.createCell(1);
cell.setCellValue(status);
try {
FileOutputStream outputStream = new FileOutputStream("test_results.xlsx");
workbook.write(outputStream);
workbook.close();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上代码中,onTestFailure方法和onTestSuccess方法分别在测试方法执行失败和成功时被调用,将测试结果保存到Excel中。saveResultToExcel方法创建一个新的Excel文件,创建一个名为"Test Results"的工作表,将测试方法名和测试结果写入第一行和第二行,最后将文件保存到本地。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改和扩展。
推荐的腾讯云相关产品:腾讯云对象存储(COS),用于存储和管理Excel文件。产品介绍链接地址:https://cloud.tencent.com/product/cos
领取专属 10元无门槛券
手把手带您无忧上云