千家信息网

测试驱动技术系列之:怎么从excel中读取数据

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍"测试驱动技术系列之:怎么从excel中读取数据",在日常操作中,相信很多人在测试驱动技术系列之:怎么从excel中读取数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法
千家信息网最后更新 2026年11月02日测试驱动技术系列之:怎么从excel中读取数据

这篇文章主要介绍"测试驱动技术系列之:怎么从excel中读取数据",在日常操作中,相信很多人在测试驱动技术系列之:怎么从excel中读取数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"测试驱动技术系列之:怎么从excel中读取数据"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

测试框架中参数化的一般形式

在Junit4和TestNG框架中实现参数化的形式几乎是一致的。

Junit4定义参数化数据,代码如下:

public static Collection prepareData(){ Object [][]object= {{1,2,3},{0,2,2},{0,3,3}}; return Arrays.asList(object); }

TestNG定义参数化数据,代码如下:

@DataProvider       public Object[][] dp1() {         return new Object[][] {           new Object[] { 1, 1,0 },           new Object[] { 2, 1,1 },           new Object[] { 2, 1,2 },         };       }

从excel中读取测试驱动数据的实现思路

在前面的文章中,我详细地讲解了,java中数组的应用,以及如何利用api来操控excel文件。接下来我就把在测试框架中读取excel进行接口测试参数化的核心代码以及实现思路讲解给大家。

1.首先我们看到测试数据的参数化返回值是Object [][] object,那么我们就需要写一个读取excel的方法,该方法的返回值是Object [][],方法可以定义为:Object[][] readExcel(String p_file,int p_sheetindex)

2.excel中读取cell的名称是通过行和列确认的,而且不同类型的cell在读取值时用到的api是不同的,我们写一个读取Cell值得方法,代码实现如下:

public static Object getCellVaule(Sheet p_sheet,int p_rowIndex,int p_cellIndex) {        Object value=null;         Row row = p_sheet.getRow(p_rowIndex);          Cell cell = row.getCell(p_cellIndex);             if(cell.getCellType()==CellType.NUMERIC) //判断是数字类型          {          value= cell.getNumericCellValue();               }          else if(cell.getCellType()==CellType.STRING) //判断是String类型          {          value=cell.getStringCellValue();          }          else if(cell.getCellType()==CellType.BOOLEAN)  // 判断是BOOLEAN类型          {          value=cell.getStringCellValue();          }          else          {          value=cell.toString();    // 其他类型统一转化成String类型          }          return value;      }

3.结合getCellVaule方法,我们编写一个读取完整excel值的方法,返回值为Object[][] ,代码如下:

public static Object[][] readExcel(String p_file,int p_sheetindex){          Workbook workbook=null;          Object [][] data=null;  try {         workbook = new XSSFWorkbook(new FileInputStream(p_file));          Sheet sheet = workbook.getSheetAt(p_sheetindex); // 获取第一个工作表.0代表第一个sheet页          int iRowNum=sheet.getPhysicalNumberOfRows();  //获取工作表中的行数          int iColumnNum= sheet.getRow(0).getPhysicalNumberOfCells(); //获取工作表中的列数             data=new Object[iRowNum][iColumnNum];//通过行列数,创建一个二维数组来保存cell中的数据          for(int i=0;i

4.我们可以把这两个方法作为工具方法,写入到工具类ExcelTool中,方便在测试框架中应用

测试用例中参数化的应用

在测试用例中(以junit4为例),使用该工具方法实现参数化的代码实现如下:

@RunWith(Parameterized.class) public class ParaDemo {  private Object input1;      private Object input2;      @Parameters      public static Collection prepareData(){      System.out.println("prepareData");     Object [][] object=ExcelTool.readExcel("D:\\TestData2.xlsx",0);          return Arrays.asList(object);      }      public ParaDemo(Object input1,Object input2,Object expected){         System.out.println("ParaDemo");         this.input1 = input1;          this.input2 = input2;      }      @Test      public void testEqual(){          Assert.assertEquals(this.input1,this.input2);      }  }

excel里保存的测试数据如下所示


运行测试用例,发现参数化成功执行,如下图所示


到此,关于"测试驱动技术系列之:怎么从excel中读取数据"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

测试 数据 方法 参数 代码 类型 驱动 技术 框架 学习 工具 数组 工作 应用 不同 接下来 形式 思路 文章 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司简介 港股互联网科技股 青岛互联网科技公司 奇酷互联网络科技 善班互联网科技有限公司 撒么互联网科技公司 天扬科技互联网广告 中国最先进互联网科技公司 中盈科技互联网信息有限公司 宁波青枫互联网科技有限公司 南平创想时代互联网科技有限公司 武汉健翔互联网络科技有限公司 广西互联网科技孵化中心 乌苏新华互联网科技做什么的 华夏恒生科技与互联网科技 四川慕妮娅互联网科技有限公司 神州科技互联网有限公司 全球科技与互联网公司市值变化 互联网科技手机排行榜 杭州融税互联网科技有限公司 今日互联网科技 猪兼强互联网科技 互联网科技英文 互联网科技公司怎么样 四个字互联网科技公司取名 江苏南京365互联网科技 福建科技产业互联网发展 中国科技和美国互联网 重庆科技产业互联网有哪些 互联网的黑科技实验室
0