@BeforeSuite(alwaysRun = true)
  public static void setupSuite(ITestContext ctx) throws Throwable {
    System.out.println("In Before sutie");
    itc = ctx;
    groupNames = ctx.getCurrentXmlTest().getIncludedGroups().toString();
    System.out.println("+++++" + groupNames);
    ReportStampSupport.calculateSuiteStartTime();
    try {
      if (groupNames.contains("chrome")) {
        logger.info("chrome_browser : " + xlsrdr.getCellValue("chrome_browser", "value"));
        browser = xlsrdr.getCellValue("chrome_browser", "value");
        System.out.println("browser " + browser);
      } else if (groupNames.contains("firefox")) {
        logger.info("firefox_browser : " + xlsrdr.getCellValue("firefox_browser", "value"));
        browser = xlsrdr.getCellValue("firefox_browser", "value");
      } else if (groupNames.contains("ie")) {
        logger.info("ie_browser : " + xlsrdr.getCellValue("ie_browser", "value"));
        browser = xlsrdr.getCellValue("ie_browser", "value");
      } else if (groupNames.contains("Android")) {
        logger.info("Android");
        browser = "android";
      } else if (groupNames.contains("Mobile")) {
        logger.info("iPhone");
        browser = "iphone";
      } else {
        logger.info("Starting browser : " + configProps.getProperty("browserType"));
        browser = configProps.getProperty("browserType");
      }
    } catch (Exception e1) {
      e1.printStackTrace();
      System.out.println(e1);
    }
    try {
      if (groupNames.toString().contains("afiliate")) {
        System.out.println("afiliate URL : " + xlsrdr.getCellValue("afiliate", "value"));
        url = (xlsrdr.getCellValue("afiliate", "value"));
      } else if (groupNames.contains("booking")) {
        System.out.println("booking URL : " + xlsrdr.getCellValue("booking", "value"));
        url = (xlsrdr.getCellValue("booking", "value"));
      } else if (groupNames.contains("referred")) {
        System.out.println("referred URL : " + xlsrdr.getCellValue("referred", "value"));
        url = (xlsrdr.getCellValue("referred", "value"));
      } else {
        url = (configProps.getProperty("URL"));
      }

      Reporter.reportCreater();
      HtmlReportSupport.currentSuit = ctx.getCurrentXmlTest().getSuite().getName();
    } catch (Exception e1) {
      e1.printStackTrace();
    }

    if (browser.equalsIgnoreCase("iphone")) {
      try {
        // ---------------------------------------------------
        // System.out.println(System.getProperty("user.home")+"/Log/RPMob_" + timeStamp + ".log");
        String logFile =
            System.getProperty("user.dir") + "/Logs/RPMob_" + System.currentTimeMillis() + ".log";
        System.out.println("In iphone block");
        /*while (true) {
        	if (RedPlanetUtils.startAppiumForiOS(logFile)) {
        		break;
        	}
        }
        if ((new File(logFile).exists())) {
        	System.out.println("Log File Created by Appium at path : " + System.getProperty("user.dir")
        			+ "/Log/RPMob_" + timeStamp + ".log");
        }
        Thread.sleep(10000);*/
        // -----------------------------------------------------
        DeviceName = configProps.getProperty("iOSDeviceName");
        String device = configProps.getProperty("Device");
        String appPath = configProps.getProperty("appPath");

        String ipaPath = configProps.getProperty("ipaPath");
        String temp = System.getProperty("user.dir") + ipaPath;
        String temp2 = System.getProperty("user.dir") + appPath;
        File ipa = new File(temp);
        File app = new File(temp2);
        String platformVer = configProps.getProperty("platformVersion");
        String udid = configProps.getProperty("UDID");
        bundleID = configProps.getProperty("BundleID");
        DesiredCapabilities capabilitiesForAppium = new DesiredCapabilities();
        // System.out.println("DeviceName is : " + DeviceName);
        capabilitiesForAppium.setCapability("deviceName", device);
        capabilitiesForAppium.setCapability("platformName", "iOS");
        capabilitiesForAppium.setCapability("platformVersion", platformVer);
        capabilitiesForAppium.setCapability("deviceName", device);
        capabilitiesForAppium.setCapability("bundleId", bundleID);
        capabilitiesForAppium.setCapability("newCommandTimeout", "8000");
        capabilitiesForAppium.setCapability("takesScreenshot", true);
        capabilitiesForAppium.setCapability("autoWebviewTimeout", "8000");
        capabilitiesForAppium.setCapability("locationServicesAuthorized", true);
        // capabilitiesForAppium.setCapability("autoLaunch", true);
        // capabilitiesForAppium.setCapability("fullReset", false);
        // capabilitiesForAppium.setCapability("noReset", true);
        capabilitiesForAppium.setCapability(
            "waitForAppScript", "target.elements().length > 0; $.delay(30000); $.acceptAlert();");
        if ((DeviceName.contains("Simulator")) || ((udid.length() == 0))) {
          System.out.println("using simulator");
          System.out.println("app Path " + app.getCanonicalPath());
          capabilitiesForAppium.setCapability("app", app.getCanonicalPath());

        } else {
          System.out.println("+++++using real device   " + groupNames + "+++++");
          capabilitiesForAppium.setCapability("udid", udid);
          System.out.println("ipa Path " + ipa.getCanonicalPath());
          capabilitiesForAppium.setCapability("app", ipa);
        }
        Iosdriver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilitiesForAppium);
        driver = Iosdriver;
        driver.manage().timeouts().implicitlyWait(90, TimeUnit.SECONDS);
      } catch (Exception e) {
        e.printStackTrace();
      }

    } else if (browser.equalsIgnoreCase("Android")) {
      try {
        String AppPackage = configProps.getProperty("appPackage");
        String AppActivity = configProps.getProperty("appActivity");
        String OSVersion = configProps.getProperty("OSVersion");
        String ipkPath = configProps.getProperty("apkPath");
        String tempIPK = System.getProperty("user.dir") + ipkPath;
        File ipk = new File(tempIPK);
        // ---------------------------------------------------

        // -----------------------------------------------------
        DesiredCapabilities capabilitiesForAppium = new DesiredCapabilities();
        System.out.println("DeviceName is : " + DeviceName);
        capabilitiesForAppium.setCapability("deviceName", DeviceName);
        capabilitiesForAppium.setCapability("platformVersion", OSVersion);
        capabilitiesForAppium.setCapability("platformName", "Android");
        capabilitiesForAppium.setCapability("newCommandTimeout", "120000");
        // capabilitiesForAppium.setCapability("autoWebview", "true");
        capabilitiesForAppium.setCapability("autoWebviewTimeout", "1000");
        // capabilitiesForAppium.setCapability("fullReset", true);
        capabilitiesForAppium.setCapability("appPackage", AppPackage);
        capabilitiesForAppium.setCapability("appActivity", AppActivity);
        System.out.println(ipk.getCanonicalPath());
        capabilitiesForAppium.setCapability("app", ipk.getCanonicalPath());
        AndroidDriver2 =
            new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilitiesForAppium);
        driver = (AndroidDriver2);
        driver.manage().timeouts().implicitlyWait(70, TimeUnit.SECONDS);

      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }