中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

測試驅動技術系列之:怎么從excel中讀取數據

發布時間:2021-10-19 13:38:42 來源:億速云 閱讀:150 作者:iii 欄目:編程語言

這篇文章主要介紹“測試驅動技術系列之:怎么從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<iRowNum;i++) {          for(int j=0;j<iColumnNum;j++) {          data[i][j]= getCellVaule(sheet,i,j);  //通過循環以及之前編寫好的讀取excel單元格值的方法,把cell中的數據保存到二維數組中          }          }          workbook.close();  } catch (IOException e) {  // TODO Auto-generated catch block  e.printStackTrace();  }          return data;      }

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中讀取數據

運行測試用例,發現參數化成功執行,如下圖所示

測試驅動技術系列之:怎么從excel中讀取數據

到此,關于“測試驅動技術系列之:怎么從excel中讀取數據”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辉县市| 静安区| 合山市| 荔波县| 安龙县| 沈丘县| 东城区| 宜川县| 新郑市| 揭西县| 博客| 蚌埠市| 长葛市| 新乐市| 定兴县| 新密市| 潢川县| 五家渠市| 垣曲县| 南开区| 柳林县| 疏勒县| 乃东县| 买车| 日喀则市| 福贡县| 田东县| 台前县| 静乐县| 安乡县| 金川县| 明光市| 两当县| 东乌珠穆沁旗| 阿荣旗| 正阳县| 台中县| 上高县| 丰台区| 永吉县| 海阳市|