def setUp(self): ## ## IMPORTANT: Set the following parameters. ## 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 "Safari sample project" 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" 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) while testdroid_device == "": testdroid_device = deviceFinder.available_ios_device() print "Starting Appium test using device '%s'" % testdroid_device self.utils = TDUtils(self.screenshot_dir) self.utils.log("Will save screenshots at: " + self.screenshot_dir) desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'safari' 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'] = 'iOS' desired_capabilities_cloud['deviceName'] = 'iOS Device' desired_capabilities_cloud['browserName'] = 'Safari' desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud[ 'testdroid_testTimeout'] = testdroid_test_timeout # Set up webdriver self.utils.log( "WebDriver request initiated. Waiting for response, this typically takes 2-3 mins" ) self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) self.utils.update_driver(self.driver) test_url = "http://bitbar.github.io/testdroid-samples/" self.utils.log("Loading page " + test_url) self.driver.get(test_url)
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 setUp(self): ## ## IMPORTANT: Set the following parameters. ## bitbar_url = os.environ.get('BITBAR_URL') or "https://cloud.bitbar.com" appium_url = os.environ.get('BITBAR_APPIUM_URL') or 'https://appium.bitbar.com/wd/hub' bitbar_apiKey = os.environ.get('BITBAR_APIKEY') or "" bitbar_project_name = os.environ.get('BITBAR_PROJECT') or "iOS sample project" bitbar_testrun_name = os.environ.get('BITBAR_TESTRUN') or "My testrun" bitbar_app = os.environ.get('BITBAR_APP') or "" bitbar_bundle_id = os.environ.get('BITBAR_BUNDLE_ID') or "com.bitbar.testdroid.BitbarIOSSample" new_command_timeout = os.environ.get('BITBAR_CMD_TIMEOUT') or '60' bitbar_test_timeout = os.environ.get('BITBAR_TEST_TIMEOUT') or '600' bitbar_find_device = os.environ.get('BITBAR_FINDDEVICE') or True automation_name = os.environ.get('BITBAR_AUTOMATION_NAME') or "XCUITest" self.screenshot_dir = os.environ.get('BITBAR_SCREENSHOTS') or os.getcwd() + "/screenshots" # Options to select device # 1) Set environment variable BITBAR_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 bitbar_device = os.environ.get('BITBAR_DEVICE') or "" deviceFinder = DeviceFinder(url=bitbar_url) if bitbar_device == "": # Loop will not exit until free device is found while bitbar_device == "": bitbar_device = deviceFinder.available_ios_device() print("Starting Appium test using device '%s'" % bitbar_device) self.utils = BitbarUtils(self.screenshot_dir) self.utils.log("Will save screenshots at: " + self.screenshot_dir) desired_capabilities_cloud = {} desired_capabilities_cloud['bitbar_apiKey'] = bitbar_apiKey desired_capabilities_cloud['bitbar_target'] = 'ios' desired_capabilities_cloud['bitbar_project'] = bitbar_project_name desired_capabilities_cloud['bitbar_testrun'] = bitbar_testrun_name desired_capabilities_cloud['bitbar_device'] = bitbar_device desired_capabilities_cloud['bitbar_app'] = bitbar_app desired_capabilities_cloud['platformName'] = 'iOS' desired_capabilities_cloud['deviceName'] = 'iPhone device' desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud['bitbar_testTimeout'] = bitbar_test_timeout desired_capabilities_cloud['bitbar_findDevice'] = bitbar_find_device desired_capabilities_cloud['automationName'] = automation_name desired_capabilities_cloud['bundleId'] = bitbar_bundle_id # set up webdriver self.utils.log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(command_executor=appium_url, desired_capabilities=desired_capabilities_cloud) self.utils.update_driver(self.driver) self.utils.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. ## 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" 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_android_device() print "Starting Appium test using device '%s'" % testdroid_device self.utils = TDUtils(self.screenshot_dir) self.utils.log("Will save screenshots at: " + self.screenshot_dir) 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 # set up webdriver self.utils.log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) self.utils.update_driver(self.driver) test_url = "http://bitbar.github.io/testdroid-samples/" self.utils.log("Loading page "+ test_url) self.driver.get(test_url)
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## 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_app = os.environ.get('TESTDROID_APP') or "" self.screenshot_dir = os.environ.get( 'TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_project_name = os.environ.get( 'TESTDROID_PROJECT') or "Appium iOS demo" testdroid_testrun_name = os.environ.get( 'TESTDROID_TESTRUN') or "My testrun" # 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 "" if testdroid_device == "": deviceFinder = DeviceFinder(url=testdroid_url) # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_ios_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = { 'testdroid_apiKey': testdroid_apiKey, 'testdroid_target': 'ios', 'testdroid_project': testdroid_project_name, 'testdroid_testrun': testdroid_testrun_name, 'testdroid_device': testdroid_device, 'testdroid_app': testdroid_app, 'testdroid_description': 'Appium project description', 'platformName': 'iOS', 'deviceName': 'iPhone device', 'bundleId': 'com.bitbar.testdroid.BitbarIOSSample', } # set up webdriver log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins" ) self.driver = webdriver.Remote( command_executor=appium_url, desired_capabilities=desired_capabilities_cloud) log("WebDriver response received")
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## 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 "iOS sample project" testdroid_testrun_name = os.environ.get('TESTDROID_TESTRUN') or "My testrun" testdroid_app = os.environ.get('TESTDROID_APP') or "" testdroid_bundle_id = os.environ.get('TESTDROID_BUNDLE_ID') or "com.bitbar.testdroid.BitbarIOSSample" new_command_timeout = os.environ.get('TESTDROID_CMD_TIMEOUT') or '60' testdroid_test_timeout = os.environ.get('TESTDROID_TEST_TIMEOUT') or '600' testdroid_find_device = os.environ.get('TESTDROID_FINDDEVICE') or "true" automation_name = os.environ.get('TESTDROID_AUTOMATION_NAME') or "XCUITest" 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_ios_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'ios' 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'] = 'iOS' desired_capabilities_cloud['deviceName'] = 'iPhone device' desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud['testdroid_testTimeout'] = testdroid_test_timeout desired_capabilities_cloud['testdroid_findDevice'] = testdroid_find_device desired_capabilities_cloud['automationName'] = automation_name desired_capabilities_cloud['app'] = testdroid_bundle_id # set up webdriver log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(command_executor=appium_url, desired_capabilities=desired_capabilities_cloud) log("WebDriver response received")
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## 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 "" self.screenshotDir = os.environ.get( 'TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_project_name = os.environ.get( 'TESTDROID_PROJECT') or "Appium Safari demo" testdroid_testrun_name = os.environ.get( 'TESTDROID_TESTRUN') or "My testrun" # 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 "" if testdroid_device == "": deviceFinder = DeviceFinder(url=testdroid_url) # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_ios_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'safari' 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'] = 'iOS' desired_capabilities_cloud['deviceName'] = 'iOS Device' desired_capabilities_cloud['browserName'] = 'Safari' 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_capabilities_cloud) log("Loading page http://docs.testdroid.com") self.driver.get("http://docs.testdroid.com") self.screenShotCount = 1
def setUp(self): # # IMPORTANT: Set the following parameters. # bitbar_url = os.environ.get('BITBAR_URL') or "https://cloud.bitbar.com" appium_url = os.environ.get('BITBAR_APPIUM_URL') or 'https://appium.bitbar.com/wd/hub' bitbar_apiKey = os.environ.get('BITBAR_APIKEY') or "" bitbar_project_name = os.environ.get('BITBAR_PROJECT') or "Safari sample project" bitbar_testrun_name = os.environ.get('BITBAR_TESTRUN') or "My testrun" new_command_timeout = os.environ.get('BITBAR_CMD_TIMEOUT') or '60' bitbar_test_timeout = os.environ.get('BITBAR_TEST_TIMEOUT') or '600' bitbar_find_device = os.environ.get('BITBAR_FINDDEVICE') or "true" automation_name = os.environ.get('BITBAR_AUTOMATION_NAME') or "XCUITest" self.screenshot_dir = os.environ.get('BITBAR_SCREENSHOTS') or os.getcwd() + "/screenshots" self.screenshot_count = 1 # Options to select device # 1) Set environment variable BITBAR_DEVICE # 2) Set device name to this python script # 3) Do not set #1 and #2 and let DeviceFinder find a free device bitbar_device = os.environ.get('BITBAR_DEVICE') or "" deviceFinder = DeviceFinder(url=bitbar_url) while bitbar_device == "": bitbar_device = deviceFinder.available_ios_device() print("Starting Appium test using device '%s'" % bitbar_device) self.utils = BitbarUtils(self.screenshot_dir) self.utils.log("Will save screenshots at: " + self.screenshot_dir) desired_capabilities_cloud = {} desired_capabilities_cloud['bitbar_apiKey'] = bitbar_apiKey desired_capabilities_cloud['bitbar_target'] = 'safari' desired_capabilities_cloud['bitbar_project'] = bitbar_project_name desired_capabilities_cloud['bitbar_testrun'] = bitbar_testrun_name desired_capabilities_cloud['bitbar_device'] = bitbar_device desired_capabilities_cloud['platformName'] = 'iOS' desired_capabilities_cloud['deviceName'] = 'iOS Device' desired_capabilities_cloud['browserName'] = 'Safari' desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud['bitbar_testTimeout'] = bitbar_test_timeout desired_capabilities_cloud['bitbar_findDevice'] = bitbar_find_device desired_capabilities_cloud['automationName'] = automation_name # Set up webdriver self.utils.log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) self.utils.update_driver(self.driver) self.utils.wait_until_xpath_matches('//*[contains(., "Automation for Apps")]') test_url = "https://bitbar.github.io/web-testing-target/" self.utils.log("Loading page " + test_url) self.driver.get(test_url)
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. ## 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. ## 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. ## 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 "Safari sample project" 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' testdroid_find_device = os.environ.get('TESTDROID_FINDDEVICE') or "true" automation_name = os.environ.get('TESTDROID_AUTOMATION_NAME') or "XCUITest" self.screenshot_dir = os.environ.get('TESTDROID_SCREENSHOTS') or os.getcwd() + "/screenshots" 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) while testdroid_device == "": testdroid_device = deviceFinder.available_ios_device() print "Starting Appium test using device '%s'" % testdroid_device self.utils = TDUtils(self.screenshot_dir) self.utils.log("Will save screenshots at: " + self.screenshot_dir) desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'safari' 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'] = 'iOS' desired_capabilities_cloud['deviceName'] = 'iOS Device' desired_capabilities_cloud['browserName'] = 'Safari' desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud['testdroid_testTimeout'] = testdroid_test_timeout desired_capabilities_cloud['testdroid_findDevice'] = testdroid_find_device desired_capabilities_cloud['automationName'] = automation_name # Set up webdriver self.utils.log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) self.utils.update_driver(self.driver) test_url = "http://bitbar.github.io/testdroid-samples/" self.utils.log("Loading page " + test_url) self.driver.get(test_url)
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## 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 "iOS sample project" testdroid_testrun_name = os.environ.get('TESTDROID_TESTRUN') or "My testrun" testdroid_app = os.environ.get('TESTDROID_APP') or "" testdroid_bundle_id = os.environ.get('TESTDROID_BUNDLE_ID') or "com.bitbar.testdroid.BitbarIOSSample" new_command_timeout = os.environ.get('TESTDROID_CMD_TIMEOUT') or '60' testdroid_test_timeout = os.environ.get('TESTDROID_TEST_TIMEOUT') or '600' testdroid_find_device = os.environ.get('TESTDROID_FINDDEVICE') or "true" 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_ios_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'ios' 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'] = 'iOS' desired_capabilities_cloud['deviceName'] = 'iPhone device' desired_capabilities_cloud['bundleId'] = testdroid_bundle_id desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud['testdroid_testTimeout'] = testdroid_test_timeout desired_capabilities_cloud['testdroid_findDevice'] = testdroid_find_device # set up webdriver log ("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(command_executor=appium_url, desired_capabilities=desired_capabilities_cloud) 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): appium_Url = 'http://appium.testdroid.com/wd/hub' #appium_Url = 'http://localhost:4723/wd/hub' ## ## IMPORTANT: Set the following parameters. ## self.screenshot_dir = os.environ.get( 'TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_apiKey = os.environ.get('TESTDROID_APIKEY') or "" testdroid_url = os.environ.get( 'TESTDROID_URL') or "https://cloud.testdroid.com" # 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 == "": deviceFinder = DeviceFinder(url=testdroid_url) # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_ios_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'safari' desired_capabilities_cloud['testdroid_project'] = 'Appium Safari Demo' desired_capabilities_cloud['testdroid_testrun'] = 'TestRun A' desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['platformName'] = 'iOS' desired_capabilities_cloud['deviceName'] = 'iOS Device' desired_capabilities_cloud['browserName'] = 'Safari' desired_caps = desired_capabilities_cloud 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_caps) self.driver.implicitly_wait(60)
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## 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_username = os.environ.get('TESTDROID_USERNAME') or "*****@*****.**" testdroid_password = os.environ.get('TESTDROID_PASSWORD') or "password" self.screenshot_dir = os.environ.get('TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_project_name = os.environ.get('TESTDROID_PROJECT') or "Appium iOS demo" testdroid_testrun_name = os.environ.get('TESTDROID_TESTRUN') or "My testrun" # 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 "" if testdroid_device == "": deviceFinder = DeviceFinder(username=testdroid_username, password=testdroid_password, url=testdroid_url) # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_ios_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud={ 'testdroid_username': testdroid_username, 'testdroid_password': testdroid_password, 'testdroid_project': testdroid_project_name, 'testdroid_target': 'ios', 'testdroid_description': 'Appium project description', 'testdroid_testrun': testdroid_testrun_name, 'testdroid_device': testdroid_device, 'testdroid_app': 'sample/BitbarIOSSample.ipa', 'platformName': 'iOS', 'deviceName': 'iPhone device', 'bundleId': 'com.bitbar.testdroid.BitbarIOSSample', } # set up webdriver log ("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(command_executor=appium_url,desired_capabilities=desired_capabilities_cloud) 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.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 "" appium_url = os.environ.get('TESTDROID_APPIUM_URL') or 'http://appium.testdroid.com/wd/hub' testdroid_project_name = os.environ.get('TESTDROID_PROJECT') or 'Appium Chrome Demo' testdroid_testrun_name = os.environ.get('TESTDROID_TESTRUN') or "My testrun" # 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' 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") self.screenShotCount = 1
def setUp(self): appium_Url = 'http://appium.testdroid.com/wd/hub' #appium_Url = 'http://localhost:4723/wd/hub' ## ## IMPORTANT: Set the following parameters. ## self.screenshot_dir = os.environ.get('TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_apiKey = os.environ.get('TESTDROID_APIKEY') or "" testdroid_url = os.environ.get('TESTDROID_URL') or "https://cloud.testdroid.com" # 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 == "": deviceFinder = DeviceFinder(url=testdroid_url) # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_ios_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'safari' desired_capabilities_cloud['testdroid_project'] = 'Appium Safari Demo' desired_capabilities_cloud['testdroid_testrun'] = 'TestRun A' desired_capabilities_cloud['testdroid_device'] = testdroid_device desired_capabilities_cloud['platformName'] = 'iOS' desired_capabilities_cloud['deviceName'] = 'iOS Device' desired_capabilities_cloud['browserName'] = 'Safari' desired_caps = desired_capabilities_cloud; 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_caps) self.driver.implicitly_wait(60)
def setUp(self): ## ## IMPORTANT: Set the following parameters. ## 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 "" self.screenshot_dir = os.environ.get("TESTDROID_SCREENSHOTS") or "/absolute/path/to/desired/directory" testdroid_project_name = os.environ.get("TESTDROID_PROJECT") or "Appium iOS demo" testdroid_testrun_name = os.environ.get("TESTDROID_TESTRUN") or "My testrun" # 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 "" if testdroid_device == "": deviceFinder = DeviceFinder(url=testdroid_url) # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_ios_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud = {} desired_capabilities_cloud["testdroid_apiKey"] = testdroid_apiKey desired_capabilities_cloud["testdroid_target"] = "safari" 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"] = "iOS" desired_capabilities_cloud["deviceName"] = "iOS Device" desired_capabilities_cloud["browserName"] = "Safari" desired_caps = desired_capabilities_cloud 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_caps) self.driver.implicitly_wait(60)
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' testdroid_find_device = os.environ.get( 'TESTDROID_FINDDEVICE') or "true" self.screenshot_dir = os.environ.get( 'TESTDROID_SCREENSHOTS') or os.getcwd() + "/screenshots" 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) # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_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) self.utils = TDUtils(self.screenshot_dir) self.utils.log("Will save screenshots at: " + self.screenshot_dir) self.utils.log("Device API level is %s" % self.api_level) self.utils.log("Starting Appium test using device '%s'" % testdroid_device) desired_capabilities_cloud = {} desired_capabilities_cloud['testdroid_apiKey'] = testdroid_apiKey desired_capabilities_cloud['testdroid_target'] = 'android' desired_capabilities_cloud['automationName'] = 'Appium' if self.api_level <= 16: 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 desired_capabilities_cloud[ 'testdroid_findDevice'] = testdroid_find_device # set up webdriver self.utils.log( "WebDriver request initiated. Waiting for response, this typically takes 2-3 mins" ) self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) self.utils.log("WebDriver response received") self.utils.update_driver(self.driver) self.utils.log("Driver session id: " + self.driver.session_id)
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. # bitbar_url = os.environ.get('BITBAR_URL') or \ "https://cloud.bitbar.com" appium_url = os.environ.get('BITBAR_APPIUM_URL') or \ 'https://appium.bitbar.com/wd/hub' bitbar_apiKey = os.environ.get('BITBAR_APIKEY') or "" bitbar_project = os.environ.get('BITBAR_PROJECT') or \ 'Android hybrid sample project' bitbar_testrun = os.environ.get('BITBAR_TESTRUN') or \ 'My testrun' bitbar_app = os.environ.get('BITBAR_APP') or "" app_package = os.environ.get('BITBAR_APP_PACKAGE') or \ 'com.testdroid.sample.android' app_activity = os.environ.get('BITBAR_ACTIVITY') or \ '.MM_MainMenu' new_command_timeout = os.environ.get('BITBAR_CMD_TIMEOUT') or '60' bitbar_test_timeout = os.environ.get('BITBAR_TEST_TIMEOUT') or '600' self.screenshot_dir = os.environ.get('BITBAR_SCREENSHOTS') or \ os.getcwd() + "/screenshots" self.screenshot_count = 1 # Options to select device # 1) Set environment variable BITBAR_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 bitbar_device = os.environ.get('BITBAR_DEVICE') or "" deviceFinder = DeviceFinder(url=bitbar_url) if bitbar_device == "": # Loop will not exit until free device is found while bitbar_device == "": bitbar_device = deviceFinder.available_android_device() self.utils = BitbarUtils(self.screenshot_dir) self.utils.log("Will save screenshots at: " + self.screenshot_dir) 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(bitbar_device) self.utils.log("Device API level is %s" % self.api_level) self.utils.log("Starting Appium test using device '%s'" % bitbar_device) desired_capabilities_cloud = {} desired_capabilities_cloud['bitbar_apiKey'] = bitbar_apiKey if self.api_level > 16: desired_capabilities_cloud['bitbar_target'] = 'android' desired_capabilities_cloud['automationName'] = 'Appium' else: desired_capabilities_cloud['bitbar_target'] = 'selendroid' desired_capabilities_cloud['automationName'] = 'Selendroid' desired_capabilities_cloud['bitbar_apiKey'] = bitbar_apiKey desired_capabilities_cloud['bitbar_project'] = bitbar_project desired_capabilities_cloud['bitbar_testrun'] = bitbar_testrun desired_capabilities_cloud['bitbar_device'] = bitbar_device desired_capabilities_cloud['bitbar_app'] = bitbar_app desired_capabilities_cloud['appPackage'] = app_package desired_capabilities_cloud['appActivity'] = app_activity desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['fullReset'] = False desired_capabilities_cloud['noReset'] = True desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud['bitbar_testTimeout'] = bitbar_test_timeout # set up webdriver self.utils.log("WebDriver request initiated. Waiting for response, \ this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) self.utils.update_driver(self.driver) self.utils.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 = os.environ.get('TESTDROID_PROJECT') or 'Android hybrid sample project' testdroid_testrun = 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.testdroid.sample.android' app_activity = os.environ.get('TESTDROID_ACTIVITY') or '.MM_MainMenu' 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" 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_android_device() self.utils = TDUtils(self.screenshot_dir) self.utils.log("Will save screenshots at: " + self.screenshot_dir) 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) self.utils.log("Device API level is %s" % self.api_level) self.utils.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_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['appPackage'] = app_package desired_capabilities_cloud['appActivity'] = app_activity desired_capabilities_cloud['platformName'] = 'Android' desired_capabilities_cloud['deviceName'] = 'Android Phone' desired_capabilities_cloud['newCommandTimeout'] = new_command_timeout desired_capabilities_cloud['testdroid_testTimeout'] = testdroid_test_timeout # set up webdriver self.utils.log("WebDriver request initiated. Waiting for response, this typically takes 2-3 mins") self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) self.utils.update_driver(self.driver) self.utils.log("WebDriver response received")
class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self, None) uic.loadUi('mainwindow.ui', self) self.resize(700, 500) self.plotWindow = PlotWindow() self.stackedPlots.addWidget(self.plotWindow) self.stackedPlots.setCurrentIndex(0) self.actionRefresh.triggered[bool].connect(self.refreshList) self.actionConnect.triggered[bool].connect(self.connectFromList) self.actionDisconnect.triggered[bool].connect( self.disconnectFromCurrentDevice) self.actionLock.toggled[bool].connect(self.hold) self.actionViewAll.toggled[bool].connect(self.autoSet) self.actionExport.triggered[bool].connect(self.exportData) self.actionQuit.triggered[bool].connect(self.quitApp) self.actionAbout.triggered[bool].connect(self.aboutApp) self.listDevices.itemSelectionChanged.connect(self.deviceListChanged) self.actionViewAll.setChecked(True) self.autoSet(self.actionViewAll.isChecked()) self.ifaces = [] self.port = None self.baud = 115200 self.iface = None self.iface_thread = None self.initDeviceFinder() self.disableControls() self.deviceListChanged() self.statusBar().showMessage('Ready.') def deviceListChanged(self): if self.listDevices.count() > 0: self.actionConnect.setEnabled(True) self.enableControls() else: self.actionConnect.setEnabled(False) self.disableControls() def disableControls(self): self.plotWindow.setEnabled(False) self.actionDisconnect.setEnabled(False) self.actionLock.setEnabled(False) self.actionViewAll.setEnabled(False) self.actionExport.setEnabled(False) def enableControls(self): self.plotWindow.setEnabled(True) self.actionDisconnect.setEnabled(True) self.actionLock.setEnabled(True) self.actionViewAll.setEnabled(True) self.actionExport.setEnabled(True) def initDeviceFinder(self): self.device_finder = DeviceFinder() self.device_finder.foundDevice[str, SerialInterface].connect( self.gotNewDevice) self.device_finder.start() def gotNewDevice(self, port, iface): self.port = port self.listDevices.addItem( QtGui.QListWidgetItem(QtGui.QIcon('icons/device.png'), port)) self.ifaces.append(iface) self.statusBar().showMessage('Found %d device(s).' % self.listDevices.count()) def startSampling(self): self.iface_thread.start() def stopSampling(self): self.iface_thread.stop__() self.iface_thread.exit() def connectDevice(self): if not self.iface: self.iface = self.ifaces[self.listDevices.currentRow()] if self.iface: if not self.iface.isConnected(): self.iface = SerialInterface(self.port, self.baud) self.iface.connectToArduino() if not self.iface.serial_conn.isOpen(): self.iface.serial_conn.open() if self.iface.isConnected(): if self.iface_thread: del self.iface_thread self.iface_thread = SerialThread(self.iface) self.iface_thread.n_samples = 1000 self.iface_thread.gotSamples[tuple, int].connect( self.plotWindow.plotSamples) #self.iface_thread.deviceDisconnected.connect(self.disconnectFromCurrentDevice) self.startSampling() return True return False def refreshList(self): self.statusBar().showMessage('Searching...') for i in range(0, self.listDevices.count()): port = self.listDevices.item(i).text() self.device_finder.found.remove(port) self.listDevices.clear() self.ifaces = [] def connectFromList(self): self.actionConnect.setEnabled(False) self.actionDisconnect.setEnabled(True) self.actionRefresh.setEnabled(False) #self.connectDevice(self.listDevices.currentItem().text()) if self.connectDevice(): self.enableControls() else: QtGui.QMessageBox.critical( self, 'Error', 'Cannot connect to the device, refresh the list') def disconnectFromCurrentDevice(self): self.actionConnect.setEnabled(True) self.actionDisconnect.setEnabled(False) self.actionRefresh.setEnabled(True) self.disableControls() try: self.stopSampling() self.iface.disconnect() except: pass self.iface = None self.plotWindow.plot_item_a.clear() self.plotWindow.plot_item_p.clear() def exportData(self): self.plotWindow.scene().showExportDialog() def hold(self, checked): if checked: self.stopSampling() else: self.connectDevice() self.startSampling() def autoSet(self, checked): if checked: self.plotWindow.plot_item_a.enableAutoRange() self.plotWindow.plot_item_p.enableAutoRange() else: self.plotWindow.plot_item_a.disableAutoRange() self.plotWindow.plot_item_p.disableAutoRange() def quitApp(self): try: self.disconnectFromCurrentDevice() except: pass QtGui.QApplication.exit(0) def aboutApp(self): QtGui.QMessageBox.about( self, 'About', """<b>Spectrum Analyzer</b><br>Computer Peripherals Interface Project<br><b>By:</b><br>Sherif Adel Radwan<br>Mahmoud Sayed Zainhom<br>Abdelrahman Ghanem Abdelrady""" ) def closeEvent(self, event): if self.iface: self.iface.disconnect()
def initDeviceFinder(self): self.device_finder = DeviceFinder() self.device_finder.foundDevice[str, SerialInterface].connect( self.gotNewDevice) self.device_finder.start()
# -*- 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()
print (time.strftime("%H:%M:%S") + ": " + msg) appium_Url = 'http://appium.testdroid.com/wd/hub'; ## ## 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'
class DeviceManager(QWidget): """Widget for device management""" usb_table = list() # in ms table_update_interval = 1000 dev_finder = DeviceFinder() def __init__(self, parent=None): """Adds elements to widget""" super(DeviceManager, self).__init__(parent) block_device_table_label = QLabel("Block devices:") mtp_device_table_label = QLabel("MTP devices:") connection_log_label = QLabel("Device connection log:") self.unmount_button = QPushButton("Unmount selected drives") self.reload_mtp_list_button = QPushButton("Reload MTP list") self.connection_log = QTextBrowser() self.block_device_table_widget = QTableWidget() self.mtp_device_table_widget = QTableWidget() self.block_header = [ "Device", "Label", "Mount point", "Total", "Free", "Used" ] self.mtp_header = [ "Manufacturer", "Model", "Total", "Free", "Used", "Storage Description" ] self.table_view_setup(self.block_device_table_widget, self.block_header) self.table_view_setup(self.mtp_device_table_widget, self.mtp_header) self.main_layout_init(block_device_table_label, connection_log_label, mtp_device_table_label) self.setWindowTitle("USB Manager") self.usb_table = self.dev_finder.get_usb_table() self.update_table_widget(self.usb_table) self.reload_device_table() self.unmount_button.pressed.connect(self.unmount_button_handler) self.reload_mtp_list_button.pressed.connect( self.reload_mtp_list_button_handler) def table_view_setup(self, table_widget, header): table_widget.setEditTriggers(QAbstractItemView.NoEditTriggers) table_widget.setColumnCount(len(header)) table_widget.setHorizontalHeaderLabels(header) table_widget.setSelectionBehavior(QAbstractItemView.SelectRows) def reload_mtp_list_button_handler(self): mtp_list = self.dev_finder.get_mtp_devices() self.mtp_device_table_widget.clear() self.mtp_device_table_widget.setHorizontalHeaderLabels(self.mtp_header) self.mtp_device_table_widget.setRowCount(len(mtp_list)) i = 0 for device in mtp_list: j = 0 for field in device: self.mtp_device_table_widget.setItem(i, j, QTableWidgetItem(field)) j += 1 i += 1 def main_layout_init(self, block_device_table_label, connection_log_label, mtp_device_table_label): grid_layout = self.grid_layout_init(block_device_table_label, mtp_device_table_label) vbox_layout = self.vbox_layout_init(connection_log_label) main_layout = QGridLayout() main_layout.addLayout(grid_layout, 0, 0) main_layout.addLayout(vbox_layout, 1, 0) self.setLayout(main_layout) def vbox_layout_init(self, connection_log_label): vbox_layout = QVBoxLayout() vbox_layout.addWidget(connection_log_label) vbox_layout.addWidget(self.connection_log) return vbox_layout def grid_layout_init(self, block_device_table_label, mtp_device_table_label): grid_layout = QGridLayout() grid_layout.addWidget(block_device_table_label, 0, 0, Qt.AlignCenter) grid_layout.addWidget(mtp_device_table_label, 0, 1, Qt.AlignCenter) grid_layout.addWidget(self.block_device_table_widget, 1, 0) grid_layout.addWidget(self.mtp_device_table_widget, 1, 1) grid_layout.addWidget(self.unmount_button, 2, 0) grid_layout.addWidget(self.reload_mtp_list_button, 2, 1) return grid_layout def unmount_button_handler(self): """Unmount selected devices if they are not busy""" selected_fields = self.block_device_table_widget.selectedItems() for item in selected_fields: for device in self.usb_table: if item.text() == device[0] and len(device) > 2: res = os.system("umount " + device[2]) if res: self.connection_log.append(device[2] + "is busy") else: self.connection_log.append(device[2] + " is unmounted") self.usb_table = self.dev_finder.get_usb_table() self.update_table_widget(self.usb_table) def reload_device_table(self): """Gather info about connected devices""" new_usb_table = self.dev_finder.get_usb_table() self.remove_event_check(new_usb_table) self.connect_event_check(new_usb_table) if self.usb_table != new_usb_table: self.update_table_widget(new_usb_table) self.usb_table = new_usb_table QTimer.singleShot(self.table_update_interval, self.reload_device_table) def update_table_widget(self, new_usb_table): """Update connected devices table""" self.block_device_table_widget.clear() self.block_device_table_widget.setHorizontalHeaderLabels( self.block_header) self.block_device_table_widget.setRowCount(len(new_usb_table)) i = 0 for device in new_usb_table: j = 0 for field in device: self.block_device_table_widget.setItem(i, j, QTableWidgetItem(field)) j += 1 i += 1 def connect_event_check(self, new_usb_table): """Show message on device connection""" for new_table_device in new_usb_table: found = False for device in self.usb_table: if new_table_device[0] == device[0]: found = True break if not found: self.connection_log.append(new_table_device[1] + " was connected") def remove_event_check(self, new_usb_table): """Show message on device remove""" for device in self.usb_table: found = False for new_table_device in new_usb_table: if device[0] == new_table_device[0]: found = True break if not found: self.connection_log.append(device[1] + " was removed")
class DeviceManager(QWidget): usb_table = [] table_update_interval = 1000 dev_finder = DeviceFinder() def __init__(self, parent=None): super(DeviceManager, self).__init__(parent) block_device_table_label = QLabel("Block devices:") mtp_device_table_label = QLabel("MTP devices:") self.unmount_button = QPushButton("Unmount selected drives") self.reload_mtp_list_button = QPushButton("Reload MTP list") self.block_device_table_widget = QTableWidget() self.mtp_device_table_widget = QTableWidget() self.block_header = [ "Device", "Label", "Mount point", "Total", "Free", "Used" ] self.mtp_header = [ "Manufacturer", "Model", "Total", "Free", "Used", "Storage Description" ] self.table_view_setup(self.block_device_table_widget, self.block_header) self.table_view_setup(self.mtp_device_table_widget, self.mtp_header) self.grid_layout_init(block_device_table_label, mtp_device_table_label) self.setWindowTitle("USB Manager") self.usb_table = self.dev_finder.get_usb_table() self.update_table_widget(self.usb_table) self.reload_device_table() self.unmount_button.pressed.connect(self.unmount_button_handler) self.reload_mtp_list_button.pressed.connect( self.reload_mtp_list_button_handler) def table_view_setup(self, table_widget, header): table_widget.setEditTriggers(QAbstractItemView.NoEditTriggers) table_widget.setColumnCount(len(header)) table_widget.setHorizontalHeaderLabels(header) table_widget.setSelectionBehavior(QAbstractItemView.SelectRows) def reload_mtp_list_button_handler(self): mtp_list = self.dev_finder.get_mtp_devices() self.mtp_device_table_widget.clear() self.mtp_device_table_widget.setHorizontalHeaderLabels(self.mtp_header) self.mtp_device_table_widget.setRowCount(len(mtp_list)) for i, device in enumerate(mtp_list): for j, field in enumerate(device): self.mtp_device_table_widget.setItem(i, j, QTableWidgetItem(field)) def grid_layout_init(self, block_device_table_label, mtp_device_table_label): grid_layout = QGridLayout() grid_layout.addWidget(block_device_table_label, 0, 0, Qt.AlignCenter) grid_layout.addWidget(mtp_device_table_label, 0, 1, Qt.AlignCenter) grid_layout.addWidget(self.block_device_table_widget, 1, 0) grid_layout.addWidget(self.mtp_device_table_widget, 1, 1) grid_layout.addWidget(self.unmount_button, 2, 0) grid_layout.addWidget(self.reload_mtp_list_button, 2, 1) self.setLayout(grid_layout) def unmount_button_handler(self): """Unmount selected devices if they are not busy""" selected_fields = self.block_device_table_widget.selectedItems() for item in selected_fields: for device in self.usb_table: if item.text() == device[0] and len(device) > 2: res = os.system("umount " + device[2]) self.usb_table = self.dev_finder.get_usb_table() self.update_table_widget(self.usb_table) def reload_device_table(self): """Gather info about connected devices""" new_usb_table = self.dev_finder.get_usb_table() usb_table = [] for i in new_usb_table: if len(i) > 2: usb_table.append(i) new_usb_table = usb_table if self.usb_table != new_usb_table: self.update_table_widget(new_usb_table) self.usb_table = new_usb_table QTimer.singleShot(self.table_update_interval, self.reload_device_table) def update_table_widget(self, new_usb_table): """Update connected devices table""" self.block_device_table_widget.clear() self.block_device_table_widget.setHorizontalHeaderLabels( self.block_header) self.block_device_table_widget.setRowCount(len(new_usb_table)) for i, device in enumerate(new_usb_table): for j, field in enumerate(device): self.block_device_table_widget.setItem(i, j, QTableWidgetItem(field))
testdroid_username = os.environ.get('TESTDROID_USERNAME') or "*****@*****.**" testdroid_password = os.environ.get('TESTDROID_PASSWORD') or "password" screenshot_dir = os.environ.get('TESTDROID_SCREENSHOTS') or "/absolute/path/to/desired/directory" testdroid_project_name = os.environ.get('TESTDROID_PROJECT') or "Appium iOS demo" testdroid_testrun_name = os.environ.get('TESTDROID_TESTRUN') or "My testrun" # 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 "" if testdroid_device == "": deviceFinder = DeviceFinder(username=testdroid_username, password=testdroid_password, url=testdroid_url) # Loop will not exit until free device is found while testdroid_device == "": testdroid_device = deviceFinder.available_free_ios_device() print "Starting Appium test using device '%s'" % testdroid_device desired_capabilities_cloud={ 'testdroid_username': testdroid_username, 'testdroid_password': testdroid_password, 'testdroid_project': testdroid_project_name, 'testdroid_target': 'ios', 'testdroid_description': 'Appium project description', 'testdroid_testrun': testdroid_testrun_name, 'testdroid_device': testdroid_device, 'testdroid_app': 'sample/BitbarIOSSample.ipa',
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. ## bitbar_url = os.environ.get('BITBAR_URL') or \ "https://cloud.bitbar.com" appium_url = os.environ.get('BITBAR_APPIUM_URL') or \ 'https://appium.bitbar.com/wd/hub' bitbar_apiKey = os.environ.get('BITBAR_APIKEY') or "" bitbar_project_name = os.environ.get('BITBAR_PROJECT') or \ 'Appium Chrome Demo' bitbar_testrun_name = os.environ.get('BITBAR_TESTRUN') or \ "My testrun" new_command_timeout = os.environ.get('BITBAR_CMD_TIMEOUT') or '60' bitbar_test_timeout = os.environ.get('BITBAR_TEST_TIMEOUT') or '600' bitbar_find_device = os.environ.get('BITBAR_FINDDEVICE') or "true" self.screenshot_dir = os.environ.get('BITBAR_SCREENSHOTS') or \ os.getcwd() + "/screenshots" self.screenshot_count = 1 # Options to select device # 1) Set environment variable BITBAR_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 bitbar_device = os.environ.get('BITBAR_DEVICE') or "" deviceFinder = DeviceFinder(url=bitbar_url) if bitbar_device == "": # Loop will not exit until free device is found while bitbar_device == "": bitbar_device = deviceFinder.available_android_device() print("Starting Appium test using device '%s'" % bitbar_device) self.utils = BitbarUtils(self.screenshot_dir) self.utils.log("Will save screenshots at: " + self.screenshot_dir) desired_capabilities_cloud = {} desired_capabilities_cloud['bitbar_apiKey'] = bitbar_apiKey desired_capabilities_cloud['bitbar_target'] = 'chrome' desired_capabilities_cloud['bitbar_project'] = bitbar_project_name desired_capabilities_cloud['bitbar_testrun'] = bitbar_testrun_name desired_capabilities_cloud['bitbar_device'] = bitbar_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['bitbar_testTimeout'] = bitbar_test_timeout desired_capabilities_cloud['bitbar_findDevice'] = bitbar_find_device # set up webdriver self.utils.log( "WebDriver request initiated. Waiting for response, this typically takes 2-3 mins" ) self.driver = webdriver.Remote(appium_url, desired_capabilities_cloud) self.utils.update_driver(self.driver) test_url = "https://bitbar.github.io/web-testing-target/" self.utils.log("Loading page " + test_url) self.driver.get(test_url)
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")
def initDeviceFinder(self): self.device_finder = DeviceFinder() self.device_finder.foundDevice[str, SerialInterface].connect(self.gotNewDevice) self.device_finder.start()
class MainWindow(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self, None) uic.loadUi('mainwindow.ui', self) self.resize(700, 500) self.plotWindow = PlotWindow() self.stackedPlots.addWidget(self.plotWindow) self.stackedPlots.setCurrentIndex(0) self.actionRefresh.triggered[bool].connect(self.refreshList) self.actionConnect.triggered[bool].connect(self.connectFromList) self.actionDisconnect.triggered[bool].connect(self.disconnectFromCurrentDevice) self.actionLock.toggled[bool].connect(self.hold) self.actionViewAll.toggled[bool].connect(self.autoSet) self.actionExport.triggered[bool].connect(self.exportData) self.actionQuit.triggered[bool].connect(self.quitApp) self.actionAbout.triggered[bool].connect(self.aboutApp) self.listDevices.itemSelectionChanged.connect(self.deviceListChanged) self.actionViewAll.setChecked(True) self.autoSet(self.actionViewAll.isChecked()) self.ifaces = [] self.port = None self.baud = 115200 self.iface = None self.iface_thread = None self.initDeviceFinder() self.disableControls() self.deviceListChanged() self.statusBar().showMessage('Ready.') def deviceListChanged(self): if self.listDevices.count() > 0: self.actionConnect.setEnabled(True) self.enableControls() else: self.actionConnect.setEnabled(False) self.disableControls() def disableControls(self): self.plotWindow.setEnabled(False) self.actionDisconnect.setEnabled(False) self.actionLock.setEnabled(False) self.actionViewAll.setEnabled(False) self.actionExport.setEnabled(False) def enableControls(self): self.plotWindow.setEnabled(True) self.actionDisconnect.setEnabled(True) self.actionLock.setEnabled(True) self.actionViewAll.setEnabled(True) self.actionExport.setEnabled(True) def initDeviceFinder(self): self.device_finder = DeviceFinder() self.device_finder.foundDevice[str, SerialInterface].connect(self.gotNewDevice) self.device_finder.start() def gotNewDevice(self, port, iface): self.port = port self.listDevices.addItem(QtGui.QListWidgetItem(QtGui.QIcon('icons/device.png'), port)) self.ifaces.append(iface) self.statusBar().showMessage('Found %d device(s).' % self.listDevices.count()) def startSampling(self): self.iface_thread.start() def stopSampling(self): self.iface_thread.stop__() self.iface_thread.exit() def connectDevice(self): if not self.iface: self.iface = self.ifaces[self.listDevices.currentRow()] if self.iface: if not self.iface.isConnected(): self.iface = SerialInterface(self.port, self.baud) self.iface.connectToArduino() if not self.iface.serial_conn.isOpen(): self.iface.serial_conn.open() if self.iface.isConnected(): if self.iface_thread: del self.iface_thread self.iface_thread = SerialThread(self.iface) self.iface_thread.n_samples = 1000 self.iface_thread.gotSamples[tuple, int].connect(self.plotWindow.plotSamples) #self.iface_thread.deviceDisconnected.connect(self.disconnectFromCurrentDevice) self.startSampling() return True return False def refreshList(self): self.statusBar().showMessage('Searching...') for i in range(0, self.listDevices.count()): port = self.listDevices.item(i).text() self.device_finder.found.remove(port) self.listDevices.clear() self.ifaces = [] def connectFromList(self): self.actionConnect.setEnabled(False) self.actionDisconnect.setEnabled(True) self.actionRefresh.setEnabled(False) #self.connectDevice(self.listDevices.currentItem().text()) if self.connectDevice(): self.enableControls() else: QtGui.QMessageBox.critical(self, 'Error', 'Cannot connect to the device, refresh the list') def disconnectFromCurrentDevice(self): self.actionConnect.setEnabled(True) self.actionDisconnect.setEnabled(False) self.actionRefresh.setEnabled(True) self.disableControls() try: self.stopSampling() self.iface.disconnect() except: pass self.iface = None self.plotWindow.plot_item_a.clear() self.plotWindow.plot_item_p.clear() def exportData(self): self.plotWindow.scene().showExportDialog() def hold(self, checked): if checked: self.stopSampling() else: self.connectDevice() self.startSampling() def autoSet(self, checked): if checked: self.plotWindow.plot_item_a.enableAutoRange() self.plotWindow.plot_item_p.enableAutoRange() else: self.plotWindow.plot_item_a.disableAutoRange() self.plotWindow.plot_item_p.disableAutoRange() def quitApp(self): try: self.disconnectFromCurrentDevice() except: pass QtGui.QApplication.exit(0) def aboutApp(self): QtGui.QMessageBox.about(self, 'About', """<b>Spectrum Analyzer</b><br>Computer Peripherals Interface Project<br><b>By:</b><br>Sherif Adel Radwan<br>Mahmoud Sayed Zainhom<br>Abdelrahman Ghanem Abdelrady""") def closeEvent(self, event): if self.iface: self.iface.disconnect()