记录一次简单TestNG + JAVA搭建接口测试
开发环境: Excel + TestNG + Java
一、具体流程
主要分为3个步骤: 测试用例(@Test) + 数据驱动(@DataProvide) + 获取数据源(read Excel)。
1. 测试用例 @Test
public class TestExample {
@Test(description = "登录测试", dataProvider = "LoginData", dataProviderClass = DataExample.class)
public void Test_GetBanner(String username, String password, String validate, String description) throws TException {
// 测试用例
}
}
2. 采取@DataProvide 数据驱动的方式,获取数据源不在同一个类中。具体如下:
public class DataExample {
private static String dataPath = Base.getConfig("test_data_path");
@DataProvider(name = "LoginData")
public static Object[][] getLoginData() throws IOException {
return FileUtils.readExcel( dataPath + "LoginData.xlsx");
}
}
3. 其中FileUtils 读取Excel文件如下,TestNG需要返回Object[][]类型:
public class FileUtils {
public static Object[][] readExcel(String filePath) throws IOException{
InputStream in = new FileInputStream(filePath);
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(in);
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
int rowNum = xssfSheet.getLastRowNum();
int columNum = xssfSheet.getRow(0).getPhysicalNumberOfCells();
Object[][] testdata = new Object[rowNum][columNum];
for (int index = 1; index <= rowNum; index++) {
XSSFRow xssfRow = xssfSheet.getRow(index);
for (int collx=0; collx < columNum; collx++) {
xssfRow.getCell(collx).setCellType(Cell.CELL_TYPE_STRING);
testdata[index-1][collx] = xssfRow.getCell(collx).getStringCellValue();
}
}
xssfWorkbook.close();
return testdata;
}
}
二、注意问题
1. 参数:测试case处参数需要和返回参数数量对应,且数据类型一致,返回的都是String类型,所有此处都是String。
读取数据处有问题,一般为Test ignored。

2. dataProvider在单独的一个文件中,为static方法。
本文记录了一次使用TestNG、Java和Excel进行接口测试的实践过程。通过3个步骤——定义测试用例、数据驱动和读取Excel数据源,详细阐述了如何在开发环境中实现接口测试。注意点包括测试用例参数与数据源的对应,以及dataProvider方法的静态属性。
864

被折叠的 条评论
为什么被折叠?



