Пример #1
0
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)
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
 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)
Пример #5
0
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()