之前文章实现了一个简单的接口自动化测试用例,下面的文章将讲解如何将测试用例进行优化,并用Excel表格进行数据驱动,将测试结果输出到Excel。
首先我们先说一下数据驱动,数据驱动即通过读取文件内容,将所需要的数据通过文件读写的方式进行输入输出。
这里我推荐使用Excel来进行数据驱动。
1.数据驱动:
这里我新建了一个ExcelUtil类来进行数据驱动方法的封装。
有如下几个方法:
①构造方法
/**
* 构造函数,初始化Excel数据
* @param filePath
* @param sheetName
*/
ExcelUtil(String filePath,String sheetName){
FileInputStream fileInputStream = null;
try {
fileInputStream = new FileInputStream(filePath);
XSSFWorkbook sheets = new XSSFWorkbook(fileInputStream);
//获取sheet
sheet = sheets.getSheet(sheetName);
sheets.close();
} catch (Exception e) {
e.printStackTrace();
}
}
②根据行号和列号来取得对应数据
/**
* 根据行号和列号来取得对应数据
* @param row
* @param column
* @return
*/
public String getExcelDateByIndex(int row,int column){
XSSFRow row1 = sheet.getRow(row);
String cell = row1.getCell(column).toString();
return cell;
}
③清理Excel里的内容(后续为了存入数据)
/**
* 清理excel里的内容
* @throws IOException
*/
public void CleanExcelDataToIndex() throws IOException {
File finalXlsxFile = new File("F:\\test_work_csj\\接口自动化\\test.xlsx");
Workbook workBook = getWorkbok(finalXlsxFile);
// sheet 对应一个工作页
Sheet sheet = workBook.getSheetAt(1);
/**
* 删除原有数据,除了属性行
*/
int rowNumber = sheet.getLastRowNum(); // 第一行从0开始算
for (int i = 1; i <= rowNumber; i++) {
Row row = sheet.getRow(i);
sheet.removeRow(row);
}
Out