From 3d841eb6e7cacf72477aeca0b5c2a18fe2aa107a Mon Sep 17 00:00:00 2001 From: NAnubhav <101396447+NAnubhav@users.noreply.github.com> Date: Mon, 14 Mar 2022 13:00:45 +0530 Subject: [PATCH] Update BrowserStackSample.java --- src/test/java/android/BrowserStackSample.java | 83 +++++++++++++------ 1 file changed, 57 insertions(+), 26 deletions(-) diff --git a/src/test/java/android/BrowserStackSample.java b/src/test/java/android/BrowserStackSample.java index 136ee81..9f486b1 100644 --- a/src/test/java/android/BrowserStackSample.java +++ b/src/test/java/android/BrowserStackSample.java @@ -16,33 +16,64 @@ public class BrowserStackSample { + protected static AppiumDriver driver; + protected static Properties prop; + private static AppiumDriverLocalService server; + InputStream inputstream; + TestUtils util = new TestUtils(); - public static void main(String[] args) throws MalformedURLException, InterruptedException { - - DesiredCapabilities caps = new DesiredCapabilities(); - - // Set your access credentials - caps.setCapability("browserstack.user", "YOUR_USERNAME"); - caps.setCapability("browserstack.key", "YOUR_ACCESS_KEY"); - - // Set URL of the application under test - caps.setCapability("app", "bs://"); - - // Specify device and os_version for testing - caps.setCapability("device", "Google Pixel 3"); - caps.setCapability("os_version", "9.0"); - - // Set other BrowserStack capabilities - caps.setCapability("project", "First Java Project"); - caps.setCapability("build", "browserstack-build-1"); - caps.setCapability("name", "first_test"); - - - // Initialise the remote Webdriver using BrowserStack remote URL - // and desired capabilities defined above - AndroidDriver driver = new AndroidDriver( - new URL("http://hub.browserstack.com/wd/hub"), caps); - + //public static void main(String[] args) throws MalformedURLException, InterruptedException { + + public BaseTest() { + + PageFactory.initElements(new AppiumFieldDecorator(driver), this); + } + @BeforeClass + @Parameters({"platformName", "deviceName", "udid"}) + public void initialSetup(String platformName, String deviceName, String udid) { + try { + + util.log().info("Initial set up has been started ..."); + prop = new Properties(); + String propFileName = "config.properties"; + inputstream = getClass().getClassLoader().getResourceAsStream(propFileName); + prop.load(inputstream); + util.log().info(propFileName + "loaded sucessfully..."); + + DesiredCapabilities caps = new DesiredCapabilities(); + caps.setCapability(MobileCapabilityType.PLATFORM_NAME, platformName); + util.log().info("Mobile automation platform used : " + platformName); + + caps.setCapability("newCommandTime", 300); + caps.setCapability(MobileCapabilityType.DEVICE_NAME, deviceName); + caps.setCapability(MobileCapabilityType.AUTOMATION_NAME, prop.getProperty("androidAutomationName")); + caps.setCapability(MobileCapabilityType.UDID, udid); + caps.setCapability("avd", "Anubhav_Pixel_1"); + caps.setCapability("avdLaunchTimeOut", 180000); + caps.setCapability("newCommandTimeOUt", 300); + String appUrl = System.getProperty("user.dir") + File.separator + "src" + File.separator + "main" + + File.separator + "resources" + File.separator + "app" + File.separator + "app-release.apk"; + caps.setCapability(MobileCapabilityType.APP, appUrl); + // caps.setCapability("appPackage", prop.getProperty("androidAppPackage")); + // caps.setCapability("appActivity", prop.getProperty("androidAppActivity")); + + URL url = new URL(prop.getProperty("appiumURL")); + driver = new AppiumDriver(url, caps); + + System.out.println("session id :" + driver.getSessionId()); + if (driver.getSessionId() != null) { + util.log().info("Appium driver has been initialized sucessfully"); + util.log().info("Appirum driver session id is " + driver.getSessionId()); + } + + + driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); + util.log().info("implicitly time out wait set to 20 second"); + } catch (Exception e) { + e.printStackTrace(); + util.log().fatal("Appium Driver not initialized"); + } + } // Test case for the BrowserStack sample Android app. // If you have uploaded your app, update the test case here.