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 测试用例中,比如执行的结果
批量回写excel
1、执行call()获取回写body,同时获取到caseId以及固定列号,封装成一个wbd对象。
2、把wbd对象存储到List集合,方便一次性回写。
3、执行@AfterSuite方法时批量回写,遍历回写集合获取所有需要回写的行号、列号、数据。
rowNum,cellNum,content -->创建类
4、close方法,流关闭
在批量回写数据到excel中时,为了方便,单独把关闭流的代码抽取出来封装成一个方法