def before_all(context): setup_config(context) setup_logger(context) if context.browser == 'Sauce': context.logger.info("Using Sauce Labs") desired_capabilities = { 'name': os.getenv('SELENIUM_NAME', 'OAH browser tests ') + str(datetime.now()), 'platform': os.getenv('SELENIUM_PLATFORM', 'WINDOWS 7'), 'browserName': os.getenv('SELENIUM_BROWSER', 'chrome'), 'version': int(os.getenv('SELENIUM_VERSION', 33)), 'max-duration': 7200, 'record-video': os.getenv('SELENIUM_VIDEO', True), 'video-upload-on-pass': os.getenv('SELENIUM_VIDEO_UPLOAD_ON_PASS', True), 'record-screenshots': os.getenv('SELENIUM_SCREENSHOTS', False), 'command-timeout': int(os.getenv('SELENIUM_CMD_TIMEOUT', 30)), 'idle-timeout': int(os.getenv('SELENIUM_IDLE_TIMEOUT', 10)), 'tunnel-identifier': os.getenv('SELENIUM_TUNNEL'), } context.logger.info("Running Sauce with capabilities: %s" % desired_capabilities) sauce_config = {"username": os.getenv('SAUCE_USER'), "access-key": os.getenv("SAUCE_KEY")} context.sauce_config = sauce_config driver = webdriver.Remote( desired_capabilities=desired_capabilities, command_executor="http://%s:%[email protected]:80/wd/hub" % (sauce_config['username'], sauce_config['access-key']) ) else: driver = webdriver.Chrome(context.chromedriver_path) context.base = Base(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.home = Home(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.loan_comparison = LoanComparison(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.loan_options = LoanOptions(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.rate_checker = RateChecker(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.navigation = Navigation(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.screenshot = Screenshot(context.base, context.take_screenshots) context.utils = Utils(context.base) context.logger.info('TEST ENVIRONMENT = %s' % context.base_url)
def test_owned_experiments_page_loads(base_url, selenium): """Test Owned Deliveries link opens correct page.""" selenium.get(base_url) page = Base(selenium, base_url) experiments = page.header.click_owned_experiments() assert f"{experiments.count} Deliveries by" in experiments.title
def before_all(context): fast_fail = os.getenv('FAST_FAIL', False) setup_config(context) setup_logger(context) if (fast_fail): connection = httplib.HTTPConnection("fake.ghe.domain", timeout=10) connection.request("GET", "/") page_response = connection.getresponse() if page_response.status != 200: eMessage = str(page_response.status) + " " + page_response.reason raise Exception(eMessage) if context.browser == 'Sauce': context.logger.info("Using Sauce Labs") desired_capabilities = { 'name': os.getenv('SELENIUM_NAME', 'CKAN browser tests') + str(datetime.now()), 'platform': os.getenv('SELENIUM_PLATFORM', 'WINDOWS 7'), 'browserName': os.getenv('SELENIUM_BROWSER', 'chrome'), 'version': int(os.getenv('SELENIUM_VERSION', 33)), 'max-duration': 7200, 'record-video': os.getenv('SELENIUM_VIDEO', True), 'video-upload-on-pass': os.getenv('SELENIUM_VIDEO_UPLOAD_ON_PASS', True), 'record-screenshots': os.getenv('SELENIUM_SCREENSHOTS', False), 'command-timeout': int(os.getenv('SELENIUM_CMD_TIMEOUT', 30)), 'idle-timeout': int(os.getenv('SELENIUM_IDLE_TIMEOUT', 10)), 'tunnel-identifier': os.getenv('SELENIUM_TUNNEL'), 'selenium-version': os.getenv('SELENIUM_LIB', '2.45.0'), 'screen-resolution': os.getenv('SELENIUM_RESOLUTION', '1024x768') } context.logger.info("Running Sauce with capabilities: %s" % desired_capabilities) sauce_config = { "username": os.getenv('SAUCE_USER'), "access-key": os.getenv("SAUCE_KEY") } context.sauce_config = sauce_config driver = webdriver.Remote( desired_capabilities=desired_capabilities, command_executor="http://%s:%[email protected]:80/wd/hub" % (sauce_config['username'], sauce_config['access-key'])) else: driver = webdriver.Chrome(context.chromedriver_path) context.base = Base(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.home = Home(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.navigation = Navigation(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.datasets = Datasets(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.organizations = Organizations(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.groups = Groups(context.logger, context.directory, context.base_url, driver, 10, context.delay_secs) context.screenshot = Screenshot(context.base, context.take_screenshots) context.utils = Utils(context.base)
def click_login_browser_id(self): self.selenium.find_element(*self._login_browser_id_locator).click() from pages.base import Base return Base(self.testsetup)
def test_subscribed_experiments_page_loads(base_url, selenium): """Test Subscribed Experiments link opens correct page.""" selenium.get(base_url) page = Base(selenium, base_url) experiments = page.header.click_subscribed_experiments() assert f"{experiments.count} subscribed Experiments" in experiments.title
def test_mail_login(): """测试用例""" driver = webdriver.Firefox() base = Base(driver) base.open_url() login_action = LoginAction(driver) add_contact = NewAction(driver) # 是否执行列数据 is_execute = do_excel.get_column_value(sheetName[0], accountIsExecute) data_book = do_excel.get_column_value(sheetName[0], accountDataBook) for idx, value in enumerate(is_execute[:]): # print(idx, value) # 获取是否执行列数据列表的索引和数据 if value.lower() == 'y': user_row_value = do_excel.get_row_value(sheetName[0], idx + 2) # 获取执行状态为y所在行的数据 user_name = user_row_value[accountUserName - 2] pass_word = user_row_value[accountPassWord - 2] # 登录 login_action.click_password_login() login_action.login(user_name, pass_word) time.sleep(10) # 足够的时间加载登录成功的页面 try: assert '通讯录' in driver.page_source except Exception: base.save_screen_shot(user_name + '-' + pass_word + '失败') log.logger.info('登录失败,输出信息如下:{}'.format(traceback.format_exc())) do_excel.write_cell(sheetName[0], idx + 2, accountTestResult, 'failed') base.delete_cookies() base.open_url() else: log.logger.info('账号:{}登录成功, 测试通过'.format(user_name)) do_excel.write_cell(sheetName[0], idx + 2, accountTestResult, 'pass') # 获取联系人数据表中是否执行列的数据 if data_book[idx] == sheetName[1]: is_execute = do_excel.get_column_value(sheetName[1], contactIsExecute) for index, data in enumerate(is_execute): if data.lower() == 'y': # 获取y表示行的数据 contact_person_value = \ do_excel.get_row_value(sheetName[1], index + 2) # 获取添加联系人所需的数据 # 联系人姓名 contact_person_name = \ contact_person_value[contactName - 2] # 联系人邮箱 contact_person_mail = \ contact_person_value[contactMail - 2] # 是否为星级联系人 contact_person_star = \ contact_person_value[contactStar - 2] # 联系人手机号 contact_person_phone = \ contact_person_value[contactPhone - 2] # 联系人备注 contact_person_comment = \ contact_person_value[contactComment - 2] # 验证页面包含的关键字 contact_assert = \ contact_person_value[contactKeyWords - 2] add_contact.address_link() add_contact.add_contact( contact_person_name, contact_person_mail, contact_person_star, contact_person_phone, contact_person_comment ) try: assert contact_assert in driver.page_source except Exception: base.save_screen_shot('添加联系人失败') do_excel.write_cell(sheetName[1], index + 2, contactTestResult, 'fail') else: do_excel.write_cell(sheetName[1], index + 2, contactTestResult, 'pass') # 设置足够长的时间 让添加联系人成功后的提示框自动消失,当然可以自己写代码关闭 time.sleep(10) base.delete_cookies() base.open_url() else: base.delete_cookies() base.open_url() base.quit()