Exemple #1
0
        /// <summary>
        /// Gets the app path for the application being tested
        /// </summary>
        /// <returns>The app path.</returns>
        private string GetAppPath()
        {
            var devicePlatform = AppiumConfig.GetDevicePlatform();
            var appName        = devicePlatform == DevicePlatform.Android ? AppiumConfig.GetAndroidRealApp() : AppiumConfig.GetiOSRealApp();

            return(Path.Combine(AppiumConfig.GetAppPath(), appName));
        }
Exemple #2
0
        public string SettingAppPath()
        {
            bool checkAndroid  = deviceMap.Any(o => Regex.IsMatch(o.Value.ToString(), @"([Aa][Nn][Dd][Rr][Oo][Ii][Dd])"));
            bool checkMAC      = deviceMap.Any(o => Regex.IsMatch(o.Value.ToString(), @"([Mm][Aa][Cc])"));
            bool checkReal     = deviceMap.Any(o => Regex.IsMatch(o.Value.ToString(), @"([Rr][Ee][Aa][Ll])"));
            bool checkEmulator = deviceMap.Any(o => Regex.IsMatch(o.Value.ToString(), @"([Ee][Mm][Uu][Ll][Aa][Tt][Oo][Rr])"));

            if (checkAndroid && checkReal)
            {
                return(Path.Combine(AppiumConfig.GetAppPath(), AppiumConfig.GetAndroidRealApp()));
            }

            if (checkAndroid && checkEmulator)
            {
                return(Path.Combine(AppiumConfig.GetAppPath(), AppiumConfig.GetAndroidEmulatorApp()));
            }

            if (checkMAC && checkReal)
            {
                return(Path.Combine(AppiumConfig.GetAppPath(), AppiumConfig.GetiOSRealApp()));
            }

            if (checkMAC && checkEmulator)
            {
                return(Path.Combine(AppiumConfig.GetAppPath(), AppiumConfig.GetiOSEmulatorApp()));
            }

            throw new ArgumentException("Failed to set the App Path!");
        }
Exemple #3
0
        public void GetCommandTimeout()
        {
            #region GetCommandTimeout

            TimeSpan initTimeout = AppiumConfig.GetCommandTimeout();

            #endregion GetCommandTimeout

            Assert.AreEqual(122, initTimeout.TotalSeconds);
        }
Exemple #4
0
        private static ITestProvider CreateTestProvider()
        {
            var myTestProvider = AppiumConfig.GetTestProvider();

            if (myTestProvider.ToString().ToUpper() == "KOBITON")
            {
                return(new KobitonTestProvider());
            }

            return(new GridProvider());
        }
Exemple #5
0
        /// <summary>
        /// Sets capabilities for testing the iOS Driver creation
        /// </summary>
        /// <returns>iOS instance of the Appium Driver</returns>
        protected override AppiumDriver <IWebElement> GetMobileDevice()
        {
            AppiumOptions options = new AppiumOptions();

            options.AddAdditionalCapability("deviceName", "iPhone 8 Simulator");
            options.AddAdditionalCapability("deviceOrientation", "portrait");
            options.AddAdditionalCapability("platformVersion", "12.2");
            options.AddAdditionalCapability("platformName", "iOS");
            options.AddAdditionalCapability("browserName", "Safari");
            options.AddAdditionalCapability("username", "Partner_Magenic");
            options.AddAdditionalCapability("accessKey", "7e0592a4-16de-4c6b-9b87-ee61aa43ceac");

            return(new IOSDriver <IWebElement>(AppiumConfig.GetMobileHubUrl(), options, AppiumConfig.GetCommandTimeout()));
        }
Exemple #6
0
        /// <summary>
        /// Sets capabilities for testing the iOS Driver creation
        /// </summary>
        /// <returns>iOS instance of the Appium Driver</returns>
        protected override AppiumDriver <IWebElement> GetMobileDevice()
        {
            AppiumOptions options = new AppiumOptions();

            options.AddAdditionalCapability("deviceName", "iPhone 8 Simulator");
            options.AddAdditionalCapability("deviceOrientation", "portrait");
            options.AddAdditionalCapability("platformVersion", "12.2");
            options.AddAdditionalCapability("platformName", "iOS");
            options.AddAdditionalCapability("browserName", "Safari");
            options.AddAdditionalCapability("username", Config.GetValueForSection(ConfigSection.AppiumCapsMaqs, "userName"));
            options.AddAdditionalCapability("accessKey", Config.GetValueForSection(ConfigSection.AppiumCapsMaqs, "accessKey"));

            return(new IOSDriver <IWebElement>(AppiumConfig.GetMobileHubUrl(), options, AppiumConfig.GetCommandTimeout()));
        }
Exemple #7
0
        /// <summary>
        /// Sets capabilities for testing the iOS Driver creation
        /// </summary>
        /// <returns>iOS instance of the Appium Driver</returns>
        protected override AppiumDriver GetMobileDevice()
        {
            AppiumOptions options = new AppiumOptions
            {
                DeviceName      = "iPhone 13 Simulator",
                PlatformName    = "iOS",
                PlatformVersion = "15.0",
                BrowserName     = "Safari"
            };

            var sauceOptions = AppiumConfig.GetCapabilitiesAsObjects();

            // Use Appium 1.22 for running iOS tests
            (sauceOptions["sauce:options"] as Dictionary <string, object>)["appiumVersion"] = "1.22.0";
            options.SetMobileOptions(sauceOptions);

            return(AppiumDriverFactory.GetIOSDriver(AppiumConfig.GetMobileHubUrl(), options, AppiumConfig.GetMobileCommandTimeout()));
        }
Exemple #8
0
        /// <summary>
        /// Disposing drivers for test cleanup
        /// </summary>
        /// <param name="methodInfo">Method Information</param>
        public void DisposeDrivers(MethodInfo methodInfo)
        {
            try
            {
                // Parallel loop to dispose of all the drivers at once speeding up cleanup
                Parallel.ForEach(MobileDrivers, device =>
                {
                    if (device.AppiumDriver.Capabilities.GetCapability("platformName").ToString().ToLower().Equals("ios"))
                    {
                        device.AppiumDriver.CloseApp();
                        device.AppiumDriver.RemoveApp(AppiumConfig.GetAppId());
                    }

                    device.DisposeAppiumDriver();
                });
            }
            catch (Exception e)
            {
                Console.WriteLine("IF YOU SEE ME YOU ARE NOT CLEANING UP DEVICES PROPERLY.");
                Console.WriteLine(e);
            }

            MobileDriverFactory.Que.CheckinDevice(methodInfo.Name);
        }
Exemple #9
0
        /// <summary>
        /// Creates DesiredCababilities object based on Device information.
        /// </summary>
        /// <returns>The desired capabilities.</returns>
        /// <param name="device">Device.</param>
        /// <param name="methodInfo"></param>
        private DesiredCapabilities CreateDesiredCapabilities(Device device, MethodInfo methodInfo)
        {
            DesiredCapabilities capabilities = new DesiredCapabilities();

            //capabilities.SetCapability("username", AppiumConfig.GetKobitonUserName());
            //capabilities.SetCapability("accessKey", AppiumConfig.GetKobitonAccessKey());
            //capabilities.SetCapability("newCommandTimeout", "400");

            ////capabilities.SetCapability("appWaitActivity", "md5a28fba6e093d468832e1157c64fa578d.MainActivity");
            //capabilities.SetCapability("unicodeKeyboard", true);
            //capabilities.SetCapability("resetKeyboard", true);
            //capabilities.SetCapability("browserName", "Kobiton TestProvider");
            //capabilities.SetCapability("browserTimeout", 120);
            //capabilities.SetCapability("app", $"kobiton-store:{RunAppId}");

            //var className = methodInfo.ReflectedType.ToString().Split('.').Last();
            //var buildName = Environment.GetEnvironmentVariable("JOB_BASE_NAME");
            //capabilities.SetCapability("sessionName", $" {buildName} - {className} - {methodInfo.Name}");
            //capabilities.SetCapability("sessionDescription", "Automation Run");

            //capabilities.SetCapability("deviceOrientation", "portrait");
            //capabilities.SetCapability("captureScreenshots", true);
            //capabilities.SetCapability("deviceGroup", "KOBITON");
            //capabilities.SetCapability("deviceName", "i");
            //capabilities.SetCapability("platformVersion", "11.");
            //capabilities.SetCapability("version", "11.");

            capabilities.SetCapability("username", AppiumConfig.GetKobitonUserName());
            capabilities.SetCapability("accessKey", AppiumConfig.GetKobitonAccessKey());
            capabilities.SetCapability("newCommandTimeout", "400");

            //capabilities.SetCapability("appWaitActivity", "md5a28fba6e093d468832e1157c64fa578d.MainActivity");
            capabilities.SetCapability("unicodeKeyboard", true);
            capabilities.SetCapability("resetKeyboard", true);
            capabilities.SetCapability("browserName", "Kobiton TestProvider");
            capabilities.SetCapability("browserTimeout", 120);
            capabilities.SetCapability("app", $"kobiton-store:{RunAppId}");

            var className = methodInfo.ReflectedType.ToString().Split('.').Last();
            var buildName = Environment.GetEnvironmentVariable("JOB_BASE_NAME");

            capabilities.SetCapability("sessionName", $" {buildName} - {className} - {methodInfo.Name}");
            capabilities.SetCapability("sessionDescription", "Automation Run");

            capabilities.SetCapability("deviceOrientation", "portrait");
            capabilities.SetCapability("captureScreenshots", true);
            capabilities.SetCapability("deviceGroup", "KOBITON");
            capabilities.SetCapability("deviceName", "Galaxy");
            //capabilities.SetCapability("platformVersion", "11.");
            //capabilities.SetCapability("version", "11.");

            //var devicePlatform = AppiumConfig.GetDevicePlatform();
            //if (devicePlatform == DevicePlatform.IOS)
            //{
            //    // HACK: converting iOS to MAC, watch out for when Appium switches back to iOS
            //    capabilities.SetCapability("platformName", "MAC");
            //}
            //else
            //{
            capabilities.SetCapability("platformName", device.PlatformName);
            //}

            return(capabilities);
        }
Exemple #10
0
 public void GetMobileHubUrlTest()
 {
     Assert.AreEqual("http://ondemand.saucelabs.com/wd/hub", AppiumConfig.GetMobileHubUrl().AbsoluteUri);
 }
Exemple #11
0
 public void GetDeviceNameTest()
 {
     Assert.AreEqual("Android GoogleAPI Emulator", AppiumConfig.GetDeviceName());
 }
Exemple #12
0
 public void GetPlatformVersionTest()
 {
     Assert.AreEqual("6.0", AppiumConfig.GetPlatformVersion());
 }
Exemple #13
0
 public void GetPlatformNameTest()
 {
     Assert.AreEqual("Android", AppiumConfig.GetPlatformName());
 }
Exemple #14
0
        public void GetCommandTimeout()
        {
            TimeSpan initTimeout = AppiumConfig.GetMobileCommandTimeout();

            Assert.AreEqual(200, initTimeout.TotalSeconds);
        }
Exemple #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AppiumWait"/> class.
 /// </summary>
 /// <param name="driver">IWebDriver instance</param>
 public AppiumWait(IWebDriver driver)
     : this(driver, AppiumConfig.GetWaitValue())
 {
 }