编程语言
首页 > 编程语言> > Java 接口自动化系列--工具类之Excel测试数据解析封装

Java 接口自动化系列--工具类之Excel测试数据解析封装

作者:互联网

在进行数据解析时,先来看看excel测试数据格式,这里采用接口和测试数据分离的方式,即分为两个sheet页签分别存放接口信息,用例信息

 

 

  

 excel封装成对象步骤

1、导入easypoi的坐标
2、加载excel的流对象
3、导入参数对象ImportParams
4、工具ExcelImportUtil解析excel封装成List对象
5、添加java类API、Case和 excel中列的映射关系(@Excel)

 

具体来看下ExcelUtils这个类下面有哪几个方法:

1、read方法: 读取excel两个页签数据并封装成对象,返回值是List集合

clazz,对应的就是获取实体包entity 中API

params.setNeedVerify(true);  需要添加依赖, 验证, 该方法与实体类中的注解一起使用@NotNull,只要有一列数据为空的,则不读取数据,即跳过有空的数据   不建议每个参数都加  

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.4.Final</version>
</dependency>

<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.4</version>
</dependency>

 运行一下这个read方法 ,就可以读取出 excel  中接口信息页签的内容了

 不明白的可以看下importExcel方法, easypoi使用教程: http://easypoi.mydoc.io/

 

2、getAPIandCaseByApiId方法, 从已经读取好的所有List<API>和所有List<Case>两个集合中获取符合条件的数据

 

 

 

 执行后,可以看到打印的数据,是取出了所有的测试用例数据

 

 3、batchWrite方法,批量回写数据到excel 测试用例中,比如执行的结果

 

 

 

 

 4、close方法,流关闭

在批量回写数据到excel中时,为了方便,单独把关闭流的代码抽取出来封装成一个方法

 

 

 

/** * 批量回写 */public static void batchWrite() {FileInputStream fis = null;FileOutputStream fos = null;try {fis = new FileInputStream(Constants.EXCEL_PATH);Workbook workbook = WorkbookFactory.create(fis);Sheet sheet = workbook.getSheetAt(1);//回写,操作行和列//1、遍历wbdList集合for (WriteBackData wbd : wbdList) {//2、获取行号,获取row对象int rowNum = wbd.getRowNum();Row row = sheet.getRow(rowNum);//3、获取列号,获取cell对象int cellNum = wbd.getCellNum();Cell cell = row.getCell(cellNum, MissingCellPolicy.CREATE_NULL_AS_BLANK);//4、获取回写内容,设置到cell中。cell.setCellType(CellType.STRING);String content = wbd.getContent();cell.setCellValue(content);}//回写到文件中fos = new FileOutputStream(Constants.EXCEL_PATH);workbook.write(fos);} catch (Exception e) {e.printStackTrace();}finally {//抽取了一个close方法,选中需要抽取的代码,按下快捷键Shift+Alt+mclose(fis);close(fos);}}

标签:回写,Java,Excel,excel,测试数据,cell,获取,封装,方法
来源: https://www.cnblogs.com/wanshuang/p/12513472.html