예제 #1
0
class TestLogin(unittest.TestCase):
    """ 
    引入unittest测试框架
    """

    def setUp(self):
        """
        初始化浏览器
        :return:
        """
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(20)
        self.login_page = LoginPage(self.driver)
        self.home_page = HomePage(self.driver)

    def tearDown(self):
        """
        关闭浏览器
        :return:
        """
        self.driver.quit()

    def test_success(self):
        """
        正向用例
        :return:
        """
        self.login_page.login('18684720553', 'python')
        # 断言
        user = self.home_page.get_element__user()
        self.assertTrue( '我的帐户[python10]' in user.text )
예제 #2
0
class TestBid(unittest.TestCase):

    def setUp(self)-> None:
        """登陆"""
        self.driver = webdriver.Chrome()
        self.login_page = LoginPage(self.driver)
        self.login_page.login(user_info_success["username"], user_info_success["pwd"])
        self.bid_page = BidPage(self.driver)

    def tearDown(self)-> None:   #箭头符号表示函数注解表示返回的是None
        self.driver.quit()

    def test_bid_success(self):
        #在首页选择标的 choice_bid() ,点击投标
        IndexPage(self.driver).choice_bid()

        #定位投资输入框元素
        e = self.bid_page.get_bid_input_element()

        expect = e.get_attribute('data-amount')
        print(expect)

        #发送投资金额
        e.send_keys(invest_money)
        #点击投标
        self.bid_page.click_bid_submit()
        #获取可用余额
        actual_money_str = UserPage(self.driver).get_user_money()
        actual_money = float(actual_money_str)
        #断言相关操作
        self.assertTrue(int(expect*100)-invest_money == int(actual_money))
예제 #3
0
def test_logged_register(browser):
    home_page = HomePage(browser)
    result_page = SearchResultPage(browser)
    login_page = LoginPage(browser)

    # Given the home page is displayed
    home_page.load()

    home_page.go_to_login_page()

    WebDriverWait(browser, 30).until(
        EC.visibility_of_element_located(login_page.EMAIL_INPUT))

    login_page.login('*****@*****.**', '*****@*****.**')

    WebDriverWait(browser, 30).until(
        EC.visibility_of_element_located(home_page.SIGNOUT_MESSAGE))

    home_page.search('Erika Running Short')

    WebDriverWait(browser,
                  30).until(EC.visibility_of_element_located(result_page.SIZE))

    result_page.add_to_cart()

    WebDriverWait(browser, 30).until(
        EC.visibility_of_element_located(result_page.PAGEMESSAGE))

    assert "You added Erika Running Short to your shopping cart." in result_page.success_message(
    )

    home_page.load()

    home_page.logout()
def test_disable_section_on_ui(browser):
    """This is test will verify that disabling of sections in form reward payload"""
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    disable_status = reward_page.check_sections_after_disable_on_ui()
    assert disable_status, "Failed to disable the UI Section"
예제 #5
0
 def test_InValidLogin2(self):
     self.driver = webdriver.Firefox()
     self.driver.maximize_window()
     self.driver.implicitly_wait(3)
     self.driver.get(self.baseURL)
     lp = LoginPage(self.driver)
     lp.login(password=self._wrongPassword)
     result = lp.verifyLoginWrongPassword()
     assert result == True
     self.driver.quit()
예제 #6
0
def class_web2():
    '''初始化浏览器并登陆'''
    driver = Chrome()
    login_page = LoginPage(driver)
    login_page.login("18684720553", "python")
    bid_page = BidPage(driver)

    yield driver, bid_page

    driver.quit()
예제 #7
0
 def test_ValidLogin(self):
     self.driver = webdriver.Firefox()
     self.driver.maximize_window()
     self.driver.implicitly_wait(3)
     self.driver.get(self.baseURL)
     lp = LoginPage(self.driver)
     lp.login(self._username, self._password)
     result = lp.verifyLoginSuccessful()
     assert result == True
     self.driver.close()
def test_permissions_bulk_file_upload_for_invalid_user(browser):
    """"This test will verify there will no permissions for bulk file upload and read details
    for an invalid user.
    """
    email, password = invalid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    bulk_actions_page = BulkActionsPage(browser)
    bulk_actions_page.is_logged_in(email)
    permissions = bulk_actions_page.get_permissions()
    assert len(permissions) == 0
예제 #9
0
def test_login_wrong_user_credentials(login_page: LoginPage,
                                      unknown_user: User) -> None:
    """Test for a failed login attempt."""
    assert login_page.title == "Login to Redash"

    with pytest.raises(TimeoutException):
        login_page.login(email=unknown_user.email,
                         password=unknown_user.password)

    assert login_page.alert == "Wrong email or password."
    assert login_page.title == "Login to Redash"
def test_permissions_for_rewards_non_authorized_user_ui_navigation(browser):
    """"This test will verify non-authorized user do not have permissions for reward create,
    update, read permissions. This verification is done from UI navigation.
    """
    email, password = invalid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    permissions = reward_page.get_permissions()
    assert len(permissions) == 0
def test_check_mandatory_information_create_reward(browser):
    """verifies error message to create of public reward without filling all mandatory
    information"""
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    input_data['Type'] = 'Public'
    assertions = reward_page.check_mandatory_information(input_data)
    for assertion in assertions:
        assert assertion, "No Error Message displayed for mandatory information"
def test_bulk_upload_invalid_input_files(browser, invalid_file):
    """"This test will verify that the bulk file upload is not possible for invalid file
    formats e.g. .pdf, .gif, .zip ...
    """
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    bulk_actions_page = BulkActionsPage(browser)
    bulk_actions_page.is_logged_in(email)
    with pytest.raises(ErrorMessageException) as error_info:
        bulk_actions_page.upload_file(invalid_file)
    assert 'Error uploading file.' in str(error_info.value)
예제 #13
0
def get_login(request, base_url, selenium, user):
    """
    Users can log in
    @type base_url: string
    @type selenium:
    @type user:
    """
    from pages.login import LoginPage
    login_page = LoginPage(base_url, selenium)
    login_page.login(user.username, user.password)
    file = join(dirname(dirname(__file__)), 'cookies.pkl')
    dump(selenium.get_cookies(), open(file, "wb"))
def test_permissions_bulk_file_upload(browser):
    """"This test will verify permissions for bulk file upload and read details.
    We will be testing this for User has only BulkAction Permission
    """
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    bulk_actions_page = BulkActionsPage(browser)
    bulk_actions_page.is_logged_in(email)
    permissions = bulk_actions_page.get_permissions()
    assert permissions['create']
    assert len(permissions['read']) > 0
def test_permissions_for_rewards_valid_user(browser):
    """"This test will verify permissions for reward create, update, read permissions.
    This will be for tested for an valid user has reward role.
    """
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    permissions = reward_page.get_permissions()
    assert len(permissions) == 3
    for permission in permissions:
        assert permissions[permission]
def test_create_public_reward(browser):
    """verifies creation of public reward with all mandatory information"""
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    input_data['Type'] = 'Public'
    input_data['Name'] = 'Public_Reward-{}'.format(input_data['Name'])
    reward_info = reward_page.create_reward(input_data)
    assert input_data['Name'] in reward_info
    assert 'Active' in reward_info
    assert input_data['Brands'] in reward_info
def test_successful_create_public_reward_with_search(browser):
    """Create Public Reward and Search that reward in Rewards List"""
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    input_data['Type'] = 'Public'
    input_data['Name'] = 'Public_Reward-{}'.format(input_data['Name'])
    reward_page.create_reward(input_data)
    reward_page.search_reward(input_data['Name'])
    table = reward_page.read_table()
    assert input_data['Name'] in table[0]["Name"]
    assert table[0]["Status"] == 'ACTIVE'
def test_bulk_upload_valid_input_files(browser, valid_file, action):
    """"This test will verify that the bulk file upload is possible for all valid file
    formats and all Actions e.g. .txt, .csv, .xlsx and Status is Processed"""
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    bulk_actions_page = BulkActionsPage(browser)
    bulk_actions_page.is_logged_in(email)
    bulk_actions_page.upload_file(valid_file, action)
    table = bulk_actions_page.read_table()
    assert (action['action']).lower() in (table[0]['Action Name']).lower()
    assert table[0]['File Name'] == get_file_name(valid_file)
    assert table[0]['User'] == email
    assert table[0]['Status'] in ['PROCESSING', 'INITIAL']
예제 #19
0
def setup_login(base_url, selenium, user):
    from pages.login import LoginPage
    login_page = LoginPage(base_url, selenium)
    login_page.login(user.username, user.password)
    file = join(dirname(dirname(__file__)), 'cookies.pkl')
    dump(selenium.get_cookies(), open(file, "wb"))
    print(selenium.get_cookies())

    selenium.get(base_url)
    selenium.delete_all_cookies()
    print(__file__)
    file = join(dirname(dirname(__file__)), 'cookies.pkl')
    cookies = load(open(file, "rb"))
    for cookie in cookies:
        selenium.add_cookie(cookie)
예제 #20
0
def home_page_logged_in(mozwebqa):
    from pages.login import LoginPage
    login_pg = LoginPage(mozwebqa)
    login_pg.go_to_login_page()
    home_pg = login_pg.login()
    Assert.true(home_pg.is_logged_in, "Could not determine if logged in")
    return home_pg
예제 #21
0
def test_login_admin(base_url, selenium, deployment_config):
    login_pg = LoginPage(base_url, selenium)
    login_pg.open()
    dashboard_pg = login_pg.login(
        deployment_config.credentials['fusor']['username'],
        deployment_config.credentials['fusor']['password'])
    assert dashboard_pg.is_the_current_page
예제 #22
0
def test_login(mozwebqa, variables):
    """Users can log in"""
    login_page = LoginPage(mozwebqa)
    login_page.open()
    messages_page = login_page.login(variables['username'],
                                     variables['password'])
    assert messages_page.notification == 'You were logged in'
def test_access_api_endpoints_using_rewards_admin_valid_user(browser):
    """"This test will verify invalid user do not have permissions for reward create,
    update, read permissions. This verification is done from UI navigation.
    """
    end_points = ('/loyalties/list', '/campaigns/list', '/merchants/list',
                  '/settings/users', '/bulkaction')
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    status_dict = reward_page.get_api_end_point_status_with_url()
    assert len(status_dict) > 5
    for end_point in end_points:
        if end_point in status_dict:
            assert status_dict[end_point] == 'No Access'
예제 #24
0
 def prepare_env(self, selenium_driver, testenv):
     self.driver = selenium_driver
     self.driver.implicitly_wait(10)
     login_page = LoginPage(
         self.driver,
         'http://%s.test-env.scalr.com' % testenv.te_id).open()
     self.admin_dashboard = login_page.login(ADMIN_USER, ADMIN_PASSWORD)
def test_access_api_endpoints_using_ui_rewards_admin_authorized_user(browser):
    """"This test will verify invalid user do not have permissions for reward create,
    update, read permissions. This verification is done from UI navigation.
    """
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    status_dict = reward_page.get_left_panel_links()
    assert len(status_dict) > 5
    for key in status_dict:
        if 'rewards' in key:
            assert status_dict[key] == 'Access', "Failed For {}".format(key)
        else:
            assert status_dict[key] == 'No Access', "Failed For {}".format(key)
예제 #26
0
def home_page_logged_in(base_url, selenium, variables):
    """Logs in to the server and returns the dashboard page."""
    from pages.login import LoginPage
    login_pg = LoginPage(base_url, selenium)
    login_pg.open()
    home_pg = login_pg.login(variables['credentials']['fusor']['username'],
                             variables['credentials']['fusor']['password'])
    return home_pg
 def test_add_user(self):
     self.driver.get('http://127.0.0.1:8000/admin')
     login_page = LoginPage(self.driver)
     admin_page = login_page.login('admin', 'p@ssword')
     add_user_page = admin_page.go_to_add_user_page()
     user_page = add_user_page.add_user('testuser', 'dummy_p@ssword')
     self.assertIn('testuser</a>" を追加しました。続けて編集できます。</li>',
                   user_page.driver.page_source)
예제 #28
0
 def prepare_env(self, selenium, testenv):
     self.driver = selenium
     self.driver.implicitly_wait(10)
     self.container = testenv
     login_page = LoginPage(
         self.driver,
         'http://%s.test-env.scalr.com' % self.container.te_id).open()
     self.env_dashboard = login_page.login(DEFAULT_USER, DEFAULT_PASSWORD)
예제 #29
0
def home_page_logged_in(base_url, selenium, variables):
    """Logs in to the server and returns the dashboard page."""
    from pages.login import LoginPage
    login_pg = LoginPage(base_url, selenium)
    login_pg.open()
    home_pg = login_pg.login(variables['credentials']['fusor']['username'],
                             variables['credentials']['fusor']['password'])
    return home_pg
def test_access_level_for_fields_with_private_reward(browser):
    """This test will verify that all fields related to catalogues, labels, brands,
    tags and categories should disappear for private reward"""
    email, password = valid_user
    login_page = LoginPage(browser)
    login_page.login(email, password)
    reward_page = RewardPage(browser)
    reward_page.is_logged_in(email)
    del input_data['Catalogues']
    input_data['Type'] = 'Private'
    input_data['Name'] = 'Private_Reward-{}'.format(input_data['Name'])
    fields_visibility_status = reward_page.get_field_status(input_data)
    assert len(fields_visibility_status) > 3
    for field in ['Brands', 'Tags', 'Catalogues', 'Labels', 'Categories']:
        if field in fields_visibility_status:
            assert not fields_visibility_status[field], "Failed For {}".format(
                field)
예제 #31
0
def test_login(login_page: LoginPage, user: User) -> None:
    """Test for a successful login attempt."""
    assert login_page.title == "Login to Redash"

    home_page = login_page.login(email=user.email, password=user.password)

    assert home_page.profile_dropdown == user.name
    assert home_page.title == "Redash"
예제 #32
0
def home_page_logged_in(mozwebqa):
    '''Logs in to the application with default credentials and returns the 
    home page'''
    from pages.login import LoginPage
    login_pg = LoginPage(mozwebqa)
    login_pg.go_to_login_page()
    home_pg = login_pg.login()
    Assert.true(home_pg.is_logged_in, 'Could not determine if logged in')
    return home_pg
def test_logout(base_url, selenium, user):
    """
    Users can logout
    @type base_url: string
    @type selenium:
    @type user: strings
    """
    login_page = LoginPage(base_url, selenium)
    welcome_page = login_page.login(user.username, user.password)
    assert welcome_page.is_the_current_page
def test_login_invalid_password_username(base_url, selenium, user):
    """
    Users cannot login with wrong password
    @type base_url: string
    @type selenium:
    @type user: strings
    """
    login_page = LoginPage(base_url, selenium)
    login = login_page.login(user.username + 'x', user.password + 'x')
    assert login_page.is_the_current_page
def test_login_invalid_username(base_url, selenium, user):
    """
    Attempt to log in with an invalid username
    @type base_url: string
    @type selenium:
    @type user: strings
    """
    login_page = LoginPage(base_url, selenium)
    login = login_page.login(user.username + 'x', user.password)
    assert login_page.is_the_current_page
예제 #36
0
def home_page_logged_in(duckwebqa):
    """Log in to the appliance and return the home page."""
    window_size = duckwebqa.selenium.get_window_size()
    Assert.greater_equal(window_size['width'], 1280, _width_errmsg)
    from pages.login import LoginPage
    login_pg = LoginPage(duckwebqa)
    login_pg.go_to_login_page()
    home_pg = login_pg.login()
    Assert.true(home_pg.is_logged_in, 'Could not determine if logged in')
    return home_pg
예제 #37
0
 def prepare_env(self, selenium, request, testenv):
     load_timeout = request.config.getoption("load_timeout")
     self.driver = selenium
     self.driver.implicitly_wait(3)
     login_page = LoginPage(
         self.driver,
         f'http://{testenv.te_id}.test-env.scalr.com',
         timeout=load_timeout
     ).open()
     self.account_email = f"selenium-{uuid4().hex[0:8]}@localhost.net"
     self.admin_dashboard = login_page.login(
         request.config.admin_login,
         request.config.admin_pass)
예제 #38
0
def test_default_ldap_group_roles(browser, group_name, group_data):
    """Basic default LDAP group role RBAC test

    Validates expected menu and submenu names are present for default
    LDAP group roles
    """

    login_pg = LoginPage(testsetup)
    login_pg.go_to_login_page()
    if group_name not in login_pg.testsetup.credentials:
        pytest.fail("No match in credentials file for group '%s'" % group_name)
    # login as LDAP user
    home_pg = login_pg.login(user=group_name, force_dashboard=False)
    Assert.true(home_pg.is_logged_in, "Could not determine if logged in")
    validate_menus(home_pg, group_data, group_name)
예제 #39
0
 def test_default_ldap_group_roles(self, mozwebqa, ldap_groups, cfme_data):
     """Basic default LDAP group role RBAC test
     
     Validates expected menu and submenu names are present for default 
     LDAP group roles
     """
     if ldap_groups not in cfme_data.data['group_roles']:
         pytest.xfail("No match in cfme_data for group '%s'" % ldap_groups)
     _group_roles = cfme_data.data['group_roles'][ldap_groups]
     login_pg = LoginPage(mozwebqa)
     login_pg.go_to_login_page()
     if ldap_groups not in login_pg.testsetup.credentials:
         pytest.xfail("No match in credentials file for group '%s'" % ldap_groups)
     # login as LDAP user
     home_pg = login_pg.login(user=ldap_groups)
     Assert.true(home_pg.is_logged_in, "Could not determine if logged in")
     for menu in _group_roles["menus"]:
         Assert.true(home_pg.header.site_navigation_menu(menu).name == menu)
         for item in home_pg.header.site_navigation_menu(menu).items:
             Assert.true(item.name in _group_roles["menus"][menu])
예제 #40
0
def test_login(mozwebqa, variables):
    """Users can log in"""
    login_page = LoginPage(mozwebqa)
    login_page.open()
    messages_page = login_page.login(variables['username'], variables['password'])
    assert messages_page.notification == 'You were logged in'
예제 #41
0
def test_invalid_password(mozwebqa, variables):
    """Attempt to log in with an invalid password"""
    login_page = LoginPage(mozwebqa)
    login_page.open()
    login_page.login(variables['username'], 'invalid')
    assert login_page.error == 'Error: Invalid password'
예제 #42
0
def test_invalid_password(base_url, selenium, variables):
    """Attempt to log in with an invalid password"""
    login_page = LoginPage(base_url, selenium).open()
    login_page.login(variables['username'], 'invalid')
    assert login_page.error == 'Error: Invalid password'
예제 #43
0
def test_login_admin(base_url, selenium, variables):
    login_pg = LoginPage(base_url, selenium)
    login_pg.open()
    dashboard_pg = login_pg.login(variables['credentials']['fusor']['username'],
                                  variables['credentials']['fusor']['password'])
    assert dashboard_pg.is_the_current_page
예제 #44
0
def test_login_admin(base_url, selenium, deployment_config):
    login_pg = LoginPage(base_url, selenium)
    login_pg.open()
    dashboard_pg = login_pg.login(deployment_config.credentials['fusor']['username'],
                                  deployment_config.credentials['fusor']['password'])
    assert dashboard_pg.is_the_current_page
예제 #45
0
def test_login(base_url, selenium, variables):
    """Users can log in"""
    login_page = LoginPage(base_url, selenium).open()
    messages_page = login_page.login(variables['username'], variables['password'])
    assert messages_page.notification == 'You were logged in'
예제 #46
0
 def test_login(self, browser):
     login_pg = LoginPage(testsetup)
     login_pg.go_to_login_page()
     home_pg = login_pg.login()
     Assert.true(home_pg.is_logged_in, "Could not determine if logged in")
예제 #47
0
 def test_login(self, mozwebqa):
     login_pg = LoginPage(mozwebqa)
     login_pg.go_to_login_page()
     home_pg = login_pg.login()
     Assert.true(home_pg.is_logged_in, "Could not determine if logged in")
예제 #48
0
def test_invalid_username(mozwebqa, variables):
    """Attempt to log in with an invalid username"""
    login_page = LoginPage(mozwebqa)
    login_page.open()
    login_page.login('invalid', variables['password'])
    assert login_page.error == 'Error: Invalid username'