@Test
	public void AppTest() throws IOException{
		String startTime=null;
		ReportUtil.startSuite("TestSuite");
		System.out.println(controller.getRowCount("TestSuite"));
		for(int tcid=2;tcid<=controller.getRowCount("TestSuite");tcid++){
			
			currentTest = controller.getCellData("TestSuite", "TCID", tcid);
			currentTestName = controller.getCellData("TestSuite", "TCName", tcid);
			System.out.println(currentTest);
			System.out.println(currentTestName);
			System.out.println(controller.getCellData("TestSuite", "Run Mode", tcid));
			if(controller.getCellData("TestSuite", "Run Mode", tcid).equals("Y")){

				int totalSets=testdata.getRowCount(currentTest);
				if(totalSets<=1){
					totalSets=2; 
				}
			
			for( td=2; td<=totalSets;td++){	
				startTime=TestUtil.now("hh:mm:ss aaa");
				
				logs.debug("Executing the test *************"+ currentTest + "  ***********************");
					for(int tsid=2;tsid<=controller.getRowCount(currentTest);tsid++){
						keyword=controller.getCellData(currentTest, "Keyword", tsid);
						object=controller.getCellData(currentTest, "Object", tsid);
						currentTSID=controller.getCellData(currentTest, "TSID", tsid);
						stepDescription=controller.getCellData(currentTest, "Description", tsid);
						data_column_name=controller.getCellData(currentTest, "Data_Value", tsid);
						logs.debug(keyword);						
						try{
							Method method= Keywords_Driver.class.getMethod(keyword);
						   String result= (String) method.invoke(method);
						  // System.out.println(result);
						   logs.debug("************Result of execution************** "+result);
							if(result.startsWith("Fail")){
								testStatus=result;
								// take screenshot - only on error
							// filename="TestSuite_TC"+(tcid-1)+"_TS"+(tsid-1)+"_"+keyword+".jpg";
								filename=currentTestName+(tcid-1)+"_TS"+(tsid-1)+"_"+keyword+".jpg";
																
							 filename=ENV.getProperty("screenshotPath")+filename;
							TestUtil.takeScreenShot(filename);
							logs.debug(stepDescription+"---- "+keyword+"---- "+result+"---- "+filename);
							 ReportUtil.addKeyword(stepDescription, keyword, result, filename);	
							 filename=null;
							}else{
								logs.debug(stepDescription+"----- "+keyword+"----- "+result);
								ReportUtil.addKeyword(stepDescription, keyword, result, filename);
							}
						
						}catch(Exception e){
						 logs.debug(e);
						}
						//System.out.println(testStatus);
						if(testStatus == "Fail"){
							//driver.switchTo().defaultContent();
							//driver.close();
							driver.quit();
							break;
							//System.out.println(driver.switchTo().alert().getText());
							/*if (driver.switchTo().alert().getText().contains("want to leave")){
								driver.switchTo().alert().accept();
							}
							break;*/
						}
					}	
					
					if(testStatus == null){
						testStatus="Pass";
					}
					logs.debug("*************************************** "+currentTest+" **************************************  " +testStatus);
					ReportUtil.addTestCase(currentTestName, 
											startTime, TestUtil.now("hh:mm:ss aaa"),
							            	testStatus );	
					
			}
					
					
			}else{
			
					testStatus="Skip";
					logs.debug("*************************************** "+currentTest+" **************************************  " +testStatus);
					ReportUtil.addTestCase(currentTestName, 
											TestUtil.now("hh:mm:ss aaa"), 
											TestUtil.now("hh:mm:ss aaa"),
											testStatus );
					
				}
				
					testStatus=null;
				
				
			}
		     
			ReportUtil.endSuite();
						
							
			}