class Test_002_Home: baseURL = ReadConfig.getURL() username = ReadConfig.getUsername() password = ReadConfig.getPassword() logger = LogGenenration.loggen() @pytest.mark.sanity def test_leave(self, setup): self.logger.info("************* Test_002_Home ******************") 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.submit() self.logger.info("*********Login successfull *********") homePage = HomePage(self.driver) homePage.selectLeave() homePage.setFromDate() homePage.selectFromMonth(ReadConfig.getFromMonth()) homePage.selectFromYear(ReadConfig.getFromYear()) homePage.selectFromDate(ReadConfig.getFromDate()) homePage.setToDate() homePage.selectToMonth(ReadConfig.getToMonth()) homePage.selectToYear(ReadConfig.getToYear()) homePage.selectToDate(ReadConfig.getToDate()) homePage.selectRejectedLeaves() homePage.selectUnit(ReadConfig.getUnit()) homePage.search() self.driver.quit()
class Test_SearchCustomerByEmail_004: baseURL = ReadConfig.get_app_url() username = ReadConfig.get_username() password = ReadConfig.get_password() logger = LogGen.log_gen() @pytest.mark.regression def test_search_customer_by_email(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_username(self.username) self.lp.set_password(self.password) self.lp.click_login() self.logger.info("***** Login successful *****") self.logger.info("***** Starting Search Customer By Email *****") self.add_cst = AddCustomer(self.driver) self.add_cst.click_on_customers_menu() self.add_cst.click_on_customers_menu_item() self.logger.info("***** Searching customer by emailID *****") search_cst = SearchCustomer(self.driver) search_cst.set_email("*****@*****.**") search_cst.click_search() time.sleep(5) status = search_cst.search_customer_by_email( "*****@*****.**") self.driver.close() self.logger.info("***** TC_SearchCustomerByEmail_004 Finished *****") assert status is True
class Test_001_login: baseURL = ReadConfig.getURL() username = ReadConfig.getUsername() password = ReadConfig.getPassword() logger = LogGenenration.loggen() @pytest.mark.regression def test_login(self, setup): self.logger.info(".................Test_001_home...........") self.logger.info("..........Verifying login............") self.driver = setup self.driver.get(self.baseURL) loginPage = LoginPage(self.driver) loginPage.setUsername(self.username) loginPage.setPassword(self.password) loginPage.submit() user = loginPage.getUser() print("user is.........." + user) if user == "Welcome haresh": self.logger.info("........Successfully logged in..............") assert True self.driver.close() else: self.driver.save_screenshot(".\\Screenshots\\" + "test_login.png") self.logger.error("............login failed..............") self.driver.close() assert False
class Test_003_AddCustomer: base_url = ReadConfig.get_app_url() username = ReadConfig.get_username() password = ReadConfig.get_password() logger = LogGen.log_gen() @pytest.mark.regression def test_add_customer(self, setup): self.logger.info("***** Test_003_AddCustomer *****") self.driver = setup self.driver.get(self.base_url) self.driver.maximize_window() self.lp = LoginPage(self.driver) self.lp.set_username(self.username) self.lp.set_password(self.password) self.lp.click_login() self.logger.info("***** Login successful *****") self.logger.info("***** Starting Add Customer Test *****") self.add_cust = AddCustomer(self.driver) self.add_cust.click_on_customers_menu() self.add_cust.click_on_customers_menu_item() self.add_cust.click_on_add_new() self.logger.info("***** Providing customer info *****") self.email = random_generator() + "@gmail.com" self.add_cust.set_email(self.email) self.add_cust.set_password("test123") self.add_cust.set_customer_roles("Guests") self.add_cust.set_manager_of_vendor("Vendor 2") self.add_cust.set_gender("Male") self.add_cust.set_first_name("Vlad") self.add_cust.set_last_name("Nire") self.add_cust.set_dob("7/05/1989") # Format: D / MM / YYYY self.add_cust.set_company_name("QA") self.add_cust.set_admin_content("This is for testing.") self.add_cust.click_on_save() 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 'customer has been added successfully.' in self.msg: self.logger.info("***** Add customer Test Passed *****") assert True else: self.driver.save_screenshot(".\\Screenshots\\" + "test_add_customer_scr.png") self.logger.error("***** Add customer Test Failed *****") assert False self.driver.close() self.logger.info("***** Ending Add customer test *****")
class Test_001_Login: baseurl=ReadConfig.getApplicationURL() username=ReadConfig.getuseremailL() password=ReadConfig.getuserpassword() logger=logGen.log_gen() @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_homepageTitle1.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 test_login**********") 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_Login1.png") self.driver.close() self.logger.error("******Login title test is failed*******") assert False self.driver.close()
class Test_001_Login: base_url = ReadConfig.get_app_url() username = ReadConfig.get_username() password = ReadConfig.get_password() logger = LogGen.log_gen() @pytest.mark.sanity @pytest.mark.regression def test_home_page_title(self, setup): self.logger.info("***** Test_001_Login *****") self.logger.info("***** Verifying Home Page Title *****") self.driver = setup self.driver.get(self.base_url) actual_title = self.driver.title if actual_title == "Your store. Login": self.driver.close() self.logger.info("***** Home Page Title Passed *****") assert True else: self.driver.save_screenshot(".\\screenshots\\" + "test_home_page_title.png") self.driver.close() self.logger.error("***** Home Page Title Failed *****") assert False @pytest.mark.sanity @pytest.mark.regression def test_login(self, setup): self.logger.info("***** Test_002_Login *****") self.logger.info("***** Verifying Login *****") self.driver = setup self.driver.get(self.base_url) self.lp = LoginPage(self.driver) self.lp.set_username(self.username) self.lp.set_password(self.password) self.lp.click_login() actual_title = self.driver.title if actual_title == "Dashboard / nopCommerce administration": self.logger.info("***** Login Passed *****") self.driver.close() assert True else: self.driver.save_screenshot(".\\screenshots\\" + "test_login.png") self.logger.error("***** Login Failed *****") self.driver.close() assert False
class Test_001_Login: baseURL = ReadConfig.get_application_url() username = ReadConfig.get_username() password = ReadConfig.get_password() logger = LogGen.loggen() path_to_screenshots = os.path.join('.', 'screenshots') def test_home_page_title(self, setup): self.logger.info("***Test_001_Login***") self.logger.info("***Verifying Home Page Title***") self.driver = setup self.driver.get(self.baseURL) actual_title = self.driver.title if actual_title == "Your store. Login": assert True self.logger.info("*** Home page title test is passed ***") self.driver.close() else: path_to_failed_home_page_title_test = os.path.join(self.path_to_screenshots, 'test_home_page_title_failed.png') self.driver.save_screenshot(path_to_failed_home_page_title_test) self.logger.error("*** Home page title test is failed ***") self.driver.close() assert False 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.set_user_name(self.username) self.lp.set_password(self.password) self.lp.click_login_button() actual_title = self.driver.title if actual_title == "Dashboard / nopCommerce administration": self.logger.info("*** Login test is passed ***") self.driver.close() assert True else: path_to_failed_login_test = os.path.join(self.path_to_screenshots, 'test_login_failed.png') self.driver.save_screenshot(path_to_failed_login_test) self.logger.error("*** Login test is failed ***") self.driver.close() assert False
class Test_002_DTT_Login: base_url = ReadConfig.get_app_url() path = ".\\test_data\\login_data.xlsx" logger = LogGen.log_gen() @pytest.mark.regression def test_login_dtt(self, setup): self.logger.info("***** Test_002_DTT_Login *****") self.logger.info("***** Verifying Login DTT *****") self.driver = setup self.driver.get(self.base_url) self.lp = LoginPage(self.driver) # Get data from excel file self.rows = excel_utils.get_row_count(self.path, 'Sheet1') print(f"Number of rows in Excel: {self.rows}") status_list = [] for r in range(2, self.rows + 1): self.username = excel_utils.read_data(self.path, 'Sheet1', r, 1) self.password = excel_utils.read_data(self.path, 'Sheet1', r, 2) self.expected = excel_utils.read_data(self.path, 'Sheet1', r, 3) self.lp.set_username(self.username) self.lp.set_password(self.password) self.lp.click_login() time.sleep(5) actual_title = self.driver.title exp_title = "Dashboard / nopCommerce administration" if actual_title == exp_title: if self.expected == "Passed": self.logger.info("***** Test Passed *****") status_list.append("Passed") elif self.expected == "Failed": self.logger.info("***** Test Failed *****") status_list.append("Failed") self.lp.click_logout() elif actual_title != exp_title: if self.expected == "Passed": self.logger.info("***** Test Failed *****") status_list.append("Failed") elif self.expected == "Failed": self.logger.info("***** Test Passed *****") status_list.append("Passed") if "Failed" in status_list: self.logger.info("***** Login DTT Failed *****") self.driver.close() assert False else: self.logger.info("***** Login DTT Passed *****") self.driver.close() assert True self.logger.info("***** End of Login DTT Test *****")
class Test_002_DDT_login: baseURL = ReadConfig.getURL() path = ".//TestData/loginCreds.xlsx" logger = LogGenenration.loggen() #logging.basicConfig(filename="automation.log", #format="%(asctime)s: %(levelname)s: %(message)s") @pytest.mark.regression def test_login_ddt(self, setup): logging.info(".................Test_002_DDT_login...........") self.logger.info("..........Verifying login............") self.driver = setup self.driver.get(self.baseURL) loginPage = LoginPage(self.driver) self.rows = ExcelUtils.getRowCount(self.path, 'Sheet1') self.columns = ExcelUtils.getColumnCount(self.path, 'Sheet1') login_status = [] for i in range(2, self.rows + 1): self.user = ExcelUtils.readData(self.path, 'Sheet1', i, 1) self.password = ExcelUtils.readData(self.path, 'Sheet1', i, 2) self.exp = ExcelUtils.readData(self.path, 'Sheet1', i, 3) loginPage.setUsername(self.user) loginPage.setPassword(self.password) loginPage.submit() time.sleep(2) dashboard_url = self.driver.current_url if dashboard_url == "https://opensource-demo.orangehrmlive.com/index.php/dashboard": self.logger.info("........Successfully logged in for user " + self.user) if self.exp == "pass": loginPage.clickLogout() login_status.append("Pass") elif self.exp == "fail": self.logger.info("........Failed logged in for user " + self.user) loginPage.clickLogout() login_status.append("Fail") else: if self.exp == "pass": self.logger.info("........Failed logged in for user " + self.user) login_status.append("Fail") elif self.exp == "fail": self.logger.info("........Failed logged in for user " + self.user + " but tc passed") login_status.append("Pass") if "Fail" not in login_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
class Test_searchcustomerbyEmail__004: baseurl = ReadConfig.getApplicationURL() username = ReadConfig.getuseremailL() password = ReadConfig.getuserpassword() logger = logGen.log_gen() @pytest.mark.regression def test_searchCustomerbyemail(self, setup): self.logger.info("****Test_004_SearchcustomerbyEmail****") self.driver = setup self.driver.get(self.baseurl) self.driver.maximize_window() self.driver.implicitly_wait(10) self.lp = LoginPage(self.driver) self.lp.setUsername(self.username) self.lp.setPassword(self.password) self.lp.clicklogin() self.logger.info("******Staring Search customer by Email") self.Add_cust = Add_customer(self.driver) self.Add_cust.clickcustomermenu() self.Add_cust.clickcustomermenuItem() self.logger.info("******Starting Search customer by Email") searchcust = Searchcustomer(self.driver) searchcust.setEmail("*****@*****.**") searchcust.clicksearch() time.sleep(5) status = searchcust.searchCustomerByEmail("*****@*****.**") assert True == status self.logger.info( "******Starting Search customer by Email Test case is finished") time.sleep(5) self.driver.close()
class Test_searchcustomerbyName__005: baseurl = ReadConfig.getApplicationURL() username = ReadConfig.getuseremailL() password = ReadConfig.getuserpassword() logger = logGen.log_gen() @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.driver.implicitly_wait(10) self.lp = LoginPage(self.driver) self.lp.setUsername(self.username) self.lp.setPassword(self.password) self.lp.clicklogin() self.logger.info("******Staring Search customer by Name") self.Add_cust = Add_customer(self.driver) self.Add_cust.clickcustomermenu() self.Add_cust.clickcustomermenuItem() self.logger.info("******Starting 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( "******Starting Search customer by Name Test case is finished") self.driver.close()
class Test_002_DDT_Login(): baseURL = ReadConfig.getApplicationURL() path = ".//TestData/signup.xlsx" logger = logGen.log_gen() # 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 = xlutills.getRowCount(self.path, 'login') print('Number of rows...', self.rows) lst_status = [] for r in range(2, self.rows + 1): self.user = xlutills.readData(self.path, 'login', r, 1) self.password = xlutills.readData(self.path, 'login', r, 2) self.exp = xlutills.readData(self.path, 'login', 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_001_Search: logger = LogGen.loggen() # TODO сделать логгер в режиме добавления записей logger.info("Test_001_Search") path_to_screenshots = os.path.join('.', 'screenshots') # TODO добавить скриншоты yandex_search_URL = ReadConfig.get_yandex_search_url() def test_check_search_box(self, setup): self.logger.info("Checking if a search field exists") self.driver = setup self.driver.get(self.yandex_search_URL) self.yp = YandexSearchPage(self.driver) try: self.yp.find_search_box() self.logger.info( f"Test passed: Search field found by {self.yp.search_box_locator}" ) time.sleep(2) except TimeoutException: self.logger.error( f"Test failed: Search field not found by {self.yp.search_box_locator} for {self.yp.delay} seconds" ) finally: self.driver.quit() self.logger.info("---------------") def test_suggests_in_search_box(self, setup): self.logger.info("Checking suggests in search field") self.driver = setup self.driver.get(self.yandex_search_URL) self.yp = YandexSearchPage(self.driver) try: self.yp.set_text_to_search_box('Тензор') self.yp.find_suggest_box() self.yp.send_enter_to_search_box() request_results = self.yp.get_request_results() if request_results: self.search_href_in_list_of_links( request_results=request_results, link_to_search=r"https://tensor.ru/", number_results=5) else: self.logger.error( "Test failed: There is no links in result of search") except TimeoutException: # TODO добавить отработку различных ненайденок self.logger.error( f"Test failed: Suggest field not found by {self.yp.suggest_box_locator} for {self.yp.delay} seconds" ) finally: self.driver.quit() self.logger.info("---------------") def search_href_in_list_of_links(self, request_results, link_to_search: str, number_results: int): list_of_links = [] for element in request_results: element_with_link = element.find_element_by_tag_name('a') link = element_with_link.get_attribute("href") list_of_links.append(link) if link_to_search in list_of_links: index = list_of_links.index(link_to_search) + 1 if index <= number_results: self.logger.info( f"Test passed: {link_to_search} find in {index} request position" ) else: self.logger.error( f"Test failed: {link_to_search} find, but in {index} request position" ) else: self.logger.error( f"Test failed: {link_to_search} did not find in request")
class Test_002_Pictures: logger = LogGen.loggen() logger.info("Test_002_Pictures") path_to_screenshots = os.path.join('.', 'screenshots') # TODO добавить скриншоты yandex_search_URL = ReadConfig.get_yandex_search_url() yandex_pictures_URL = ReadConfig.get_yandex_pictures_url() def test_yandex_pictures_section_exist(self, setup): self.logger.info("Checking if a Pictures section exists") self.driver = setup self.driver.get(self.yandex_search_URL) self.yp = YandexSearchPage(self.driver) try: self.yp.find_yandex_pictures_section() self.logger.info( f"Test passed: Pictures section found by {self.yp.pictures_section_locator}" ) except TimeoutException: self.logger.error( f"Test failed: Pictures section not found by {self.yp.pictures_section_locator} for {self.yp.delay} seconds" ) finally: self.driver.quit() self.logger.info("---------------") def test_yandex_pictures_page_exist(self, setup): self.logger.info("Checking yandex pictures page exist") self.driver = setup self.driver.get(self.yandex_search_URL) self.yp = YandexSearchPage(self.driver) try: pictures_section = self.yp.find_yandex_pictures_section() pictures_section.click() self.yp.find_yandex_pictures_title() self.logger.info( f"Test passed: successful transition to the https://yandex.ru/images/" ) except TimeoutException: self.logger.error( f"Test failed: can't find picture title by {self.yp.pictures_title_locator} for {self.yp.delay} seconds" ) assert False finally: self.driver.quit() self.logger.info("---------------") def test_yandex_pictures_first_category(self, setup): self.logger.info("Checking the correctness of image search") self.driver = setup self.driver.get(self.yandex_pictures_URL) self.yp = YandexPicturesPage(self.driver) try: first_popular_request = self.yp.find_first_popular_request() first_popular_request.click() expected_text = first_popular_request.text picture_search_box = self.yp.find_picture_search_box() actual_text = picture_search_box.get_attribute("value") if expected_text == actual_text: self.logger.info( f"Test passed: the text of the first category matches with the search text" ) else: self.logger.error( f"Test failed: the text of the first category does not match the search text" ) except TimeoutException: self.logger.error( f"Test failed: can't find element {self.yp.pictures_title_locator} for {self.yp.delay} seconds" ) assert False finally: self.driver.quit() self.logger.info("---------------")
class Test_002_DDT_Login: baseURL = ReadConfig.get_application_url() path_to_excel_data = os.path.join('.', 'test_data', 'login_data.xlsx') logger = LogGen.loggen() 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.get(self.baseURL) self.lp = LoginPage(self.driver) self.rows = excel_utils.get_row_count(self.path_to_excel_data, 'Лист1') print('Number of Rows i a Excel: ', self.rows) status_list = [] for row in range(2, self.rows + 1): self.user = excel_utils.read_data(self.path_to_excel_data, 'Лист1', row, 1) self.password = excel_utils.read_data(self.path_to_excel_data, 'Лист1', row, 2) self.exp = excel_utils.read_data(self.path_to_excel_data, 'Лист1', row, 3) self.lp.set_user_name(self.user) self.lp.set_password(self.password) self.lp.click_login_button() time.sleep(2) 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.click_logout_button() status_list.append('Pass') elif self.exp == 'Fail': self.logger.error('*** Failed ***') self.lp.click_logout_button() status_list.append('Fail') elif actual_title != expected_title: if self.exp == 'Pass': self.logger.error('*** Failed ***') status_list.append('Fail') elif self.exp == 'Fail': self.logger.info('*** Passed ***') status_list.append('Pass') if 'Fail' not in status_list: self.logger.info('*** Login DDT test is passed ***') self.driver.close() assert True else: self.logger.error('*** Login DDT test is failed ***') self.driver.close() assert False self.logger.info('*** End of Login DDT Test ***') self.logger.info('\n')
class Test_003_AddCustomer: baseurl = ReadConfig.getApplicationURL() usernamew = ReadConfig.getuseremailL() passord = ReadConfig.getuserpassword() logger = logGen.log_gen() @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.driver.implicitly_wait(10) self.lp = LoginPage(self.driver) self.lp.setUsername(self.usernamew) self.lp.setPassword(self.passord) self.lp.clicklogin() self.addcust = Add_customer(self.driver) self.addcust.clickcustomermenu() self.addcust.clickcustomermenuItem() self.addcust.Add_new() self.email = random_generator( ) + "@gmail.com" ##creating a random data,the method has given below self.addcust.setEmail(self.email) self.addcust.setPassword('12345') self.firstname = random_generator() self.addcust.setFirstname(self.firstname) # self.addcust.setFirstname('rohit') self.addcust.setLastname('shelke') self.addcust.setDOB("2/05/1995") self.addcust.setGender("Male") self.addcust.setCompanyName("cattleya") self.addcust.setAdmincontent("gshvghs") #self.addcust.setDropdownVendor('Vendor 2') self.addcust.clickbtnsave() self.logger.info("******Add customer validaion started*****") ##below method it will capture everything on the page and it will convert it into text and will save it in variable self.msg 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: ##checking "The new customer has been added successfully" this line is present in variable called self .msg assert True == True print("Add custmeter test is passed") self.logger.info("Add custmeter test is passed") else: self.driver.save_screenshot(".\\Screenshots\\" + "test_addcustomer_sc2.png") self.logger.info("Add custmeter test is failed") assert True == False self.driver.close() self.logger.info("****end of test_add_customer test case")