Esempio n. 1
0
class Test001Logout:
    baseURL = ReadConfig.get_application_url() + '/login'
    username = ReadConfig.get_username()
    password = ReadConfig.get_password()
    logger = LogGen.logger()

    @pytest.mark.sanity
    @pytest.mark.regression
    def test_logout(self, setup):

        self.logger.info("****Started Logout Test****")
        self.driver = setup
        self.driver.get(self.baseURL)
        self.lp = LoginPage(self.driver)
        self.lp.set_username(self.username)
        self.lp.set_password(self.password)
        self.lp.click_login()
        self.log_out = LogOutPage(self.driver)
        self.log_out.click_username()
        self.log_out.click_logout()
        name = self.driver.find_element(By.XPATH,
                                        '/html/body/div/div[1]/p[2]/a[1]').text

        if name == "Login":
            self.logger.info("****Logout test passed ****")
            self.driver.close()
            assert True
        else:
            self.logger.error("****Logout test failed ****")
            self.driver.save_screenshot(".\\screenshots\\" + "logoutPage.png")
            self.driver.close()
            assert False
Esempio n. 2
0
class Test_002_Login_DDT:
    baseurl = ReadConfig.get_application_url()
    path = ".//TestData//LoginData.xlsx"
    logger = LogGen.loggen()

    @pytest.mark.regression
    def test_login_ddt(self, setup):
        self.logger.info("**********Test_002_Login_DDT***********")
        self.logger.info("**********Verify Login Test DDT***********")
        self.driver = setup
        self.driver.get(self.baseurl)
        self.lp = LoginPage(self.driver)
        list_status = []

        self.rows = excelUtils.get_row_count(self.path, "login_data")
        print("Number of rows:", self.rows)

        for r in range(2, self.rows + 1):
            self.email = excelUtils.read_data(self.path, "login_data", r, 1)
            self.password = excelUtils.read_data(self.path, "login_data", r, 2)
            self.expected = excelUtils.read_data(self.path, "login_data", r, 3)
            print(self.email, self.password, self.expected)

            self.lp.set_email(self.email)
            self.lp.set_password(self.password)
            self.lp.click_login()
            time.sleep(5)

            actual_title = self.driver.title
            if actual_title == "Dashboard / nopCommerce administration":
                if self.expected == "Pass":
                    self.lp.click_logout()
                    list_status.append("Pass")
                    self.logger.info("**********Test " + str(r - 1) +
                                     " Passed***********")
                elif self.expected == "Fail":
                    self.lp.click_logout()
                    list_status.append("Fail")
                    self.logger.error("**********Test " + str(r - 1) +
                                      " Failed***********")
            elif actual_title != "Dashboard / nopCommerce administration":
                if self.expected == "Pass":
                    self.lp.click_logout()
                    list_status.append("Fail")
                    self.logger.error("**********Test " + str(r - 1) +
                                      " Failed***********")
                elif self.expected == "Fail":
                    list_status.append("Pass")
                    self.logger.info("**********Test " + str(r - 1) +
                                     " Passed***********")

        if "Fail" not in list_status:
            assert True
            self.driver.close()
            self.logger.info("**********Test Finished***********")
        else:
            assert False
            self.driver.close()
            self.logger.info("**********Test Finished***********")
Esempio n. 3
0
class Test003AddCustomer:
    baseURL = ReadConfig.get_application_url()
    username = ReadConfig.get_username()
    password = ReadConfig.get_password()

    logger = LogGeneration.log_generation()

    @pytest.mark.sanity
    def test_add_customer(self, setup):
        self.logger.info("************* Test_003_AddCustomer *************")
        self.driver = setup
        self.driver.maximize_window()
        self.driver.get(self.baseURL)

        # Creating an object of Login Page class
        self.login_page = LoginPage(self.driver)
        self.login_page.set_username(self.username)
        self.login_page.set_password(self.password)
        self.login_page.click_login()
        self.logger.info("Login successful")

        self.logger.info("Starting add customer test")
        # Creating an object of Add Customer Page class
        self.add_customer_page = AddCustomerPage(self.driver)
        self.add_customer_page.click_customer_menu()
        time.sleep(2)
        self.add_customer_page.click_customer()
        self.add_customer_page.click_add_new()

        self.logger.info("Entering new customer information")
        self.email = random_generator() + '@gmail.com'
        self.add_customer_page.set_email(self.email)
        self.add_customer_page.set_password('test123')
        self.add_customer_page.set_first_name('John')
        self.add_customer_page.set_last_name('Doe')
        self.add_customer_page.set_gender('Male')
        self.add_customer_page.set_dob('11/11/1996')
        self.add_customer_page.set_company('busyQA')
        self.add_customer_page.set_tax_exempt()
        self.add_customer_page.set_newsletter('Test store 2')
        self.add_customer_page.set_customer_roles('Vendors')
        self.add_customer_page.set_manager_of_vendor('Vendor 1')
        self.add_customer_page.set_active()
        self.add_customer_page.set_admin_comment('This is a new customer for testing purpose')
        self.add_customer_page.click_save()

        self.logger.info("Saving new customer information")
        self.logger.info("Add customer validation started")

        self.success_msg = self.driver.find_element_by_tag_name('body').text
        if 'customer has been added successfully' in self.success_msg:
            assert True
            self.logger.info("Add customer test passed")
        else:
            self.driver.save_screenshot("./Screenshots/test_add_customer.png")
            self.logger.error("Add customer test case failed")
            assert False
Esempio n. 4
0
class Test001Login:
    baseURL = ReadConfig.get_application_url() + '/login'
    username = ReadConfig.get_username()
    password = ReadConfig.get_password()
    logger = LogGen.logger()

    @pytest.mark.regression
    def test_login_page_title(self, setup):
        self.logger.info("*************** Test_001_Login *****************")
        self.logger.info("****Started Login page title test ****")
        self.driver = setup
        self.logger.info("****Opening URL****")
        self.driver.get(self.baseURL)
        title = self.driver.title
        print(title)
        if title == "Calendar App":
            self.logger.info("**** Login page title test passed ****")
            self.driver.close()
            assert True
        else:
            self.logger.error("**** Login page title test failed****")
            self.driver.save_screenshot(".\\screenshots\\" +
                                        "loginPageTitle.png")
            self.driver.close()
            assert False

    @pytest.mark.sanity
    @pytest.mark.regression
    def test_login(self, setup):

        self.logger.info("****Started Login Test****")
        self.driver = setup
        self.driver.get(self.baseURL)
        self.lp = LoginPage(self.driver)
        self.lp.set_username(self.username)
        self.lp.set_password(self.password)
        self.lp.click_login()
        name = self.driver.find_element(By.TAG_NAME, 'span').text

        if name == "SWAPNA SAMA":
            self.logger.info("****Login test passed ****")
            self.driver.close()
            assert True
        else:
            self.logger.error("****Login test failed ****")
            self.driver.save_screenshot(".\\screenshots\\" + "loginPage.png")
            self.driver.close()
            assert False
class Test001Login:
    baseURL = ReadConfig.get_application_url()
    username = ReadConfig.get_username()
    password = ReadConfig.get_password()

    logger = LogGeneration.log_generation()

    @pytest.mark.regression
    def test_homepage_title(self, setup):
        self.logger.info("************* Test_001_Login *************")
        self.logger.info("*** Started home page title test ***")
        self.driver = setup
        self.driver.maximize_window()
        self.logger.info("Opening application URL")
        self.driver.get(self.baseURL)
        actual_title = self.driver.title
        if actual_title == "Your store. Login":
            self.logger.info("Home page title test is passed")
            assert True
        else:
            self.logger.error("Home page title test is failed")
            self.driver.save_screenshot(
                "./Screenshots/test_homepage_title.png")
            assert False

    @pytest.mark.sanity
    @pytest.mark.regression
    def test_login(self, setup):
        self.logger.info("*** Started login test ***")
        self.driver = setup
        self.driver.maximize_window()
        self.driver.get(self.baseURL)

        # Creating an object of LoginPage class
        self.login_page = LoginPage(self.driver)
        self.login_page.set_username(self.username)
        self.login_page.set_password(self.password)
        self.login_page.click_login()
        actual_title = self.driver.title
        if actual_title == "Dashboard / nopCommerce administration":
            self.logger.info("Login test is passed")
            assert True
        else:
            self.logger.error("Login test is failed")
            self.driver.save_screenshot("./Screenshots/test_login.png")
            assert False
class Test_001_Login:
    baseurl = ReadConfig.get_application_url()
    email = ReadConfig.get_email()
    password = ReadConfig.get_password()

    @allure.severity(allure.severity_level.NORMAL)
    @pytest.mark.sanity
    def test_homepage_title(self, setup):
        self.driver = setup
        self.driver.get(self.baseurl)
        actual_title = self.driver.title
        if actual_title == "Your store. Login":
            assert True
            self.driver.close()
        else:
            self.driver.save_screenshot(".\\Screenshots\\" +
                                        "test_homepage_title.png")
            assert False
            self.driver.close()

    @allure.severity(allure.severity_level.CRITICAL)
    @pytest.mark.sanity
    @pytest.mark.regression
    def test_login(self, setup):
        self.driver = setup
        self.driver.get(self.baseurl)
        self.lp = LoginPage(self.driver)
        self.lp.set_email(self.email)
        self.lp.set_password(self.password)
        self.lp.click_login()
        actual_title = self.driver.title
        if actual_title == "Dashboard / nopCommerce administration fail":
            assert True
            self.driver.close()
        else:
            allure.attach(self.driver.get_screenshot_as_png(),
                          name="test_login",
                          attachment_type=AttachmentType.PNG)
            self.driver.save_screenshot(".\\Screenshots\\" + "test_login.png")
            assert False
            self.driver.close()
class Test005SearchCustomerByName:
    baseURL = ReadConfig.get_application_url()
    username = ReadConfig.get_username()
    password = ReadConfig.get_password()

    logger = LogGeneration.log_generation()

    @pytest.mark.regression
    def test_search_customer_by_name(self, setup):
        self.logger.info(
            "************* Test_005_SearchCustomerByName *************")
        self.driver = setup
        self.driver.maximize_window()
        self.driver.get(self.baseURL)

        self.logger.info("Entering login credentials")
        self.login_page = LoginPage(self.driver)
        self.login_page.set_username(self.username)
        self.login_page.set_password(self.password)
        self.login_page.click_login()
        self.logger.info("Login successful")

        self.logger.info("Clicking on customer menu")
        self.customer_page = AddCustomerPage(self.driver)
        self.customer_page.click_customer_menu()
        time.sleep(2)
        self.customer_page.click_customer()

        self.logger.info("Searching customer by name")
        self.search_customer = SearchCustomer(self.driver)
        self.search_customer.set_first_name('John')
        self.search_customer.set_last_name('Smith')
        self.search_customer.click_search()
        time.sleep(3)
        status = self.search_customer.search_customer_by_name('John Smith')
        assert True == status
        self.logger.info("Test_005_SearchCustomerByName finished")
class Test_004_Search_Customer:
    baseurl = ReadConfig.get_application_url()
    email = ReadConfig.get_email()
    password = ReadConfig.get_password()

    @pytest.mark.regression
    def test_search_customer_by_email(self, setup):
        self.driver = setup
        self.driver.get(self.baseurl)
        self.driver.maximize_window()

        # login to application
        self.lp = LoginPage(self.driver)
        self.lp.set_email(self.email)
        self.lp.set_password(self.password)
        self.lp.click_login()
        time.sleep(5)

        # search customer
        self.addCustomer = AddCustomerPage(self.driver)
        self.addCustomer.click_on_customers_menu()
        self.addCustomer.click_on_customers_submenu()

        self.searchCustomer = SearchCustomerPage(self.driver)
        self.searchCustomer.set_email("*****@*****.**")
        self.searchCustomer.click_search_button()

        if self.searchCustomer.verify_email_result(
                "*****@*****.**"):
            assert True
        else:
            self.driver.save_screenshot(".\\Screenshots\\" +
                                        "test_search_customer_by_email.png")
            assert False

        self.driver.close()
class Test_003_Add_Customer:
    baseurl = ReadConfig.get_application_url()
    email = ReadConfig.get_email()
    password = ReadConfig.get_password()

    # def test_verify_add_customer_page(self, setup):
    #     self.driver = setup
    #     self.driver.get(self.baseurl)
    #     self.driver.maximize_window()
    #
    #     # login to application
    #     self.lp = LoginPage(self.driver)
    #     self.lp.set_email(self.email)
    #     self.lp.set_password(self.password)
    #     self.lp.click_login()
    #     time.sleep(5)
    #
    #     # Verify add new customer page
    #     self.addCustomer = AddCustomerPage(self.driver)
    #     self.addCustomer.click_on_customers_menu()
    #     self.addCustomer.click_on_customers_submenu()
    #     self.addCustomer.click_on_add_new()
    #     assert self.addCustomer.verify_add_customer_page()
    #
    #     self.driver.close()

    @pytest.mark.sanity
    @pytest.mark.regression
    def test_add_customer(self, setup):
        self.driver = setup
        self.driver.get(self.baseurl)
        self.driver.maximize_window()

        # login to application
        self.lp = LoginPage(self.driver)
        self.lp.set_email(self.email)
        self.lp.set_password(self.password)
        self.lp.click_login()
        time.sleep(5)

        # add new customer
        self.addCustomer = AddCustomerPage(self.driver)
        self.addCustomer.click_on_customers_menu()
        self.addCustomer.click_on_customers_submenu()
        self.addCustomer.click_on_add_new()

        self.full_name = random_generator()
        self.email = self.full_name + "@gmail.com"
        print(self.full_name, self.email)
        self.addCustomer.set_email(self.email)
        self.addCustomer.set_password("hello123")
        self.addCustomer.set_first_name(self.full_name[:5])
        self.addCustomer.set_last_name(self.full_name[5:])
        self.addCustomer.select_gender("male")
        self.addCustomer.set_dob("9/9/1990")
        self.addCustomer.set_company_name("AutomationQA")
        self.addCustomer.select_customer_roles("Administrators")
        self.addCustomer.select_manager_of_vendor("Vendor 1")
        self.addCustomer.set_admin_comment("Adding a new customer using automation script")

        self.addCustomer.click_save()

        if self.addCustomer.verify_alert():
            self.success_msg = self.driver.find_element_by_xpath("//div[contains(@class, 'alert-success')]").text.strip()
            if "The new customer has been added successfully" in self.success_msg:
                assert True
            else:
                self.driver.save_screenshot(".\\Screenshots\\" + "test_add_customer.png")
                assert False
        else:
            self.driver.save_screenshot(".\\Screenshots\\" + "test_add_customer.png")
            assert False

        self.driver.close()
Esempio n. 10
0
class Test_SearchCustomerByEmail_004:
    baseURL = ReadConfig.getApplicationURL()
    username = ReadConfig.getUsername()
    password = ReadConfig.getPassword()
    logger = LogGen.loggen()  # Logger

    @pytest.mark.regression
    def test_searchCustomerByEmail(self, setup):
        self.logger.info("************* SearchCustomerByEmail_004 **********")
        self.driver = setup
        self.driver.get(self.baseURL)
        self.driver.maximize_window()

        self.lp = LoginPage(self.driver)
        self.lp.set_email(self.username)
        self.lp.set_password(self.password)
        self.lp.click_login()
        self.logger.info("************* Login succesful **********")

        self.logger.info("******* Starting Search Customer By Email **********")

        self.homePage = CustomerPage(self.driver)
        self.homePage.clickOnCustomerMainMenu().click()
        time.sleep(3)
        self.homePage.clickOnCustomerSubMenu().click()
        time.sleep(3)

        self.logger.info("************* searching customer by emailID **********")
        searchcust = SearchCustomer(self.driver)
        searchcust.setEmail("*****@*****.**")
        searchcust.clickSearch()
        time.sleep(5)
        status = searchcust.searchCustomerByEmail("*****@*****.**")
        self.driver.close()
        assert True == status
        self.logger.info("***************  TC_SearchCustomerByEmail_004 Finished  *********** ")

        def test_searchCustomerByEmail(self, setup):
            self.logger.info("************* SearchCustomerByEmail_004 **********")
            self.driver = setup
            self.driver.get(self.baseURL)
            self.driver.maximize_window()

            self.lp = LoginPage(self.driver)
            self.lp.set_email(self.username)
            self.lp.set_password(self.password)
            self.lp.click_login()
            self.logger.info("************* Login succesful **********")

            self.logger.info("******* Starting Search Customer By Email **********")

            self.homePage = CustomerPage(self.driver)
            self.homePage.clickOnCustomerMainMenu().click()
            time.sleep(3)
            self.homePage.clickOnCustomerSubMenu().click()
            time.sleep(3)

            self.logger.info("************* searching customer by emailID **********")
            searchcust = SearchCustomer(self.driver)
            searchcust.setEmail("*****@*****.**")
            searchcust.clickSearch()
            time.sleep(5)
            status = searchcust.searchCustomerByEmail("*****@*****.**")
            self.driver.close()
            assert True == status
            self.logger.info("***************  TC_SearchCustomerByEmail_004 Finished  *********** ")
class Test002DataDrivenLogin:
    baseURL = ReadConfig.get_application_url()
    path = ".//TestData/login_test_data.xlsx"

    logger = LogGeneration.log_generation()

    @pytest.mark.regression
    def test_login_ddt(self, setup):
        self.logger.info("************* Test_002_DDT_Login *************")
        self.logger.info("*** Verifying Login DDT test ***")
        self.driver = setup
        self.driver.maximize_window()
        self.driver.get(self.baseURL)

        # Creating object of LoginPage class
        self.login_page = LoginPage(self.driver)

        self.rows = excelUtils.get_row_count(self.path, 'Sheet1')
        self.cols = excelUtils.get_col_count(self.path, 'Sheet1')

        status_list = []

        for row in range(2, self.rows + 1):
            self.username = excelUtils.read_data(self.path, 'Sheet1', row, 1)
            self.password = excelUtils.read_data(self.path, 'Sheet1', row, 2)
            self.expected = excelUtils.read_data(self.path, 'Sheet1', row, 3)

            self.login_page.set_username(self.username)
            self.login_page.set_password(self.password)
            self.login_page.click_login()
            time.sleep(2)

            actual_title = self.driver.title
            expected_title = "Dashboard / nopCommerce administration"

            if actual_title == expected_title:
                if self.expected == "Pass":
                    self.logger.info("Scenario passed")
                    self.login_page.click_logout()
                    status_list.append("Pass")
                elif self.expected == "Fail":
                    self.logger.info("Scenario failed")
                    self.login_page.click_logout()
                    status_list.append("Fail")

            elif actual_title != expected_title:
                if self.expected == "Pass":
                    self.logger.info("Scenario failed")
                    status_list.append("Fail")
                elif self.expected == "Fail":
                    self.logger.info("Scenario passed")
                    status_list.append("Pass")

        if "Fail" not in status_list:
            self.logger.info("Data driven login test passed")
            assert True
        else:
            self.logger.info("Data driven login test failed")
            assert False

        self.logger.info("*** End of Login DDT test ***")