Beispiel #1
0
 def setup(self, variables):
     while (True):
         try:
             with allure.step('前置作業-會員登入'):
                 pass
             login = LoginPage().open_login_page()
             main_page = login.login_as(
                 variables['user'],
                 variables['password']).than_at_main_page()
             main_page.logontext.should(be.visible)
             break
         except:
             continue
Beispiel #2
0
 def login(self,
           email=Config.api_first_login,
           password=Config.api_password):
     login_page = LoginPage(self.driver)
     login_page.specify_email(email)
     login_page.specify_pass(password)
     login_page.press_login()
Beispiel #3
0
class TestLogin:
    def setup_method(self):
        self.driver = webdriver.Chrome(
            executable_path=ChromeDriverManager().install())
        self.login_page = LoginPage(self.driver)
        self.header_page = HeaderPage(self.driver)

    def test_login_to_jira_page_object(self):
        self.login_page.open()
        assert self.login_page.at_page()
        self.login_page.login_to_jira()
        assert self.header_page.at_page()

    def teardown_method(self):
        self.driver.close()
    def test_something(self, userlogin, password):
        start = StartPage(self.driver)
        start.singInButton_click()

        login = LoginPage(self.driver)
        login.emailInput(userlogin)
        login.passwordInput(password)
        login.clickSihgInButton()
Beispiel #5
0
 def test_change_assigner_for_the_ticket(self, browser):
     self.login_page = LoginPage(browser)
     self.login_page.open(
         "http://jira.hillel.it:8080/secure/Dashboard.jspa")
     self.login_page.login_to_jira_enter_username("webinar5")
     self.login_page.login_to_jira_enter_password("webinar5")
     self.login_page.click_login_button_at_main_page()
     self.main_page = MainPage(browser)
     self.main_page.click_the_first_ticket_assigned_to_me()
     self.issue_details_page = IssueDetailsPage(browser)
     self.issue_details_page.click_issue_reporter_field()
     self.issue_details_page.enter_new_reporter("Artur Piluck")
     assert self.issue_details_page.should_be_new_assigner("Artur Piluck")
     self.issue_details_page.refresh_the_page()
     assert self.issue_details_page.should_be_new_assigner("Artur Piluck")
Beispiel #6
0
 def test_web_ui_23_check_change_pass_page_cancel_link(self, browser):
     change_pass_page = ChangePassPage(browser)
     change_pass_page.open()
     with wait_for_page_to_reload(browser):
         change_pass_page.click_remember_btn()
     assert_that(browser.current_url, contains_string(LoginPage(browser).path),
                 'Страница "Авторизация" не открылась')
Beispiel #7
0
 def test_web_ui_24_change_pass_page_success_change(self, browser):
     change_pass_page = ChangePassPage(browser)
     change_pass_page.open()
     with wait_for_page_to_reload(browser):
         change_pass_page.enter_new_password(phone=str(random.randint(9900000000, 9909999999)))
     assert_that(browser.current_url, contains_string(LoginPage(browser).path),
                 'Страница "Авторизация" не открылась')
Beispiel #8
0
    def setup_class(cls):
        cls.data = merge_configs('~/testrail.json', '../config/data.json')
        cls.client = APIClient(cls.data)
        cls.projects_created = []

        options = DriverOptions()
        try:
            browserName = pytest.config.getoption('browser')
            if pytest.config.getoption('headless', default=None) is not None:
                options.attrs['headless'] = True
        except AttributeError:
            browserName = 'firefox'

        # Prepare browser
        cls.driver = driver_manager.get_driver(
            browserName=DriverType.get_driver_type(browserName),
            options=options,
            capabilities=None,
            commandExecutor=None)
        driver_manager.start_service(cls.driver, cls.data.server_name)

        cls.prepare_data = PrepareData(cls.driver)
        cls.login = LoginPage(cls.driver)
        cls.api = APIPage()

        cls.check_api_enabled()

        # add project
        project = Project(name="API Test Project",
                          announcement="Some announcement",
                          show_announcement=False,
                          suite_mode=cls.suite_mode)
        project_created = cls.client.add_project(project)
        cls.projects_created.append(project_created)
        cls.project = project_created
    def __init__(self, driver=None):
        self.driver = driver
        self.project = ProjectPage(driver)
        self.users_roles = UsersRolesPage(driver)
        self.suite = SuitePage(driver)
        self.section = SectionsPage(driver)
        self.tests = TestCasesPage(driver)
        self.run = RunsPage(driver)
        self.plan = PlansPage(driver)
        self.cases = CasesPage(driver)
        self.integration = IntegrationPage(self.driver)
        self.login = LoginPage(self.driver)
        self.site_settings_page = SiteSettingsPage(driver)

        self.t = read_config('../config/tests.json')
        self.data = merge_configs('~/testrail.json', '../config/data.json')
        self.p = read_config('../config/project.json')
        self.runs = read_config('../config/runs.json')
        self.users = read_config('../config/users.json')
        self.plans = read_config('../config/plans.json')
        self.site_settings = read_config('../config/site_settings.json')
        self.plugin = read_config("../config/plugin.json")
        self.sso_settings = read_config('../config/sso_settings.json')

        self.users_overview_url = self.data.server_name + self.users.overview_url
class TestJiraLoginUI:

    @pytest.mark.smoke
    def test_login_to_jira(self, browser):
        self.login_page = LoginPage(browser)
        self.login_page.open("http://jira.hillel.it:8080/secure/Dashboard.jspa")
        assert self.login_page.at_page()
        self.login_page.login_to_jira_enter_username("webinar5")
        self.login_page.login_to_jira_enter_password("webinar5")
        self.login_page.click_login_button_at_main_page()
        self.main_page = MainPage(browser)
        self.main_page.is_assigned_to_me_section()
        assert self.main_page.is_assigned_to_me_section()
Beispiel #11
0
class TestLogin:

    @pytest.mark.parametrize("login, passwd, rez",
                             [
                                 ("admin", "changeme", "please try again."),
                                 ("admin", "wrongPass", "please try again"),
                                 ("wrongLogin", "changeme", "System Dashboard"),
                             ]
                             )
    def test_login_to_jira_page_object(self, login, passwd, rez):
        self.login_page = LoginPage(self.driver)
        self.header_page = HeaderPage(self.driver)
        self.login_page.open()
        assert self.login_page.at_page()
        self.login_page.enter_name(login)
        self.login_page.enter_password(passwd)
        self.login_page.click_login_button()
        assert self.login_page.wait_for_text_to_appear(rez)
Beispiel #12
0
 def test_create_issue_in_jira(self, browser):
     self.login_page = LoginPage(browser)
     self.login_page.open(
         "http://jira.hillel.it:8080/secure/Dashboard.jspa")
     assert self.login_page.at_page()
     self.login_page.login_to_jira_enter_username("webinar5")
     self.login_page.login_to_jira_enter_password("webinar5")
     self.login_page.click_login_button_at_main_page()
     self.main_page = MainPage(browser)
     assert self.main_page.is_assigned_to_me_section()
     self.main_page.click_create_issue_button()
     self.create_issue_page = CreateIssue(browser)
     self.create_issue_page.should_have_title("Create Issue")
     self.create_issue_page.choose_the_project("Webinar (WEBINAR)")
     self.create_issue_page.enter_summary_field("UI bug In Jira")
     self.create_issue_page.enter_reporter("webinar5")
     self.create_issue_page.click_create_issue_button_at_details_page()
     assert "Issue" in self.create_issue_page.is_alert_present()
Beispiel #13
0
class BaseTest:

    driver = None

    def setup_class(self):
        self.driver = webdriver.Chrome(
            executable_path=ChromeDriverManager().install())
        self.login_page = LoginPage(self.driver)
        self.login_page.open_page()
        self.dashboard_page = DashboardPage(self.driver)
        self.login_page.login_to_jira(ValidUser.username, ValidUser.password)
        assert self.dashboard_page.at_page()
        self.create_issue_page = CreateIssuePage(self.driver)

    def teardown_class(self):
        self.driver.close()

    def log_full(r):
        req = r.request
        """
        At this point it is completely built and ready
        to be fired; it is "prepared".

        However pay attention at the formatting used in
        this function because it is programmed to be pretty
        printed and may differ from the actual request.
        """
        print()
        print('{}\n{}\n{}\n\n{}'.format(
            '-----------REQUEST-----------',
            req.method + ' ' + req.url,
            '\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()),
            req.body,
        ))

        print()

        print('{}\n{}\n{}\n\n{}'.format(
            '-----------RESPONSE-----------',
            r.status_code,
            '\n'.join('{}: {}'.format(k, v) for k, v in r.headers.items()),
            r.text,
        ))
        print()
def test_create_reward(browser):
    """
    GIVEN user wants to login to reward page as reward admin
    WHEN user keys in correct email address and password 
    THEN user is logged in as reward admin
    AND reward admin can create reward
    """

    login_page = LoginPage(browser)
    login_page.login(email="*****@*****.**",
                     password="******")

    reward_admin_page = RewardAdminPage(browser)
    reward_admin_page.start()

    result = reward_admin_page.create_new_reward()
    assert reward_admin_page.get_xpath(
        RewardAdminPage.REWARD_FORM_STATUS).get_attribute(
            'textContent') == "ACTIVE"
Beispiel #15
0
    def test_login(self):
        start = StartPage(self.driver)
        start.singInButton_click()

        login = LoginPage(self.driver)
        login.emailInput('*****@*****.**')
        login.passwordInput('12345+')
        login.clickSihgInButton()

        self.account = AccountPage(self.driver)
        self.account._validate_page(self.driver)
        self.account.order_history().click()
 def test_02(self):
     u'''密码登录测试'''
     self.login_page = LoginPage(self.driver)
     self.login_page.open_login_page()
     self.login_page.choose_tab_password()
     self.login_page.input_username(self.username)
     self.login_page.input_password(self.password)
     self.login_page.click_btn_login_pwd()
     # 等待时间后续优化
     sleep(3)
     user_id = self.login_page.show_user_id()
     # 判断登录是否成功
     self.assertEqual(user_id, self.expect_user_id, msg='登录失败')
     self.login_page.click_btn_logout()
     sleep(3)
     # 登出后,"退出登录"变为"立即登录"
     text_change = self.login_page.show_text_change()
     # 判断登出是否成功
     self.assertEqual(text_change, "立即登录", msg="登出失败")
Beispiel #17
0
    def setup_class(cls):
        super().setup_class()
        cls.attachments = read_config('../config/attachments.json')
        cls.users = read_config('../config/users.json')

        cls.client = APIClient(cls.data)
        cls.attachments_page = APIPage()
        cls.users_roles_page = UsersRolesPage(cls.driver)
        cls.login_page = LoginPage(cls.driver)

        cls.prepare_test_case()
 def test_login_incorrect_password(self, browser):
     login_page = LoginPage(browser)
     with allure.step("Open login page"):
         login_page.open()
     with allure.step("Check that login page opened"):
         assert login_page.at_page()
     with allure.step("Call login method"):
         login_page.login(login, "wrong")
     with allure.step("Check that correct error is displayed"):
         assert login_page.username_error_text("Sorry, your username and password are incorrect")
         allure.attach(browser.get_screenshot_as_png(),
                       name="test_login_incorrect_password",
                       attachment_type=allure.attachment_type.PNG)
Beispiel #19
0
 def test_user_can_not_login_with_empty_verifySN(self, variables):
     user = variables['user']
     password = variables['password']
     with allure.step("輸入帳號密碼"):
         allure.attach('帳號', 'eitctest001')
         allure.attach('密碼', 'abc12345')
     LoginPage()\
         .open_login_page()\
         .login_with_invalid_verifySN(user, password, "")\
         .than()\
         .validationErr\
         .should(have.exact_text("必須填寫驗證碼"))
def test_admin_user_login(browser):
    """
    GIVEN user is asked to login via dashbord
    WHEN user login as admin user
    THEN perx main page with all functions in side bar is displayed
    """
    login_page = LoginPage(browser)
    login_page.start()

    login_page.login(email="*****@*****.**", password="******")
    admin_page = AdminPage(browser)
    admin_page.start()

    # Check that admin has sufficient right to access all functionality
    assert admin_page.get_side_bar_menu_item(
        AdminPage.REPORTS_MENU_ITEM).size != 0
    assert admin_page.get_side_bar_menu_item(
        AdminPage.REWARDS_MENU_ITEM).size != 0
    assert admin_page.get_side_bar_menu_item(
        AdminPage.CAMPAIGNS_MENU_ITEM).size != 0
    assert admin_page.get_side_bar_menu_item(
        AdminPage.LOYALTIES_MENU_ITEM).size != 0
    assert admin_page.get_side_bar_menu_item(
        AdminPage.TRANSACTION_RULES_MENU_ITEM).size != 0
    assert admin_page.get_side_bar_menu_item(
        AdminPage.MERCHANTS_MENU_ITEM).size != 0
    assert admin_page.get_side_bar_menu_item(
        AdminPage.CUSTOMER_MANAGEMENT_MENU_ITEM).size != 0
    assert admin_page.get_side_bar_menu_item(
        AdminPage.SETTINGS_MENU_ITEM).size != 0
    assert admin_page.get_side_bar_menu_item(
        AdminPage.BUSINESS_INTELLIGENCE_MENU_ITEM).size != 0
def test_reward_user_login(browser):
    """
    GIVEN user is asked to login via dashbord
    WHEN user login as reward user
    THEN perx main page with ONLY reward priviledge is displayed
    """

    login_page = LoginPage(browser)
    login_page.start()

    login_page.login(email="*****@*****.**",
                     password="******")

    reward_admin_page = RewardAdminPage(browser)
    reward_admin_page.start()

    # Check that reward_admin has can only have priviledge to create reward
    assert reward_admin_page.get_side_bar_menu_item(
        RewardAdminPage.REWARDS_MENU_ITEM).size != 0

    # Check that rest of the menu_item element that can be found in admin page cannot be found in
    # reward admin page
    with pytest.raises(NoSuchElementException):
        reward_admin_page.get_side_bar_menu_item(AdminPage.REPORTS_MENU_ITEM)
        reward_admin_page.get_side_bar_menu_item(AdminPage.CAMPAIGNS_MENU_ITEM)
        reward_admin_page.get_side_bar_menu_item(AdminPage.LOYALTIES_MENU_ITEM)
        reward_admin_page.get_side_bar_menu_item(
            AdminPage.TRANSACTION_RULES_MENU_ITEM)
        reward_admin_page.get_side_bar_menu_item(AdminPage.MERCHANTS_MENU_ITEM)
        reward_admin_page.get_side_bar_menu_item(
            AdminPage.CUSTOMER_MANAGEMENT_MENU_ITEM)
        reward_admin_page.get_side_bar_menu_item(AdminPage.SETTINGS_MENU_ITEM)
        reward_admin_page.get_side_bar_menu_item(
            AdminPage.BUSINESS_INTELLIGENCE_MENU_ITEM)
Beispiel #22
0
 def test_web_ui_13_check_auth_page_change_pass_link(self, browser):
     auth_page = LoginPage(browser)
     auth_page.open()
     with wait_for_page_to_reload(browser):
         auth_page.click_forget_pass_btn()
     assert_that(browser.current_url, contains_string(ChangePassPage(browser).path),
                 'Страница "Новый пароль" не открылась')
Beispiel #23
0
def login_to_jira(request, browser):
    from src.pages.login_page import LoginPage
    from src.pages.main_page import MainPage
    login_page = LoginPage(browser)
    main_page = MainPage(browser)

    with allure.step("Open login page"):
        login_page.open()
    with allure.step("Login to JIRA"):
        login_page.login(login, password)

    def take_screenshot():
        with allure.step("Taking screenshot"):
            browser.execute_script("document.body.bgColor = 'white';")
            allure.attach(browser.get_screenshot_as_png(),
                          name=request.function.__name__,
                          attachment_type=allure.attachment_type.PNG)

    request.addfinalizer(take_screenshot)

    with allure.step("Wait until main page is loaded"):
        main_page.wait_until_loaded()

    yield main_page

    with allure.step("Logout from JIRA"):
        main_page.logout()
 def test_01(self):
     u'''手机号快捷登录测试'''
     self.login_page = LoginPage(self.driver)
     self.login_page.open_login_page()
     self.login_page.input_phone(self.username)
     self.login_page.get_verify_code()
     sleep(1)
     db = DatabaseOperation()
     verfy_code = db.get_data(self.key, self.sql)
     self.login_page.input_verify_code('%s' % verfy_code)
     self.login_page.click_btn_login()
     # 等待时间后续优化
     sleep(3)
     user_id = self.login_page.show_user_id()
     # 判断登录是否成功
     self.assertEqual(user_id, self.expect_user_id, msg='登录失败')
     self.login_page.click_btn_logout()
     sleep(3)
     # 登出后,"退出登录"变为"立即登录"
     text_change = self.login_page.show_text_change()
     # 判断登出是否成功
     self.assertEqual(text_change, "立即登录", msg="登出失败")
Beispiel #25
0
def test_login_wrong_password(driver_setup):
    with pytest.allure.step("Navigate to login screen"):
        driver_setup.get(config.get('JIRA', 'jira.url.ui.login'))

    with pytest.allure.step("Fill in wrong password and click 'login' button"):
        login_page = LoginPage(driver_setup)
        login_page.set_user_name(config.get('JIRA', 'jira.user'))
        login_page.set_password('wrong_password')
        login_page.click_login_button()
        allure.attach(driver_setup.get_screenshot_as_png(),
                      name='wrong_password_login',
                      attachment_type=AttachmentType.PNG)

    with pytest.allure.step(
            "Verify if user is still at login page after failed login"):
        assert driver_setup.current_url == config.get('JIRA', 'jira.url.ui.login'),\
            'Actual url {} is different from Expected {}'.format(
                driver_setup.current_url, config.get('JIRA', 'jira.url.ui.login')
            )
    with pytest.allure.step("Verify if login error message is correct"):
        assert expected_login_error in login_page.get_error_text(), \
            'Actual error {} is different from Expected {}'.format(login_page.get_error_text(), expected_login_error)
Beispiel #26
0
 def test_web_ui_10_check_auth_page_authorization(self, browser):
     auth_page = LoginPage(browser)
     auth_page.open()
     auth_page.log_in(browser=browser,
                      login=UserData.trial_tariff.value.login,
                      password=UserData.trial_tariff.value.password)
     assert_that(browser.current_url, contains_string(LKPage(browser).path),
                 'Страница "Личный кабинет" не открылась')
Beispiel #27
0
 def test_user_can_login_and_logout(self, variables):
     user = variables['user']
     password = variables['password']
     with allure.step('開啟登入頁'):
         pass
     login = LoginPage().open_login_page()
     with allure.step("輸入帳號、密碼,點擊登入Btn"):
         allure.attach('帳號', user)
         allure.attach('密碼', password)
     main_page = login.login_as(user, password).than_at_main_page()
     with allure.step("首頁的登入text必須visible,「xxx 您好」"):
         pass
     main_page.logontext.should(be.visible)
     with allure.step("關閉CrazyAD"):
         pass
     main_page.close_crazy_banner()
     with allure.step("點擊登出Btn"):
         pass
     main_page.logoutbtn.should(be.clickable)
     main_page.log_out()
     with allure.step("成功登出,登入Btn可點擊"):
         pass
     main_page.loginbtn.should(be.clickable)
Beispiel #28
0
def test_login_positive_case(driver_setup):
    with pytest.allure.step("Navigate to login screen"):
        driver_setup.get(config.get('JIRA', 'jira.url.ui.login'))

    with pytest.allure.step(
            "Fill in valid credentials and click 'login' button"):
        login_page = LoginPage(driver_setup)
        login_page.set_user_name(config.get('JIRA', 'jira.user'))
        login_page.set_password(config.get('JIRA', 'jira.password'))
        login_page.click_login_button()
        allure.attach(driver_setup.get_screenshot_as_png(),
                      name='valid_credentials_login',
                      attachment_type=AttachmentType.PNG)

    with pytest.allure.step(
            "Verify if user was navigated to dashboard page after successful login"
    ):
        assert driver_setup.current_url == config.get('JIRA', 'jira.url.ui.dashboard'),\
            'Actual url {} is different from Expected {}'.format(
                driver_setup.current_url, config.get('JIRA', 'jira.url.ui.dashboard')
            )
    def setup_class(cls):
        super().setup_class()

        # Get test data
        cls.sso_settings = read_config('../config/sso_settings.json')
        cls.user = read_config('../config/users.json')
        cls.auditing = read_config('../config/auditing.json')

        # Prepare page objects
        cls.site_settings_url = cls.data.server_name + cls.sso_settings.site_settings_url
        cls.license_url = cls.data.server_name + cls.auditing.license_url
        cls.user_overview_url = cls.data.server_name + cls.user.overview_url
        cls.site_settings = SiteSettingsPage(cls.driver)
        cls.login = LoginPage(cls.driver)
        cls.project = ProjectPage(cls.driver)
        cls.users_roles = UsersRolesPage(cls.driver)
        cls.setup_database(cls.auditing)

        cls.login_as_admin(cls)
        cls.prepare_regular_user(cls)
Beispiel #30
0
    def setup_class(cls):
        # Get test data
        cls.data = merge_configs('~/testrail.json', '../config/data.json')

        # capabilities = read_config('../config/defaultCapabilities.json')
        options = DriverOptions()
        try:
            # pytest.config is an AttributeError if called outside a test run, e.g. from the interactive interpreter
            browserName = pytest.config.getoption('browser')
            # gridURL  = pytest.config.getoption('gridurl')
            if pytest.config.getoption('headless', default=None) is not None:
                options.attrs['headless'] = True
        except AttributeError:
            browserName = 'firefox'

        # Prepare browser
        cls.driver = driver_manager.get_driver(
            browserName=DriverType.get_driver_type(browserName),
            options=options,
            capabilities=None,
            commandExecutor=None)
        driver_manager.start_service(cls.driver, cls.data.server_name)
        cls.login = LoginPage(cls.driver)