class Test_003_AddCustomer:
    baseURL = ReadConfig.getApplicationURL()
    username = ReadConfig.getUserName()
    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 = Login(self.driver)
        self.lp.set_UserName(self.username)
        self.lp.set_Password(self.password)
        self.lp.click_Login()
        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.setFirstName("Nitesh")
        self.addcust.setLastName("Kumar")
        self.addcust.setGender("Male")
        self.addcust.setDob("7/05/1985")  # Format: D / MM / YYY
        self.addcust.setCompanyName("busyQA")
        self.addcust.setCustomerRoles("Guests")
        self.addcust.setManagerOfVendor("Vendor 2")
        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 '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 Test_003_AddCustomer Test **********")
示例#2
0
class Test_001_Login:
    baseurl = ReadConfig.getApplicationURL()
    username = ReadConfig.getUserName()
    password = ReadConfig.getPassword()

    logger = LogGen.loggen()

    @pytest.mark.regression
    def test_homePageTitle(self,setup):
        self.logger.info('*********************** Start of test_homePageTitle ***********************')
        self.driver = setup
        self.driver.get(self.baseurl)
        act_title = self.driver.title
        print("Actual Title: ",act_title)
        if act_title == "Your store. Login":
            assert True
            self.driver.close()
        else:
            self.logger.error(
                '*********************** Title verification has failed in test_homePageTitle ***********************')
            self.driver.save_screenshot(".\\Screenshots\\"+"test_homePageTitle_" +
                                        datetime.now().strftime("%d-%m-%y_%H-%M-%S") + ".png")
            self.driver.close()
            self.logger.info(
                '*********************** test_homePageTitle Needs debugging as it has failed***********************')
            assert False
        self.logger.info('***********************End of test_homePageTitle ***********************')

    @pytest.mark.regression
    @pytest.mark.sanity
    def test_Login(self,setup):
        self.logger.info('*********************** Start of test_Login ***********************')
        self.driver = setup
        self.driver.get(self.baseurl)
        self.lp = Login(self.driver)
        self.lp.set_UserName(self.username)
        self.lp.set_Password(self.password)
        self.lp.click_Login()
        act_title = self.driver.title
        if act_title == "Dashboard / nopCommerce administration":
            assert True
            self.driver.close()
        else:
            self.logger.error(
                '*********************** Title verification has failed in test_Login ***********************')
            self.driver.save_screenshot(".\\Screenshots\\" + "test_Login_" +
                                        datetime.now().strftime("%d-%m-%y_%H-%M-%S") + ".png")
            self.driver.close()
            self.logger.info(
                '*********************** test_Login Needs debugging as it has failed***********************')
            assert False
        self.logger.info('***********************End of test_Login ***********************')
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 = Login(self.driver)
        self.lp.set_UserName(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.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(
            "*****@*****.**")
        assert True == status
        self.logger.info(
            "***************  TC_SearchCustomerByEmail_004 Finished  *********** "
        )
        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(
            '*********************** Test_002_DDT_Login ***********************'
        )
        self.logger.info(
            '*********************** Verifying Login DDT 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 :", self.rows)

        lst_status = []  #empty list variable

        self.logger.info("******* Reading data from excel **********")
        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.set_UserName(self.user)
            self.lp.set_Password(self.password)
            self.lp.click_Login()
            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****")
                    self.lp.click_Logout()
                    lst_status.append("Fail")
                elif self.exp == "Fail":
                    self.logger.info("****Passed****")
                    # self.lp.click_Logout()
                    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 Test_002_DDT_Login ***********************'
        )
        self.logger.info(
            '*********************** Completed Test_002_DDT_Login ***********************'
        )