在做的接口自动化测试中,把测试用例维护在excel表格中,通过Easy POI把用例中的行转成实体类对象,再通过testNG的@DataProvider注解把测试用例数据传递给测试方法执行用例。
<!-- 表格读取工具 -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>4.2.0</version>
</dependency>
??值的注意:实体类中需要有空参构造
只写了有参构造不写空参构造报错:Caused by: java.lang.RuntimeException: 创建对象异常
因为在读取excel数据的时候要利用空参构造创建对象
所以平时使用时要么不写任何构造,要么写空参+有参
public class CaseInfo {
//easy poi: 通过@Excel属性能够和excel的表头映射上去
@Excel(name = "序号(caseId)")
private int caseId;
@Excel(name = "接口模块(interface)")
private String interfaceName;
@Excel(name = "用例标题(title)")
private String title;
@Excel(name = "请求头(requestHeader)")
private String requestHeader;
//空参 有参构造方法
//getter setter
//......
}
/**
* 读取Excel指定sheet里面的全部数据
* @param sheetNumber 读取第几个sheet,从0开始,表示我们常说的第1个
* @return list集合
*/
public static List<CaseInfo> readExcelSheetAllDatas(int sheetNumber){
//读取用例文件
File file = new File(XXX);
//读取/导入excel的一些参数设置
ImportParams importParams = new ImportParams();
//设置读取第几个sheet
importParams.setStartSheetIndex(sheetNumber);
//读取Excel里面的数据(Easy Poi)
List<CaseInfo> listDatas = ExcelImportUtil.importExcel(file, CaseInfo.class, importParams);
return listDatas;
}
—— 读取Excel里面的数据(Easy Poi),返回实体类对象的List集合
? ? ?