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
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***********")
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
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()
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 ***")