Showing posts with label Data Driven using Excel. Show all posts
Showing posts with label Data Driven using Excel. Show all posts

Tuesday, September 27, 2016

Data Driven using Excel

Data Driven using Excel

When designing tests, parameterizing the tests is inevitable. We will make use of Apache POI - Excel JAR's to achieve the same. It helps us to read and write into excel.

Download JAR

Step 1 : Navigate to the URL - http://poi.apache.org/download.html and download the ZIP format.

Step 2 : Click on the Mirror Link to download the JAR's.

Step 3 : Unzip the contents to a folder.

Step 4 : Unzipped contents would be displayed as shown below.

Step 5 : Now create a New project and add all the 'External JARs' under 'poi-3.10.FINAL' folder.

Step 6 : Now add all the 'External JARs' under 'ooxml-lib' folder.

Step 7 : Now add all the 'External JARs' under 'lib' folder.

Step 8 : The Added JAR is displayed as shown below.

Step 9 : The Package Explorer is displayed as shown below. Apart from that add 'WebDriver' related JAR's

Parameterization

For Demo purposes, we will parameterize the percent calculator test.

Step 1 : We will parameterize all the inputs required for percent calculator using excel. The designed excel is shown below.

Step 2 : Now we will execute all percent calculator for all the specified parameters.

Step 3 : Let us create generic methods to access the excel file using the imported JARS. These methods helps us to get a particular cell data or to set a particular cell data etc.

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; } } }

Step 4 : Now add a main method which will access the excel methods that we have developed.

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; } } }