使用Excel數據驅動

使用Excel數據驅動

在設計測試,參數化測試是不可避免的。我們會利用Apache的POI- Excel JAR實現是一樣的。它可以幫助我們來讀取和寫入到Excel中。

下載JAR

第1步:導航到URL- http://poi.apache.org/download.htmll並下載ZIP格式。

selenium_ide_152

第2步:點擊鏡像鏈接下載JAR。

selenium_ide_153

第3步:解壓縮到一個文件夾。

selenium_ide_154

第4步:如下所示的解壓縮後的內容將被顯示。

selenium_ide_155

第5步:現在創建一個新的項目,並在「External JARs」添加「POI-3.10.FINAL」文件夾中所有的jar包。

selenium_ide_147

第6步:現在,添加所有的「External JARs」在「OOXML-LIB」文件夾中。

selenium_ide_148

第7步:現在,添加所有的「External JARs」在「lib」文件夾中。

selenium_ide_149

第8步:如下圖所示,顯示已添加的JAR文件。

selenium_ide_150

第9步:如下圖所示的Package Explorer顯示。此外附加「webdriver」相關的JAR

selenium_ide_151

參數

爲了演示目的,我們將參數的百分比計算器測試。

第1步:我們將所有的參數需要使用Excel的%計算器的輸入。所設計的excel如下所示。

selenium_ide_156

第2步:現在,我們將執行所有百分比計算器,所有指定的參數。

第3步:讓我們創建通用的方法來訪問使用導入JARS Excel文件。這些方法可以幫助我們獲得一個特定的單元格數據或設置一個特定的單元格的數據等。

import java.io.*;
import org.apache.poi.xssf.usermodel.*;

public class excelutils
{
private XSSFSheet ExcelWSheet;
private XSSFWorkbook ExcelWBook;

//Constructor to connect to the Excel with sheetname and Path
public excelutils(String Path, String SheetName) throws Exception
{
try
{
// Open the Excel file
FileInputStream ExcelFile = new FileInputStream(Path);
// Access the required test data sheet
ExcelWBook = new XSSFWorkbook(ExcelFile);
ExcelWSheet = ExcelWBook.getSheet(SheetName);
}
catch (Exception e)
{
throw (e);
}
}

//This method is to set the rowcount of the excel.
public int excel\_get\_rows() throws Exception 
{
  try 
  {
     return ExcelWSheet.getPhysicalNumberOfRows();           
  } 
  catch (Exception e)
  {
      throw (e);

  }
}


//This method to get the data and get the value as strings.
public String getCellDataasstring(int RowNum, int ColNum) throws Exception
{
   try
   {
       String CellData = ExcelWSheet.getRow(RowNum).getCell(ColNum).getStringCellValue();
       System.out.println("The value of CellData " + CellData);
       return CellData;
   }
   catch (Exception e)
   {
        return "Errors in Getting Cell Data";
   }
}

//This method to get the data and get the value as number.
public double getCellDataasnumber(int RowNum, int ColNum) throws Exception
{
try
{
double CellData = ExcelWSheet.getRow(RowNum).getCell(ColNum).getNumericCellValue();
System.out.println("The value of CellData " + CellData);
return CellData;
}
catch (Exception e)
{
return 000.00;
}
}
}

第4步:現在,添加它將訪問,我們已經開發了Excel的方法,主要的方法。

import java.io.*;
import org.apache.poi.xssf.usermodel.*;

public class excelutils
{
private XSSFSheet ExcelWSheet;
private XSSFWorkbook ExcelWBook;

//Constructor to connect to the Excel with sheetname and Path
public excelutils(String Path, String SheetName) throws Exception
{
try
{
// Open the Excel file
FileInputStream ExcelFile = new FileInputStream(Path);
// Access the required test data sheet
ExcelWBook = new XSSFWorkbook(ExcelFile);
ExcelWSheet = ExcelWBook.getSheet(SheetName);

   } 
   catch (Exception e)
   {
       throw (e);           
   }

}

//This method is to set the rowcount of the excel.
public int excel\_get\_rows() throws Exception 
{
   try 
   {
       return ExcelWSheet.getPhysicalNumberOfRows();           
    } 
    catch (Exception e)
    {
        throw (e);

    }
}


//This method to get the data and get the value as strings.
public String getCellDataasstring(int RowNum, int ColNum) throws Exception
{
   try
   {
       String CellData = ExcelWSheet.getRow(RowNum).getCell(ColNum).getStringCellValue();
      //Cell = ExcelWSheet.getRow(RowNum).getCell(ColNum);
      //String CellData = Cell.getStringCellValue();
      System.out.println("The value of CellData " + CellData);
      return CellData;
    }
    catch (Exception e)
    {
        return "Errors in Getting Cell Data";
    }
}

//This method to get the data and get the value as number.
public double getCellDataasnumber(int RowNum, int ColNum) throws Exception
{
try
{
double CellData = ExcelWSheet.getRow(RowNum).getCell(ColNum).getNumericCellValue();
//Cell = ExcelWSheet.getRow(RowNum).getCell(ColNum);
//String CellData = Cell.getStringCellValue();
System.out.println("The value of CellData " + CellData);
return CellData;
}
catch (Exception e)
{
return 000.00;
}
}
}

輸出

在執行腳本,輸出顯示在控制檯中,如下圖所示。

Selenium