def init_driver(request): from selenium import webdriver chrome_options = Options() chrome_options.add_argument("--headless") browser = request.config.getoption("--browser") ################################## Chrome Browser ############################# if browser == "chrome": driver = webdriver.Chrome(ChromeDriverManager().install()) driver.get(ReadConfig.getApplicationURL()) driver.find_element_by_id("details-button").click() driver.find_element_by_id("proceed-link").click() ################################## Firefox #################################### elif browser == "firefox": driver = webdriver.Firefox( executable_path=GeckoDriverManager().install()) driver.get(ReadConfig.getApplicationURL()) ################################ Default Browser ############################### else: driver = webdriver.Chrome(ChromeDriverManager().install()) driver.get(ReadConfig.getApplicationURL()) driver.find_element_by_id("details-button").click() driver.find_element_by_id("proceed-link").click() driver.implicitly_wait(3) driver.maximize_window() request.cls.driver = driver yield driver.close() driver.quit()
class TestSearch_004(BaseClass): baseURL = ReadConfig.getApplicationURL() Email = ReadConfig.getEmail() Password = ReadConfig.getPassword() searchEmail = ReadConfig.getsearchEmail() logger = LogGen.loggen() def test_searchgCustomer(self, setup): self.lp = Login(self.driver) self.lp.doLogin(self.Email, self.Password) self.addCust = addCustomer(self.driver) self.addCust.clickCustomers() self.addCust.clickCustomersMenu() self.search = searchCustomer(self.driver) self.search.setEmail(self.searchEmail) self.search.clickSearch() getEmail = self.search.searchByEmail(self.searchEmail) assert self.searchEmail == getEmail
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("**********Test_002_DDT_Login**********") self.logger.info("*****Verifying Login Test*****") self.driver = setup self.driver.get(self.baseURL) self.lp = Login(self.driver) self.rows = XLUtils.getRowCount(self.path, 'Sheet1') print("Number of rows in EXcel:", self.rows) lst_status = [] for row in range(2, self.rows + 1): self.user = XLUtils.readData(self.path, 'Sheet1', row, 1) self.password = XLUtils.readData(self.path, 'Sheet1', row, 2) self.exp = XLUtils.readData(self.path, 'Sheet1', row, 3) self.lp.setUserName(self.user) self.lp.setPassword(self.password) self.lp.clickLogin() 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.clickLogout() lst_status.append("Pass") elif self.exp == "Fail": self.logger.info("**Failed**") self.lp.clickLogout() lst_status.append("fail") elif act_title != exp_title: if self.exp == "Pass": self.driver.save_screenshot(".\\screenshots\\" + "test_login_ddt.png") self.logger.info("**Failed**") lst_status.append("Fail") elif self.exp == "Fail": self.logger.info("**Passed**") lst_status.append("Pass") if "Fail" not in lst_status: self.logger.info("Login DDT test Passed.......") self.driver.close() assert True else: self.logger.error("Login DDT test Failed.......") self.driver.close() assert False self.logger.info("***** End of Login DDT Test *****") self.logger.info("***** ***** Completed TC_LoginDDT_002 ***** *****")
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(" ************* Test__002__DDT__Login*********** ") self.logger.info(" ******************** Veryfying after login ddt test title *************** ") self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.rows = XLUtils.getRowCount(self.path, 'Sheet1') print("Number of rows in excel file:", self.rows) lst_status = [] #empty list variable 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.setUserName(self.user) self.lp.setPassword(self.password) self.lp.clickLogin() 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.clickLogout() lst_status.append("Pass") elif self.exp == "Fail": self.logger.info(" ****** Failed *******") self.lp.clickLogout() 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") if "Fail" not in lst_status: self.logger.info("****** Login DDT test passed ********") self.driver.close() assert True else: self.logger.info("**** Login DDT test failed ******") self.driver.close() assert False self.logger.info(" ********* End of Login DDT Test *********") self.logger.info(" ******************* Completed TC_LOGINDDT_002 Test ********")
class Test_searchProductsByName_007: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUserEmail() password = ReadConfig.getPassword() logger = LogGen.loggen() # Logger product_name = "Nike" # Variable for product you want to search def testSearchProductsByName(self, setup): self.logger.info( "************* TC_searchProductsByName_007 **********") self.driver = setup self.driver.get(self.baseURL) self.driver.maximize_window() self.lp = LoginPage(self.driver) self.lp.setUserName(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() self.logger.info("************* Login successful **********") self.logger.info( "************* Navigating to Products Page **********") self.pp = PageProducts(self.driver) self.pp.clickCatalog() self.driver.implicitly_wait(2) self.pp.clickProducts() self.pp.setProductName(self.product_name) self.pp.clickSearch() self.logger.info("************* Search for product **********") flag = self.pp.searchProductByName(self.product_name) assert flag self.driver.close() self.logger.info( "************* TC_searchProductsByName_007 Finished **********")
class Test_001_Login: # config 파일에서 URL, ID, PW 정보를 가져옴 baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() # Log 생성을 위한 인스턴스 logger = LogGen.loggen() # Title 확인하는 Test @pytest.mark.regression def test_homePageTitle(self, setup): self.logger.info("********** Test_001_Login **********") self.logger.info("********** verifying home page title **********") self.driver = setup self.driver.get(self.baseURL) # 현재 탭의 타이틀 정보를 가져옴 act_title = self.driver.title # 타이틀 정보를 이용해서 로그인 페이지가 정상적으로 열렸는지 검증 if act_title == "로그인 - SK open API": assert True self.driver.close() self.logger.info( "********** Login page title test is passed **********") else: self.driver.save_screenshot(".\\screenshots\\" + "test_homePageTitle.png") self.driver.close() self.logger.error( "********** Login page title test is failed **********") assert False @pytest.mark.sanity @pytest.mark.regression def test_login(self, setup): self.logger.info("********** verifying login test **********") self.driver = setup self.driver.get(self.baseURL) self.driver.maximize_window() self.lp = LoginPage(self.driver) # ID, PW 입력 self.lp.setUserName(self.username) self.lp.setPassword(self.password) # 로긴 버튼 클릭 self.lp.clickLogin() # 대기시간 2초 설정 time.sleep(2) # 로긴 후 타이틀 정보 저장 act_title = self.driver.title member = self.driver.find_element_by_xpath( '//*[@id="tempHide"]/div[2]/ul/li[2]/div/a/span[2]').text if act_title == "SK open API" and member == self.username: assert True self.logger.info("********** login test is passed **********") self.driver.close() else: self.driver.save_screenshot(".\\screenshots\\" + "test_login.png") self.driver.close() self.logger.error("********** login test is failed **********") assert False
class Test_002_DDT_Login: baseURL = ReadConfig.getApplicationURL() dataPath = ".//TestData/LoginData.xlsx" logger = LogGen.loggen() @pytest.mark.regression def test_login(self, setup): self.logger.info("************** Test_002_DDT_Login **************") self.logger.info("************** Verifying test_login **************") self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.numOfTests = XLUtils.gerRowCount(self.dataPath, "Sheet1") test_status_lst = [] for data in range(2,self.numOfTests+1): self.user = XLUtils.readData(self.dataPath, "Sheet1", data, 1) self.pwd = XLUtils.readData(self.dataPath, "Sheet1", data, 2) self.exp = XLUtils.readData(self.dataPath, "Sheet1", data, 3) self.lp.setUsername(self.user) self.lp.setPassword(self.pwd) self.lp.clickLogin() time.sleep(5) act_title = self.driver.title exp_title = "Dashboard / nopCommerce administration" print("Data %: % %", data, self.user, self.pwd) if act_title == exp_title: if self.exp == "Pass": self.logger.info("*** PASSED ***") test_status_lst.append("Pass") self.lp.clickLogout() elif self.exp == "Fail": self.logger.info("*** FAILED ***") test_status_lst.append("Fail") self.lp.clickLogout() if act_title != exp_title: if self.exp == "Pass": self.logger.info("*** FAILED ***") test_status_lst.append("Fail") elif self.exp == "Pass": self.logger.info("*** PASSED ***") test_status_lst.append("Pass") if "Fail" not in test_status_lst: self.logger.info("DDT Test is Pass") self.driver.close() assert True else: self.logger.info("DDT Test is Fail") self.driver.close() assert False self.logger.info(" ********** End of Login DDT Test **********") self.logger.info(" *************** Completed TC_LoginDDT_002 **************")
class Test_005_SearchCustomer: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() logger = LogGen.loggen() @pytest.mark.regression def test_searchCustomerByName(self, setup): self.logger.info("****SearchCustomerByName_005**********") self.driver = setup self.driver.get(self.baseURL) self.driver.maximize_window() self.lp = LoginPage(self.driver) self.lp.setUserName(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() self.logger.info("********* Login Page success ********") self.logger.info("********** starting AddCustomer********") self.addcust = AddCustomer(self.driver) self.addcust.clickonCustomersMenu() self.addcust.clcikonCustomersmenuItem() self.logger.info("******* SearchCustomeByName********") searchcust = SearchCustomer(self.driver) searchcust.setFirstName("victoria") searchcust.setLastName("Terces") searchcust.clickSearch() time.sleep(3) status = searchcust.searchCustomerByName("Victoria Terces") assert True == status self.logger.info("********* TC _searchCustomerByName_005 finished***") self.driver.close()
class Test_001_Login(LogGen): # reading data from reading configobj baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUserName() password = ReadConfig.getPasword() # screenshotlocation screenshotpath = Screenshot.takeScreenshot() # variables: expPageTitel = "Facebook - Log In or Sign Up" def test_homePageTitle(self, setup): log = self.getLoger() log.info('__Test_0001__') # calling driver self.driver = setup self.driver.get(self.baseURL) page_title = self.driver.title assert page_title == self.expPageTitel def test_login(self, setup): log = self.getLoger() log.info('__Test_0001__') self.driver = setup self.driver.get(self.baseURL) # login test case lp = LoginPage(self.driver) lp.setUserName(self.username) lp.setPassword(self.password) lp.clcikLogin() page_title = self.driver.title assert page_title == self.expPageTitel
class Test_002_DDT_Login: baseURL = ReadConfig.getApplicationURL() path = ".//TestData//LoginData.xlsx" logger = LogGen.loggen() def test_login_ddt(self, setup): self.logger.info("************** Test_002_DDT_Login ******************") self.logger.info("************** Verifying Login Test DDT ************** ") self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.rows = XlUtils.get_row_count(self.path, "Sheet1") print("No of rows in excel file: ", self.rows) list_status = [] for r in range(2, self.rows + 1): self.user = XlUtils.read_data(self.path, 'Sheet1', r, 1) self.password = XlUtils.read_data(self.path, 'Sheet1', r, 2) self.exp = XlUtils.read_data(self.path, 'Sheet1', r, 3) self.lp.setUserName(self.user) self.lp.setPassword(self.password) self.lp.clickLogin() time.sleep(5) actual_title = self.driver.title expected_title = "Dashboard / nopCommerce administration" if actual_title == expected_title: if self.exp == "Pass": self.logger.info("***** Passed *****") self.lp.clickLogout() list_status.append("Pass") elif self.exp == "Fail": self.logger.info("***** Failed *****") self.lp.clickLogout() list_status.append("Fail") elif actual_title != expected_title: if self.exp == "Pass": self.logger.info("***** Failed *****") list_status.append("Fail") elif self.exp == "Fail": self.logger.info("***** Passed *****") list_status.append("Pass") if "Fail" not in list_status: self.logger.info("***************** Login DDT test is Passed *****************") self.driver.close() assert True else: self.logger.info("***************** Login DDT test is Failed *****************") self.driver.save_screenshot(".\\Screenshots\\" + "test_login_ddt.png") self.driver.close() assert False print(list_status) self.logger.error("***************** End of Login DDT Test ****************") self.logger.error("***************** Completed Test_002_DDT_Login ****************")
class Test_002_DDT_Login(): baseURL = ReadConfig.getApplicationURL() path = "TestData/LoginData.xlsx" logger = LogGen.loggen() # Logger @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...',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.setUserName(self.user) self.lp.setPassword(self.password) self.lp.clickLogin() 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.clickLogout() lst_status.append("Pass") elif self.exp=='Fail': self.logger.info("**** failed ****") self.lp.clickLogout() 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 ************* ")
class Test_002_DDT_Login: baseURL = ReadConfig.getApplicationURL() path = "C:\\Users\\Luis\\Desktop\\Selenium-Hybrid-Framework\\TestData\\LoginData.xlsx" logger = LogGen.loggen() @pytest.mark.regression def test_Login(self, setup): self.logger.info("********Test_002_DDT_Login***************") self.logger.info("********Home Verifying Login Test *******") self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.rows = XLUtils.getRowCount(self.path, 'Hoja1') print("Number of Rows i a Excel:", self.rows) lst_status = [] #empaty list varaible for r in range(2, self.rows + 1): self.user = XLUtils.readData(self.path, 'Hoja1', r, 1) self.password = XLUtils.readData(self.path, 'Hoja1', r, 2) self.exp = XLUtils.readData(self.path, 'Hoja1', r, 3) self.lp.setUserName(self.user) self.lp.setPassword(self.password) self.lp.clickLogin() time.sleep(5) #self.lp.clickLogout() 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.clickLogout() lst_status.append("Pass") elif self.exp == "Fail": self.logger.info("***Failed***") self.lp.clickLogout() 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("Fail") if "Fail" not in lst_status: self.logger.info("Login DDT test passed...") self.driver.close() assert True else: self.logger.info("Login DDT test failed...") self.driver.close() assert False self.logger.info("************* End of Login DDT Test *****") self.logger.info("************Completed TC_LoginDDT_002****")
class Test_004_searchCust: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getApplicationusername() password = ReadConfig.getApplicationpassword() logger = logGen.loggen() @pytest.mark.sanity #@pytest.mark.regression def test_searchCustomer(self, setup): self.logger.info("*************Test_001_Login***********") self.driver = setup self.driver.get("https://admin-demo.nopcommerce.com/admin/") self.login = LoginPage(self.driver) self.login.set_username(self.username) self.login.set_password(self.password) self.login.clickLogin() time.sleep(8) self.srchcust = SearchCustomerPage(self.driver) self.srchcust.click_CustomersMenu() time.sleep(3) self.srchcust.click_CustomersMenuItem() time.sleep(3) self.srchcust.set_mail("*****@*****.**") self.srchcust.click_search() time.sleep(5) print(self.srchcust.get_no_of_rows()) status = self.srchcust.search_Customer_by_Email( "*****@*****.**") time.sleep(5) assert status == True
class Test_SearchCustomerByEmail_004: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() 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.setUserName(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() self.logger.info("************* Login succesful **********") self.logger.info("******* Starting Search Customer By Email **********") self.addcust = AddCustomer(self.driver) self.addcust.clickOnCustomersMenu() self.addcust.clickOnCustomersMenuItem() self.logger.info("************* searching customer by emailID **********") searchcust = SearchCustomer(self.driver) searchcust.setEmail("*****@*****.**") searchcust.clickSearch() time.sleep(5) status=searchcust.searchCustomerByEmail("*****@*****.**") time.sleep(2) self.driver.close() assert True==status self.logger.info("*************** TC_SearchCustomerByEmail_004 Finished *********** ")
class Test_003_SearchPrd: baseURL = ReadConfig.getApplicationURL() logger = LogGen.loggen() @pytest.mark.sanity @pytest.mark.regression def test_searchPrd(self, setup): self.logger.info("***** Test_003_SearchPrd Started ****") self.driver = setup self.driver.get(self.baseURL) self.driver.maximize_window() time.sleep(5) # create a new variable self.logger.info("***** Search Product Started ****") self.srb = SearchPrd(self.driver) self.srb.setSearchPrd("Summer Dress") self.srb.clickSearch() # Validate title of the page self.logger.info("***** Validation Test Started ****") act_title = self.driver.title if act_title == "Search - My Store": self.logger.info("***** Validation Test Passed ****") assert True else: self.driver.save_screenshot("./Screenshots" + "Test_003_SearchPrd.png") self.logger.info("***** Validation Test Failed ****") assert False # sort by lowest price self.srb.setSortProduct("Price: Lowest first") self.logger.info("***** Test_003_SearchPrd Completed ****")
class Test_SearchCustomerByEmail_004: baseURL = ReadConfig.getApplicationURL() userName = ReadConfig.getUserName() password = ReadConfig.getPassword() logger = LogGen.loggen() @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 = Login(self.driver) self.lp.setUserName() self.lp.setPassword() self.lp.clickLogin() self.logger.info( "***********Starting Search Customer By Email**********") self.addCust = AddCustomer(self.driver) self.addCust.clickCustomersMenu() self.addCust.clickCustomersMenuItem() self.logger.info("************Seach Customer By Email Id********") searchCust = SearchCustomer(self.driver) searchCust.setEmail("*****@*****.**") searchCust.clickSearchButton() time.sleep(5) status = searchCust.searchCustomerByEmail("*****@*****.**") assert True == status self.logger.info( "********** TC_SearchCustomerByEmail_004 Finished ************") self.driver.close
class Test_001_Login: baseUrl = ReadConfig.getApplicationURL() username = ReadConfig.getUsername() password = ReadConfig.getPassword() logger = LogGeneration.logGeneration() # Getting logger @pytest.mark.regression def test_Login(self, setup): self.logger.info("********Test_001_Login********") self.logger.info("********Verifying Login test********") self.driver = setup self.driver.get(self.baseUrl) self.lp = LoginPage(self.driver) self.lp.setUsername(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() act_title = self.driver.title expected_title = "My timesheet list weekly" if act_title == expected_title: self.driver.save_screenshot(".\\screenshots\\" + "test_Login.png") self.driver.close() self.logger.info("******** Login Test passed ********") assert True else: self.driver.save_screenshot(".\\screenshots\\" + "test_Login.png") self.driver.close() self.logger.info("******** Login Test failed ********") assert False
class Test_003_AddCustomer: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() logger = LogGen.loggen() # Logger @pytest.mark.sanity def test_addCustomer(self, setup): self.logger.info("************* Test_003_AddCustomer **********") self.driver = setup self.driver.get(self.baseURL) self.driver.maximize_window() self.lp = LoginPage(self.driver) self.lp.setUserName(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() self.logger.info("************* Login succesful **********") self.logger.info("******* Starting Add Customer Test **********") self.addcust = AddCustomer(self.driver) self.addcust.clickOnCustomersMenu() self.addcust.clickOnCustomersMenuItem() self.addcust.clickOnAddnew() self.logger.info("************* Providing customer info **********") self.email = random_generator() + "@gmail.com" self.addcust.setEmail(self.email) self.addcust.setPassword("test123") self.addcust.setManagerOfVendor("Vendor 2") self.addcust.setGender("Male") self.addcust.setFirstName("Pavan") self.addcust.setLastName("Kumar") self.addcust.setDob("7/05/1985") # Format: D / MM / YYY self.addcust.setCompanyName("busyQA") #self.addcust.setCustomerRoles("Guests") self.addcust.setAdminContent("This is for testing.........") self.addcust.clickOnSave() self.logger.info("************* Saving customer info **********") self.logger.info( "********* Add customer validation started *****************") #self.msg = self.driver.find_element_by_tag_name("body").text #print(self.msg) #if 'The new customer has been added successfully.' in self.msg: # assert True == True # self.logger.info("********* Add customer Test Passed *********") #else: # self.driver.save_screenshot(".\\Screenshots\\" + "test_addCustomer_scr.png") # Screenshot # self.logger.error("********* Add customer Test Failed ************") # assert True==False self.driver.close() self.logger.info("******* Ending Add customer test **********")
class Test_005_SearchCustomerByName: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUserEmail() password = ReadConfig.getPassword() logger = LogGen.loggen() @pytest.mark.regression def test_searchCustomerByName(self, setup): self.logger.info("***** ***** TEST_005 Search Customer By Name ***** *****") self.driver = setup self.driver.get(self.baseURL) self.driver.maximize_window() self.lp = Login(self.driver) self.lp.setUserName(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() self.logger.info("***** Login Successful *****") self.logger.info("***** Starting Search Customer By Name *****") self.adcust = AddCustomer(self.driver) self.adcust.clickOnCustomersMenu() self.adcust.clickOnCustomersMenuItem() searchcust = SearchCustomer(self.driver) searchcust.setFirstName("Victoria") searchcust.setLastName("Terces") searchcust.clickSearch() time.sleep(5) status = searchcust.searchCustomerByName("Victoria Terces") assert status == True self.logger.info("***** ***** TEST_005 Search Customer By Name Finished ***** *****") self.driver.close()
def setup(request): global driver browser_name = request.config.getoption("browser_name") if browser_name == "chrome": driver = webdriver.Chrome(ChromeDriverManager().install()) elif browser_name == "firefox": driver = webdriver.Firefox( executable_path='D:\\PYTHON\\geckodriver.exe') driver.maximize_window() driver.get(ReadConfig.getApplicationURL()) driver.implicitly_wait(10) request.cls.driver = driver yield driver.quit()
class Test_004_SearchcustomerbyEmail: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUserEmail() password = ReadConfig.getPassword() logger = LogGen.loggen() @pytest.mark.regression def test_searchcustomerbyemail(self, setUp): self.logger.info("SearchCustomer") self.driver = setUp self.driver.get(self.baseURL) self.driver.maximize_window() self.lp = LoginPage(self.driver) self.lp.setUserName(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() self.logger.info("Login successful") self.logger.info("Search Customer by Email") self.addcust = AddCustomer(self.driver) self.addcust.clickOnCustomersMenu() self.addcust.clickOnCustomerMenuItem() searchcust = SearchCustomer(self.driver) searchcust.setEmail("*****@*****.**") searchcust.clickSearch() time.sleep(5) status = searchcust.searchCustomerByEmail("*****@*****.**") assert True == status self.logger.info("End of search customer by email test case ") self.driver.close()
class Test_TC002_Login: baseURL = ReadConfig.getApplicationURL() path = ".//testData//LoginData.xlsx" logger = LogGen.loggen() lst_status = [] exp = None @pytest.mark.regression def test_loginPageTitle_ddt(self, setup): self.logger.info( "******* Starting Test Login Page DDT Test **********") self.logger.info( "******* Starting Test 002 DDT LoginPage Title Test **********") self.driver = setup self.driver.maximize_window() self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.rows = ExcelUtils.getRowCount(self.path, 'Sheet1') print('Number of Rows: ', self.rows) for r in range(2, self.rows + 1): self.user = ExcelUtils.readData(self.path, 'Sheet1', r, 1) self.password = ExcelUtils.readData(self.path, 'Sheet1', r, 2) self.status = ExcelUtils.readData(self.path, 'Sheet1', r, 3) self.lp.setUsername(self.user) self.lp.setPassword(self.password) self.lp.clickLogin() time.sleep(5) act_title = self.driver.title if act_title == 'Dashboard / nopCommerce administration': if self.status == 'Pass': self.logger.info("*** Passed ***") self.lp.clickLogout() self.lst_status.append("Pass") elif self.status == 'Fail': self.logger.info("*** Failed ***") self.lp.clickLogout() self.lst_status.append("Fail") elif act_title != 'Dashboard / nopCommerce administration': if self.status == 'Pass': self.logger.info("*** Failed ***") self.lst_status.append("Fail") elif self.status == 'Fail': self.logger.info("*** Passed ***") self.lst_status.append("Pass") if "Fail" not in self.lst_status: self.logger.info("***** Login DDT Passed *****") self.driver.close() assert True else: self.logger.info("***** Login DDT Failed *****") self.driver.close() assert False self.logger.info("******* Ending Test Login Page DDT Test **********") self.logger.info( "******* Completed Test 002 DDT LoginPage Title Test **********")
class Test_001_Login: # Config.ini -> Utilities -> Read common properties # If config info is change, please update in config.ini file baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() logger = LogGen.loggen() @pytest.mark.regression def test_homePageTitle(self, setup): self.logger.info("**************** Test_001_Login ****************") self.logger.info( "**************** Verifying Home Page Title ****************") self.driver = setup self.logger.info("**** Opening URL ****") self.driver.get(self.baseURL) act_title = self.driver.title if act_title == "Your store. Login": self.logger.info( "**************** Home page title test is passed ****************" ) self.driver.close() assert True else: # Fail test case self.logger.error( "**************** Home page title test is failed ****************" ) self.driver.save_screenshot("./Screenshots/test_homePageTitle.png") self.driver.close() assert False @pytest.mark.sanity @pytest.mark.regression def test_login(self, setup): self.logger.info( "**************** Verifying Login Test ****************") self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.lp.setUserName(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() act_title = self.driver.title if act_title == "Dashboard / nopCommerce administration": self.logger.info( "**************** Login test is passed ****************") self.driver.close() assert True else: # Fail test case self.logger.error( "**************** Login test is failed ****************") self.driver.save_screenshot("./Screenshots/test_login.png") self.driver.close() assert False
class TestSearchCustomerByName_005: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() logger = LogGen.loggen() @pytest.mark.regression def test_searchCustomerByName(self, setup): self.logger.info( "*********** TestSearchCustomerByName_005 **************") self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.lp.SetUserName(self.username) self.lp.SetPassword(self.password) self.lp.ClickLogin() self.logger.info("********** Login Successful **********") self.logger.info( "********** Strating Search Customer By Name **********") self.addcust = AddCustomer(self.driver) self.addcust.ClickOnCustomersMenu() self.addcust.ClickOnCustomersMenuItem() self.logger.info("********** Search Customer By Name **********") searchcust = SearchCustomer(self.driver) searchcust.setFirstName("victoria") searchcust.setLastName("Terces") searchcust.ClickSearch() time.sleep(5) status = searchcust.searchCustomerByName("Victoria Terces") assert True == status self.logger.info("********** TC_SearchCustomerByName_005 **********") self.driver.close()
class Test_004_SearchCutomerByEmail: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUserEmail() password = ReadConfig.getUserPassword() logger = LogGen.loggen() @pytest.mark.regression def test_searchcutomerbyemail(self, setup): self.logger.info("********SearchCustomerByEmail_004 Started*********") self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.lp.setUsername(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() time.sleep(3) self.logger.info("************Login Successful***************") self.logger.info("************Start Searching by Email***************") self.addcust = AddCustomer(self.driver) self.addcust.clickOnCustomerMenu() time.sleep(2) self.addcust.clickonCustomerMenuItem() self.logger.info("************Searching customer by Email***************") searchcust = SearchCustomer(self.driver) searchcust.setSearchEmail("*****@*****.**") searchcust.clickSearch() time.sleep(5) status = searchcust.searchCustomerByEmail("*****@*****.**") assert True == status self.logger.info("************TC Search customer by Email Finished***************") self.driver.close()
class Test_002_DDT_Login: baseURL = ReadConfig.getApplicationURL() path = ".//TestData/DDT.xlsx" logger = logGen.loggen() def test_DDT_Login(self, setup): self.logger.info("*************Test_002_DDT_Login**************") self.logger.info("*************test_DDTLogin**************") self.row = XLUtils.getRowCount(self.path, "Sheet1") lst_status = [] for r in range(2, self.row + 1): self.driver = setup self.driver.get(self.baseURL) self.username = 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.login = LoginPage(self.driver) self.login.set_username(self.username) self.login.set_password(self.password) self.login.clickLogin() 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.login.clicklogout() lst_status.append("Pass") elif self.exp == 'Fail': self.logger.info("***************Failed***********") #self.login.clicklogout() lst_status.append("Fail") self.login.clicklogout() elif act_title != exp_title: if self.exp == 'Pass': self.logger.info("*************Failed***********") #self.login.clicklogout() lst_status.append("Fail") elif self.exp == 'Fail': self.logger.info("***************Passed***********") #self.login.clicklogout() lst_status.append("Pass") if "Fail" not in lst_status: self.logger.info("***************Login_DDT_TC_Passed*************") assert True self.driver.close() else: self.logger.info("***************Login_DDT_TC_failed*************") self.driver.close() assert False self.logger.info("***********End of DDT Login*********") self.logger.info( "***********Completed Test_002_DDT_Login***************")
class Test_006_AddManifacturer: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() logger = LogGen.loggen() manufacturer_name = "Khande works private limited" @pytest.mark.sanity def test_add_manufacturer(self, setup): self.logger.info("********** Test_006_AddManifacturer **********") self.driver = setup self.driver.get(self.baseURL) self.logger.info("--- URL Entered Successfully") self.lp = LoginPage(self.driver) self.lp.SetUserName(self.username) self.logger.info("--- user name Entered :" + self.username) self.lp.SetPassword(self.password) self.logger.info("--- password Entered :" + self.password) self.lp.ClickLogin() self.logger.info("--- clicked on login") self.logger.info('********** login successfull **********') self.logger.info("********** Stating Add Manufacturer Test **********") self.addManufacture = ManufacturePage(self.driver) self.addManufacture.click_on_cateloge() self.logger.info("--- clicked on cateloge") self.addManufacture.click_on_manufacture() self.logger.info("--- clicked on manufacturer") self.addManufacture.click_on_add_nuw_button() self.logger.info("--- clicked on Add new button") self.logger.info("********** Entering manufacturer name **********") self.addManufacture.set_name_of_manufacturer(self.manufacturer_name) self.logger.info("--- Manufacturer name Entered :" + self.manufacturer_name) self.addManufacture.click_on_save_button() self.logger.info("--- clicked on save button") self.logger.info("********** saving manufacturer **********") self.logger.info( "********** Add manufacturer validation started **********") self.actual_msg = self.driver.find_element_by_tag_name("body").text self.expected_msg = "The new manufacturer has been added successfully." if self.expected_msg in self.actual_msg: assert True == True self.logger.info( "********** Add manufacturer Test Passed **********") else: self.driver.save_screenshot(".\\Screenshots\\" + "test_addmanufacturer_scr.png") self.logger.error( "********** Add Manufacturer Test Failed **********") assert True == False self.driver.close() self.logger.info( "********** Ending Test_006_AddManifacturer **********")
class Test_SearchCustomerByName_005: baseUrl = ReadConfig.getApplicationURL() username = ReadConfig.getUseremail() password = ReadConfig.getPassword() logger = LogGen.loggen() @pytest.mark.regression def test_searchCustomerByName(self,setup): self.logger.info("*********** Test_005_SearchCustomerByName ***********") self.driver = setup self.driver.get(self.baseUrl) self.driver.maximize_window() self.logger.info("******* Trying to Login *******") self.lp = LoginPage(self.driver) self.lp.setUserName(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() self.logger.info("******* Login Successful *******") self.logger.info("******* Starting Search Customer By Name *******") self.addcust = AddCustomer(self.driver) self.addcust.clickOnCustomerMenu() time.sleep(3) self.addcust.clickOnCustomerMenuItem() time.sleep(2) searchcust = SearchCustomer(self.driver) flag = searchcust.searchElementsVisible() if (flag == True): self.logger.info("******* Search Elements already visible *******") pass else: self.logger.info("******* CLicking on Search Dropdown *******") searchcust.clickDropdownSearch() time.sleep(2) self.logger.info("******* Searching Customer By Name *******") searchcust.setFirstName("James") searchcust.setLastName("Pan") searchcust.clickSearch() time.sleep(3) status = searchcust.searchCustomerByName("James Pan") if status == True: assert True self.logger.info("******* Customer found with the given Name *******") else: assert False == False time.sleep(2) self.driver.save_screenshot("C:\\Users\\Salim\\eclipse-workspace\\nopCommerceApp\\Screenshots\CustomerByName.png") self.logger.info("******* Customer not found with the given Name *******") self.logger.info("******* Ending Test_005_SearchCustomerByName *******") self.driver.close()
class Test_001_Login: baseURL = ReadConfig.getApplicationURL() username = ReadConfig.getUsereamil() password = ReadConfig.getPassword() logger = LogGen.loggen() @pytest.mark.regression def test_homePageTitle(self, setup): self.logger.info( "***************************** Test_001_Login *****************************" ) self.logger.info( "************************** Verifying Home Page Title **********************" ) self.driver = setup self.driver.get(self.baseURL) act_title = self.driver.title if act_title == "Your store. Login": assert True self.driver.close() self.logger.info( "************************** Home page title test is passed **********************" ) else: self.driver.save_screenshot(".\\Screenshots\\" + "test_homePageTitle.png") self.driver.close() self.logger.error( "************************** Home page title test is failed **********************" ) assert False @pytest.mark.sanity @pytest.mark.regression def test_login(self, setup): self.logger.info( "************************** Verifying Login test **********************" ) self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.lp.setUserName(self.username) self.lp.setPassword(self.password) self.lp.clickLogin() act_title = self.driver.title if act_title == "Dashboard / nopCommerce administration": assert True self.logger.info( "************************** Login test is passed **********************" ) self.driver.close() else: self.driver.save_screenshot(".\\Screenshots\\" + "test_login.png") self.driver.close() self.logger.error( "************************** Login test is failed **********************" ) assert False
class Test_002_DDT_Login: baseURL = ReadConfig.getApplicationURL() path = ".//TestData/LoginData.xlsx" logger = LogGen.loggen() @pytest.mark.regression def test_ddt_Login(self, setup): self.logger.info("***********test_ddt_Login***********") self.logger.info("***********Verifying The Login Test***********") self.driver = setup self.driver.get(self.baseURL) self.lp = LoginPage(self.driver) self.rows = XLUtils.getRowCount(self.path, "Sheet1") print("No of Rows in 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.setUsername(self.user) self.lp.setPassword(self.password) self.lp.clickLogin() time.sleep(10) act_title = self.driver.title exp_title = "Dashboard / nopCommerce administration" if act_title == exp_title: if self.exp == "Pass": self.logger.info("************Login Test Passed**********") lst_status.append("Pass") print(lst_status) self.lp.clickLogout() assert True elif self.exp == "Fail": self.logger.info("************Login Test Failed**********") lst_status.append("Fail") print(lst_status) self.lp.clickLogout() assert False elif act_title != exp_title: if self.exp == "Fail": self.logger.info("************Login Test Passed**********") lst_status.append("Pass") print(lst_status) assert True elif self.exp == "Pass": self.logger.info("************Login Test Failed**********") lst_status.append("Fail") print(lst_status) assert False if "Fail" not in lst_status: self.logger.info("*********Login DDT Test Passed*********") self.driver.close() assert True else: self.logger.info("*********Login DDT Test Failed*********") self.driver.close() assert False self.logger.info("**************End of Login Test*****************")