当前位置: 首页 > 科技观察

测试驱动技术(TDD)系列:从Excel中读取数据

时间:2023-03-20 21:12:12 科技观察

测试框架中参数化的一般形式与Junit4和TestNG框架中的参数化形式几乎相同。Junit4定义参数化数据,代码如下:publicstaticCollectionprepareData(){Object[][]object={{1,2,3},{0,2,2},{0,3,3}};returnArrays。asList(object);}TestNG定义参数化数据,代码如下:@DataProviderpublicObject[][]dp1(){returnnewObject[][]{newObject[]{1,1,0},newObject[]{2,1,1},newObject[]{2,1,2},};}从excel中读取测试驱动数据的实现思路在上一篇文章中详细讲解了数组在java中的应用以及如何使用api来控制他们的excel文件。下面给大家讲解一下接口测试参数化测试框架中读取excel的核心代码和实现思路。1、首先我们看到测试数据的参数化返回值是Object[][]对象,那么我们需要写一个读取excel的方法,这个方法的返回值是Object[][],方法可以是定义为:Object[][]readExcel(Stringp_file,intp_sheetindex)2、excel中读取单元格的名称由行列确定,不同类型的单元格在读取值时使用不同的API。我们写了一个读取Cell值的方法,代码实现如下:.getCellType()==CellType.NUMERIC)//判断为数值类型{value=cell.getNumericCellValue();}elseif(cell.getCellType()==CellType.STRING)//判断为String类型{value=cell.getStringCellValue();}elseif(cell.getCellType()==CellType.BOOLEAN)//判断为BOOLEAN类型{value=cell.getStringCellValue();}else{value=cell.toString();//其他类型统一转换成String类型}returnvalue;}3.结合getCellVaule方法,我们写一个读取完整excel值的方法,返回值为Object[][],代码如下:publicstaticObject[][]readExcel(Stringp_file,intp_sheetindex){Workbookworkbook=null;Object[][]data=null;try{workbook=newXSSFWorkbook(newFileInputStream(p_file));Sheetsheet=workbook.getSheetAt(p_sheetindex);//获取第一个工作表。0代表第一个sheet页intiRowNum=sheet.getPhysicalNumberOfRows();//获取工作表的行数intiColumnNum=sheet.getRow(0).getPhysicalNumberOfCells();//获取工作表的列数data=newObject[iRowNum][iColumnNum];//通过行数和列数,创建一个二维数组来保存单元格中的数据for(inti=0;i