def setup_method_selenium(self, method): self.name = type(self).__name__ + '.' + method.__name__ self.event = EventLogger(self.name) # Setup self.capabilities capabilities = {} # Web capabilities['platform'] = os.getenv('PLATFORM') capabilities['browserName'] = os.getenv('BROWSER') capabilities['version'] = os.getenv('VERSION') self.event.start(capabilities) self.driver = seleniumdriver.Remote( desired_capabilities=self.capabilities, command_executor=os.getenv('EXECUTOR')) self.driver.implicitly_wait(DEFAULT_WAIT_TIME) self.caps = self.capabilities
def setup_method(self, method, caps=False): self.name = type(self).__name__ + '.' + method.__name__ self.event = EventLogger(self.name) # Setup capabilities capabilities = {} # Appium capabilities["appium-version"] = os.getenv('APPIUM_VERSION') capabilities["name"] = os.getenv('NAME') capabilities['platformName'] = os.getenv('PLATFORM') capabilities['platformVersion'] = os.getenv('PLATFORM_VERSION') capabilities['deviceName'] = os.getenv('DEVICE') capabilities['app'] = os.getenv('APP') capabilities["custom-data"] = {'test_name': self.name} # Testdroid capabilities['testdroid_target'] = os.getenv('TESTDROID_TARGET') capabilities['testdroid_project'] = os.getenv('TESTDROID_PROJECT') capabilities['testdroid_testrun'] = os.getenv('NAME') + '-' + self.name capabilities['testdroid_device'] = os.getenv('TESTDROID_DEVICE') capabilities['testdroid_app'] = os.getenv('APP') # Log capabilitites before any sensitive information (credentials) are added # self.log({'event': {'type': 'start', 'data': capabilities}}) self.event.start(capabilities) # Credentials capabilities['testdroid_username'] = os.getenv('USERNAME') capabilities['testdroid_password'] = os.getenv('PASSWORD') capabilities.update(caps) if caps else None self.driver = webdriver.Remote(desired_capabilities=capabilities, command_executor=os.getenv('EXECUTOR')) self.driver.implicitly_wait(60)
def setup_method(self, method, caps=False): self.name = type(self).__name__ + '.' + method.__name__ if 'TESTDROID_SERVER_URL' in os.environ or 'VIRTUAL_ENV' in os.environ: try: self.test_script_filename except AttributeError: err = "you need the line 'test_script_filename = __file__' after your class declaration and before \ your first test method in each of your test script files" print err raise RuntimeError(err) test_script_dir, test_script_filename = self.parse_test_script_dir_and_filename( self.test_script_filename) self.hosting_platform = 'testdroid' self.event = EventLogger(self.name, hosting_platform=self.hosting_platform, test_file_dir=test_script_dir, test_file_name=test_script_filename) self.capabilities['appium-version'] = os.getenv('APPIUM_VERSION') self.capabilities['platformName'] = os.getenv('PLATFORM') or ( 'android' if os.getenv('ANDROID_HOME') else 'ios') self.capabilities['deviceName'] = os.getenv('DEVICE') or os.getenv( 'DEVICE_DISPLAY_NAME') self.capabilities['app'] = os.getenv('APP') or os.getenv( 'APPIUM_APPFILE') self.capabilities['newCommandTimeout'] = os.getenv( 'NEW_COMMAND_TIMEOUT') # iOS 10, XCode8 support if os.getenv('AUTOMATION_NAME'): self.capabilities["automationName"] = os.getenv( 'AUTOMATION_NAME') if os.getenv('UDID'): self.capabilities["udid"] = os.getenv('UDID') executor = os.getenv('EXECUTOR', 'http://localhost:4723/wd/hub') else: # we're running on Testlio self.hosting_platform = 'testlio' self.event = EventLogger(self.name, hosting_platform=self.hosting_platform) self.capabilities["appium-version"] = os.getenv('APPIUM_VERSION') self.capabilities["name"] = os.getenv('NAME') self.capabilities['platformName'] = os.getenv('PLATFORM') self.capabilities['platformVersion'] = os.getenv( 'PLATFORM_VERSION') self.capabilities['udid'] = os.getenv('UDID') self.capabilities['deviceName'] = os.getenv('DEVICE') self.capabilities["custom-data"] = {'test_name': self.name} executor = os.getenv('EXECUTOR') # if you want to use an app that's already installed on the phone... if os.getenv('APP'): self.capabilities['app'] = os.getenv('APP') else: self.capabilities['appPackage'] = os.getenv('APP_PACKAGE') self.capabilities['appActivity'] = os.getenv('APP_ACTIVITY') if os.getenv('NEW_COMMAND_TIMEOUT'): self.capabilities["newCommandTimeout"] = os.getenv( 'NEW_COMMAND_TIMEOUT') else: self.capabilities["newCommandTimeout"] = 1300 # Do NOT resign the app. This is necessary for certain special app features. # I had to set NO_SIGN for in-app billing, otherwise I'd get the error # "This version of the app is not configured for billing through google play..." self.capabilities["noSign"] = True # Testdroid if os.getenv('TESTDROID_TARGET'): self.capabilities['testdroid_target'] = os.getenv( 'TESTDROID_TARGET') if os.getenv('TESTDROID_PROJECT'): self.capabilities['testdroid_project'] = os.getenv( 'TESTDROID_PROJECT') if os.getenv('NAME'): self.capabilities['testdroid_testrun'] = os.getenv( 'NAME') + '-' + self.name if os.getenv('TESTDROID_DEVICE'): self.capabilities['testdroid_device'] = os.getenv( 'TESTDROID_DEVICE') if os.getenv('APP'): self.capabilities['testdroid_app'] = os.getenv('APP') # Log capabilitites before any sensitive information (credentials) are added # self.log({'event': {'type': 'start', 'data': self.capabilities}}) if self.hosting_platform == 'testlio': self.event.start(self.capabilities) # Credentials self.capabilities['testdroid_username'] = os.getenv('USERNAME') self.capabilities['testdroid_password'] = os.getenv('PASSWORD') self.capabilities.update(caps) if caps else None self.driver = webdriver.Remote(desired_capabilities=self.capabilities, command_executor=executor) self.driver.implicitly_wait(self.default_implicit_wait) if str(self.capabilities['platformName']).lower() == 'android': self.IS_ANDROID = True self.IS_IOS = False elif str(self.capabilities['platformName']).lower() == 'ios': self.IS_ANDROID = False self.IS_IOS = True os.environ[FAILURES_FOUND] = "false" os.environ[SOFT_ASSERTIONS_FAILURES] = "" self.caps = self.capabilities