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 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 ***")
class TestCommerce_03_AddCustomer: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUsername() password = ReadConfig.getPassword() logger = LogGen.getLogger() @pytest.mark.sanity def test_AddNewCustomer(self, setup): self.logger.info( "############## Verifying login test####################") self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.lp.setField(self.lp.email_id, self.username) self.lp.setField(self.lp.password_id, self.password) self.lp.clickOn(self.lp.login_xpath).click() home_title = self.driver.title self.logger.info(home_title) self.homePage = HomePage(self.driver) self.homePage.clickOn(self.homePage.customer_menu_xpath).click() self.homePage.clickOn(self.homePage.customerButton_xpath).click() self.homePage.clickOn(self.homePage.add_button_xpath).click() time.sleep(3) self.logger.info("********* Entered Add customer Page **** *****") self.email = random_generator() + "@gmail.com" self.homePage.setField(self.homePage.txtboxEmail_xpath, self.email) self.homePage.setField(self.homePage.txtboxPassword_xpath, "kushal@123") self.homePage.setField(self.homePage.txtboxFirstName_xpath, "vini") self.homePage.setField(self.homePage.txtboxLastName_xpath, "tp") self.homePage.setGender("Male") self.homePage.get_DatePicker("May", "2000", "25") # self.homePage.setDOB("3/1/2021") self.homePage.setField(self.homePage.txtboxCompany_xpath, "Tata Consultancy Services Limited") self.homePage.clickOn(self.homePage.cbTaxExempt_xpath).click() self.homePage.setField(self.homePage.txtAdminComment_xpath, "Kushal is our god") self.homePage.setManagerOfVender("Vendor 1") self.homePage.setCustomerRoles("Vendors") time.sleep(3) self.homePage.clickOn(self.homePage.btnSave_xpath).click() time.sleep(3) self.msg = self.driver.find_element_by_tag_name("body").text print(self.msg) if 'customer has been added successfully.' in self.msg: assert True self.driver.close() self.logger.info("********* Add customer Test Passed *********") else: self.driver.save_screenshot( ".\\Screenshots\\" + "test_addCustomer_scr.png") # Screenshot self.logger.info("********* Add customer Test Failed ************") self.driver.close() assert False self.logger.info("******* Ending Add customer test **********") def test_e2e(self, setup): self.driver = setup self.logger.info("New Login") self.loginPage = LoginPage(self.driver) self.logger.info("Entering into Green Kart website") self.logger.info(self.driver.title) self.driver.get(self.baseURL) self.loginPage = LoginPage(self.driver) self.loginPage.setField(self.loginPage.email_id, self.username) self.loginPage.setField(self.loginPage.password_id, self.password) self.loginPage.clickOn(self.loginPage.login_xpath).click() time.sleep(3) self.logger.info(self.driver.title) time.sleep(3) self.loginPage.click_logout() self.driver.close()
class Test_002_DDT_Login: baseURL = ReadConfig.getApplicationURL() path = ".//TestData/LoginData.xlsx" logger = LogGen.loggen() @pytest.mark.regression def test_login_ddt(self, setup): self.logger.info("******* Starting Test_002_DDT_Login Test **********") self.logger.info("******* Starting Login DDT Test **********") self.driver = setup self.driver.get(self.baseURL) self.driver.maximize_window() self.lp = LoginPage(self.driver) self.rows = XLUtils.getRowCount(self.path, 'Sheet1') print('Number of rows in a excel:', self.rows) lst_status = [] for r in range(2, self.rows + 1): self.user = XLUtils.readData(self.path, 'Sheet1', r, 1) self.password = XLUtils.readData(self.path, 'Sheet1', r, 2) self.exp = XLUtils.readData(self.path, 'Sheet1', r, 3) self.lp.setField(self.lp.email_id, self.user) self.lp.setField(self.lp.password_id, self.password) self.lp.clickOn(self.lp.login_xpath).click() time.sleep(5) act_title = self.driver.title exp_title = "Dashboard / nopCommerce administration" if act_title == exp_title: if self.exp == 'Pass': self.logger.info("**** passed ****") self.lp.click_logout() lst_status.append("Pass") elif self.exp == 'Fail': self.logger.info("**** failed ****") self.lp.click_logout() lst_status.append("Fail") elif act_title != exp_title: if self.exp == 'Pass': self.logger.info("**** failed ****") lst_status.append("Fail") elif self.exp == 'Fail': self.logger.info("**** passed ****") lst_status.append("Pass") print(lst_status) if "Fail" not in lst_status: self.logger.info("******* DDT Login test passed **********") self.driver.close() assert True else: self.logger.error("******* DDT Login test failed **********") self.driver.close() assert False self.logger.info("******* End of Login DDT Test **********") self.logger.info( "**************** Completed TC_LoginDDT_002 ************* ")