def setUp(self): ## ## IMPORTANT: Set the following parameters. ## You can set the parameters outside the script with environment variables. ## If env var is not set the string after or is used. ## self.screenshot_dir = os.environ.get('TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_url = os.environ.get('TESTDROID_URL') or "https://cloud.testdroid.com" testdroid_apiKey = os.environ.get('TESTDROID_APIKEY') or "" testdroid_app = os.environ.get('TESTDROID_APP') or "" appium_url = os.environ.get('TESTDROID_APPIUM_URL') or 'http://appium.testdroid.com/wd/hub' testdroid_project_name = os.environ.get('TESTDROID_PROJECT') or "Android sample project" testdroid_testrun_name = os.environ.get('TESTDROID_TESTRUN') or "My testrun" app_package = os.environ.get('TESTDROID_APP_PACKAGE') or 'com.bitbar.testdroid' app_activity = os.environ.get('TESTDROID_ACTIVITY') or '.BitbarSampleApplicationActivity' new_command_timeout = os.environ.get('TESTDROID_CMD_TIMEOUT') or '60' testdroid_test_timeout = os.environ.get('TESTDROID_TEST_TIMEOUT') or '600' # Options to select device # 1) Set environment variable TESTDROID_DEVICE # 2) Set device name to this python script # 3) Do not set #1 and #2 and let DeviceFinder to find free device for you deviceFinder = None testdroid_device = os.environ.get('TESTDROID_DEVICE') or "" deviceFinder = DeviceFinder(url=testdroid_url) if testdroid_device == "": # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device() apiLevel = deviceFinder.device_API_level(testdroid_device) print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey if apiLevel > 16: desired_capabilities_cloud['testdroid_target'] = 'Android' else: desired_capabilities_cloud['testdroid_target'] = 'Selendroid' desired_capabilities_cloud['testdroid_project'] = testdroid_project_name desired_capabilities_cloud['testdroid_testrun'] = testdroid_testrun_name desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['testdroid_app'] = testdroid_app desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['appPackage'] = app_package desired_capabilities_cloud['appActivity'] = app_activity desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud['testdroid_testTimeout'] = testdroid_test_timeout log ("Will save screenshots at: " + self.screenshot_dir) # set up webdriver log ("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) log ("WebDriver response received")
def available_free_android_device(): ret = [] # Loop will not exit until free device is found deviceFinder = DeviceFinder() while True: d = deviceFinder.available_free_android_device() if d is not None: ret.append(d) return ret
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## You can set the parameters outside the script with environment variables. ## If env var is not set the string after or is used. ## self.screenshotDir = os.environ.get('TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_url = os.environ.get('TESTDROID_URL') or "https://cloud.testdroid.com" testdroid_username = os.environ.get('TESTDROID_USERNAME') or "*****@*****.**" testdroid_password = os.environ.get('TESTDROID_PASSWORD') or "password" appium_url = os.environ.get('TESTDROID_APPIUM_URL') or 'http://appium.testdroid.com/wd/hub' # Options to select device # 1) Set environment variable TESTDROID_DEVICE # 2) Set device name to this python script # 3) Do not set #1 and #2 and let DeviceFinder to find free device for you deviceFinder = None testdroid_device = os.environ.get('TESTDROID_DEVICE') or "" deviceFinder = DeviceFinder(username=testdroid_username, password=testdroid_password, url=testdroid_url) if testdroid_device == "": # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device() apiLevel = deviceFinder.device_API_level(testdroid_device) print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_username'] = testdroid_username desired_capabilities_cloud['testdroid_password'] = testdroid_password if apiLevel > 17: desired_capabilities_cloud['testdroid_target'] = 'Android' else: desired_capabilities_cloud['testdroid_target'] = 'Selendroid' desired_capabilities_cloud['testdroid_project'] = os.environ.get('TESTDROID_PROJECT') or 'Appium Android demo' desired_capabilities_cloud['testdroid_testrun'] = os.environ.get('TESTDROID_TESTRUN') or 'My testrun' desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['testdroid_app'] = 'sample/BitbarSampleApp.apk' #desired_capabilities_cloud['app'] = '/absolute/path/to/your/application.apk' desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['appPackage'] = 'com.bitbar.testdroid' desired_capabilities_cloud['appActivity'] = '.BitbarSampleApplicationActivity' desired_caps = desired_capabilities_cloud; log ("Will save screenshots at: " + self.screenshotDir) # set up webdriver log ("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_caps) log ("WebDriver response received")
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## You can set the parameters outside the script with environment variables. ## If env var is not set the string after or is used. ## self.screenshotDir = os.environ.get( 'TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_url = os.environ.get( 'TESTDROID_URL') or "https://cloud.testdroid.com" testdroid_apiKey = os.environ.get('TESTDROID_APIKEY') or "" testdroid_app = os.environ.get('TESTDROID_APP') or "" appium_url = os.environ.get( 'TESTDROID_APPIUM_URL') or 'http://appium.testdroid.com/wd/hub' # Options to select device # 1) Set environment variable TESTDROID_DEVICE # 2) Set device name to this python script # 3) Do not set #1 and #2 and let DeviceFinder to find free device for you deviceFinder = None testdroid_device = os.environ.get('TESTDROID_DEVICE') or "" deviceFinder = DeviceFinder(url=testdroid_url) if testdroid_device == "": # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device() desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'chrome' desired_capabilities_cloud[ 'testdroid_project'] = 'Appium Android Hybrid Demo' desired_capabilities_cloud['testdroid_testrun'] = 'TestRun 1' desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['testdroid_app'] = testdroid_app desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['automationName'] = 'selendroid' desired_capabilities_cloud[ 'appPackage'] = 'com.testdroid.sample.android' desired_capabilities_cloud['appActivity'] = '.MA_MainActivity' desired_caps = desired_capabilities_cloud log("Will save screenshots at: " + self.screenshotDir) # set up webdriver log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins" ) self.driver = webdriver.Remote(appium_url, desired_caps) log("WebDriver response received")
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## You can set the parameters outside the script with environment variables. ## If env var is not set the string after 'or' is used. ## testdroid_url = os.environ.get('TESTDROID_URL') or "https://cloud.testdroid.com" appium_url = os.environ.get('TESTDROID_APPIUM_URL') or 'http://appium.testdroid.com/wd/hub' testdroid_apiKey = os.environ.get('TESTDROID_APIKEY') or "" testdroid_project_name = os.environ.get('TESTDROID_PROJECT') or 'Appium Chrome Demo' testdroid_testrun_name = os.environ.get('TESTDROID_TESTRUN') or "My testrun" new_command_timeout = os.environ.get('TESTDROID_CMD_TIMEOUT') or '60' testdroid_test_timeout = os.environ.get('TESTDROID_TEST_TIMEOUT') or '600' self.screenshot_dir = os.environ.get('TESTDROID_SCREENSHOTS') or os.getcwd() + "/screenshots" log ("Will save screenshots at: " + self.screenshot_dir) self.screenshot_count = 1 # Options to select device # 1) Set environment variable TESTDROID_DEVICE # 2) Set device name to this python script # 3) Do not set #1 and #2 and let DeviceFinder to find free device for you deviceFinder = None testdroid_device = os.environ.get('TESTDROID_DEVICE') or "" deviceFinder = DeviceFinder(url=testdroid_url) if testdroid_device == "": # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device() desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'chrome' desired_capabilities_cloud['testdroid_project'] = testdroid_project_name desired_capabilities_cloud['testdroid_testrun'] = testdroid_testrun_name desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'AndroidDevice' desired_capabilities_cloud['browserName'] = 'chrome' desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud['testdroid_testTimeout'] = testdroid_test_timeout log ("Will save screenshots at: " + self.screenshot_dir) # set up webdriver log ("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) log ("Loading page http://docs.testdroid.com") self.driver.get("http://docs.testdroid.com")
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## You can set the parameters outside the script with environment variables. ## If env var is not set the string after or is used. ## self.screenshotDir = os.environ.get('TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_url = os.environ.get('TESTDROID_URL') or "https://cloud.testdroid.com" testdroid_apiKey = os.environ.get('TESTDROID_APIKEY') or "" testdroid_app = os.environ.get('TESTDROID_APP') or "" appium_url = os.environ.get('TESTDROID_APPIUM_URL') or 'http://appium.testdroid.com/wd/hub' # Options to select device # 1) Set environment variable TESTDROID_DEVICE # 2) Set device name to this python script # 3) Do not set #1 and #2 and let DeviceFinder to find free device for you deviceFinder = None testdroid_device = os.environ.get('TESTDROID_DEVICE') or "" deviceFinder = DeviceFinder(url=testdroid_url) if testdroid_device == "": # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device() apiLevel = deviceFinder.device_API_level(testdroid_device) print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey if apiLevel > 16: desired_capabilities_cloud['testdroid_target'] = 'Android' else: desired_capabilities_cloud['testdroid_target'] = 'Selendroid' desired_capabilities_cloud['testdroid_project'] = os.environ.get('TESTDROID_PROJECT') or 'Android demo' desired_capabilities_cloud['testdroid_testrun'] = os.environ.get('TESTDROID_TESTRUN') or 'My testrun' desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['testdroid_app'] = testdroid_app #desired_capabilities_cloud['app'] = '/absolute/path/to/your/application.apk' desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['appPackage'] = 'com.bitbar.testdroid' desired_capabilities_cloud['appActivity'] = '.BitbarSampleApplicationActivity' desired_caps = desired_capabilities_cloud; log ("Will save screenshots at: " + self.screenshotDir) # set up webdriver log ("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_caps) log ("WebDriver response received")
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## You can set the parameters outside the script with environment variables. ## If env var is not set the string after or is used. ## self.screenshotDir = os.environ.get('TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_url = os.environ.get('TESTDROID_URL') or "https://cloud.testdroid.com" testdroid_apiKey = os.environ.get('TESTDROID_APIKEY') or "" testdroid_app = os.environ.get('TESTDROID_APP') or "" appium_url = os.environ.get('TESTDROID_APPIUM_URL') or 'http://appium.testdroid.com/wd/hub' # Options to select device # 1) Set environment variable TESTDROID_DEVICE # 2) Set device name to this python script # 3) Do not set #1 and #2 and let DeviceFinder to find free device for you deviceFinder = None testdroid_device = os.environ.get('TESTDROID_DEVICE') or "" deviceFinder = DeviceFinder(url=testdroid_url) if testdroid_device == "": # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device() desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'chrome' desired_capabilities_cloud['testdroid_project'] = 'Appium Android Hybrid Demo' desired_capabilities_cloud['testdroid_testrun'] = 'TestRun 1' desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['testdroid_app'] = testdroid_app desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['automationName'] = 'selendroid' desired_capabilities_cloud['appPackage'] = 'com.testdroid.sample.android' desired_capabilities_cloud['appActivity'] = '.MA_MainActivity' desired_caps = desired_capabilities_cloud; log ("Will save screenshots at: " + self.screenshotDir) # set up webdriver log ("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_caps) log ("WebDriver response received")
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## You can set the parameters outside the script with environment variables. ## If env var is not set the string after or is used. ## testdroid_url = os.environ.get( 'TESTDROID_URL') or "https://cloud.testdroid.com" appium_url = os.environ.get( 'TESTDROID_APPIUM_URL') or 'http://appium.testdroid.com/wd/hub' testdroid_apiKey = os.environ.get('TESTDROID_APIKEY') or "" testdroid_project_name = os.environ.get( 'TESTDROID_PROJECT') or "Android sample project" testdroid_testrun_name = os.environ.get( 'TESTDROID_TESTRUN') or "My testrun" testdroid_app = os.environ.get('TESTDROID_APP') or "" app_package = os.environ.get( 'TESTDROID_APP_PACKAGE') or 'com.bitbar.testdroid' app_activity = os.environ.get( 'TESTDROID_ACTIVITY') or '.BitbarSampleApplicationActivity' new_command_timeout = os.environ.get('TESTDROID_CMD_TIMEOUT') or '60' testdroid_test_timeout = os.environ.get( 'TESTDROID_TEST_TIMEOUT') or '600' self.screenshot_dir = os.environ.get( 'TESTDROID_SCREENSHOTS') or os.getcwd() + "/screenshots" log("Will save screenshots at: " + self.screenshot_dir) self.screenshot_count = 1 # Options to select device # 1) Set environment variable TESTDROID_DEVICE # 2) Set device name to this python script # 3) Do not set #1 and #2 and let DeviceFinder to find free device for you testdroid_device = os.environ.get('TESTDROID_DEVICE') or "" deviceFinder = DeviceFinder(url=testdroid_url) if testdroid_device == "": # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device() if "localhost" in appium_url: self.api_level = subprocess.check_output( ["adb", "shell", "getprop ro.build.version.sdk"]) else: self.api_level = deviceFinder.device_API_level(testdroid_device) log("Device API level is %s" % self.api_level) log("Starting Appium test using device '%s'" % testdroid_device) desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey if self.api_level > 16: desired_capabilities_cloud['testdroid_target'] = 'android' desired_capabilities_cloud['automationName'] = 'android' else: desired_capabilities_cloud['testdroid_target'] = 'selendroid' desired_capabilities_cloud['automationName'] = 'selendroid' desired_capabilities_cloud[ 'testdroid_project'] = testdroid_project_name desired_capabilities_cloud[ 'testdroid_testrun'] = testdroid_testrun_name desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['testdroid_app'] = testdroid_app desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['appPackage'] = app_package desired_capabilities_cloud['appActivity'] = app_activity desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud[ 'testdroid_testTimeout'] = testdroid_test_timeout # set up webdriver log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins" ) self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) log("WebDriver response received")
## ## IMPORTANT: Set the following parameters. ## screenshotDir= "/absolute/path/to/desired/directory" testdroid_username = "******" testdroid_password = "******" # Device can be manually defined, by device name found from Testdroid Cloud # testdroid_device = "LG Google Nexus 5 D821 4.4" # # DeviceFinder can be used to find available free device for testing deviceFinder = DeviceFinder(testdroid_username, testdroid_password) testdroid_device = "" while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_username'] = testdroid_username desired_capabilities_cloud['testdroid_password'] = testdroid_password desired_capabilities_cloud['testdroid_target'] = 'Android' desired_capabilities_cloud['testdroid_project'] = 'Appium 1.2.0 Android Demo' desired_capabilities_cloud['testdroid_testrun'] = 'TestRun 1' desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['testdroid_app'] = 'sample/BitbarSampleApp.apk' #desired_capabilities_cloud['app'] = '/absolut/path/to/your/application.apk' desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['appPackage'] = 'com.bitbar.testdroid'
# -*- coding: utf-8 -*- # from: https://github.com/bitbar/testdroid-samples/blob/03fc043ba98235b9ea46a0ab8646f3b20dd1960e/appium/sample-scripts/python/testdroid_safari.py import os from device_finder import DeviceFinder # Demonstrate finding available free iOS and Android devices. testdroid_username = os.environ['TESTDROID_USERNAME'] testdroid_password = os.environ['TESTDROID_PASSWORD'] ## DeviceFinder can be used to find available freemium device for testing deviceFinder = DeviceFinder(testdroid_username, testdroid_password) testdroid_device = "" ## Safari testing iPad 3 freemium device not yet supported as it is iOS 8.2 device while testdroid_device == "" or testdroid_device == "iPad 3 A1416 8.2": testdroid_device = deviceFinder.available_free_ios_device() testdroid_device = "" while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device()
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## You can set the parameters outside the script with environment variables. ## If env var is not set the string after or is used. ## self.screenshot_dir = os.environ.get( 'TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_url = os.environ.get( 'TESTDROID_URL') or "https://cloud.testdroid.com" testdroid_apiKey = os.environ.get('TESTDROID_APIKEY') or "" testdroid_app = os.environ.get('TESTDROID_APP') or "" appium_url = os.environ.get( 'TESTDROID_APPIUM_URL') or 'http://appium.testdroid.com/wd/hub' app_package = os.environ.get( 'TESTDROID_APP_PACKAGE') or 'com.testdroid.sample.android' app_activity = os.environ.get( 'TESTDROID_ACTIVITY') or '.MA_MainActivity' testdroid_project = os.environ.get( 'TESTDROID_PROJECT') or 'Android hybrid sample project' testdroid_testrun = os.environ.get('TESTDROID_TESTRUN') or 'My testrun' new_command_timeout = os.environ.get('TESTDROID_CMD_TIMEOUT') or '60' testdroid_test_timeout = os.environ.get( 'TESTDROID_TEST_TIMEOUT') or '600' log("Will save screenshots at: " + self.screenshot_dir) self.screenshot_count = 1 # Options to select device # 1) Set environment variable TESTDROID_DEVICE # 2) Set device name to this python script # 3) Do not set #1 and #2 and let DeviceFinder to find free device for you deviceFinder = None testdroid_device = os.environ.get('TESTDROID_DEVICE') or "" deviceFinder = DeviceFinder(url=testdroid_url) if testdroid_device == "": # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_android_device() apiLevel = deviceFinder.device_API_level(testdroid_device) print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey if apiLevel > 16: desired_capabilities_cloud['testdroid_target'] = 'android' else: desired_capabilities_cloud['testdroid_target'] = 'selendroid' desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_project'] = testdroid_project desired_capabilities_cloud['testdroid_testrun'] = testdroid_testrun desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['testdroid_app'] = testdroid_app desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['automationName'] = 'selendroid' desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud[ 'testdroid_testTimeout'] = testdroid_test_timeout # set up webdriver log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins" ) self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) log("WebDriver response received")