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