Example #1
0
    def login(self,activebroser):
        activebroser = ActiveBrowser()
        # activebroser = activebroser
        if gc.ISONLINE:
            loginurl = gc.ONLINE_WEB_YUMING
            loginaccount = gc.ONLINE_LOGIN_ACCOUNT
            loginpassword = gc.ONLINE_LOGIN_PASSWORD
        else:
            loginurl = gc.TEST_WEB_YUMING
            loginaccount = gc.TEST_LOGIN_ACCOUNT
            loginpassword = gc.TEST_LOGIN_PASSWORD

        #加载登录页面
        activebroser.getUrl(loginurl)
        #s输入账号
        activebroser.findEleAndInputNum(0,"xpath",loginpage.login_account_input_xpath,loginaccount)
        #输入密码
        activebroser.findEleAndInputNum(0,"xpath",loginpage.login_password_input_xpath,loginpassword)
        # # code = activebroser.getcodetext(loginpage.login_code_xpath)
        # code = activebroser.getCodeTextByThreeInterfase(loginpage.login_code_xpath)
        # print("code:%s" %code)
        # activebroser.findEleAndInputNum(0, "xpath",loginpage.login_code_input_xpath,code)
        #点击登录按钮
        activebroser.findEleAndClick(0,"xpath",loginpage.login_button_xpath)
        #写入cookies
        activebroser.writerCookieToJson(gc.COOKIE_FILE_NAME)
Example #2
0
    def login(self):
        activebroser = ActiveBrowser()
        # activebroser = activebroser
        if gc.ISONLINE:
            loginurl = gc.ONLINE_WEB_YUMING
            loginaccount = gc.ONLINE_LOGIN_ACCOUNT
            loginpassword = gc.ONLINE_LOGIN_PASSWORD
        else:
            loginurl = gc.TEST_WEB_YUMING
            loginaccount = gc.TEST_LOGIN_ACCOUNT
            loginpassword = gc.TEST_LOGIN_PASSWORD

        activebroser.getUrl(loginurl)
        # activebroser.delayTime(30000)
        activebroser.findEleAndInputNum(0,"xpath",loginpage.login_account_input_xpath,loginaccount)
        activebroser.findEleAndInputNum(0,"xpath",loginpage.login_password_input_xpath,loginpassword)
        # code = activebroser.getcodetext(loginpage.login_code_xpath)
        code = activebroser.getCodeTextByThreeInterfase(loginpage.login_code_xpath)
        print("code:%s" %code)
        code = code.lower()   #转为小写
        print("code:%s" %code)
        activebroser.findEleAndInputNum(0, "xpath",loginpage.login_code_input_xpath,code)
        activebroser.findEleAndClick(0,"xpath",loginpage.login_button_xpath)
        activebroser.delayTime(5)
        if not self.isExistLoginButton(activebroser):   #如果登录按钮不存在,则进行cookies写入文件
            activebroser.writerCookieToJson(gc.COOKIE_FILE_NAME)
            activebroser.closeBrowse()
        else:
            activebroser.closeBrowse()
            self.login()
Example #3
0
class TestNewAddClass(unittest.TestCase):  # 创建测试类
    @classmethod  # 类方法,只执行一次,但必须要加注解@classmethod,且名字固定为setUpClass
    def setUpClass(cls):
        # cls.activeweb = ActiveBrowser()  # 实例化
        # cls.loginurl = LoginPage().pageurl
        # cls.activeweb.getUrl(indexpage.pageurl)  # 打开网址
        # cls.activeweb.findElementByXpathAndInput(LoginPage().account,AGENT_LOGIN_ACCOUNT)
        # cls.activeweb.findElementByXpathAndInput(LoginPage().password,AGENT_LOGIN_PASSWORD)
        # cls.activeweb.findElementByXpathAndClick(LoginPage().loginbutton)
        # cls.activeweb.delayTime(3)
        # cls.testpage = DetailsPage()
        # cls.testpageurl =cls.testpage.pageurl   #测试页面url
        # cls.activeweb.getUrl(cls.testpageurl)
        # cls.activeweb.delayTime(3)
        pass

    @classmethod  # 类方法,只执行一次,但必须要加注解@classmethod,且名字固定为tearDownClass
    def tearDownClass(cls):
        # cls.activeweb.closeBrowse()
        pass

    def setUp(self):  # 每条用例执行测试之前都要执行此方法
        self.activebrowser = ActiveBrowser()  # 实例化
        # lpf.login(self.activebrowser)
        lpf.loginwithcookiesauto(self.activebrowser)
        pass

    def tearDown(self):  # 每条用例执行测试之后都要执行此方法
        self.activebrowser.closeBrowse()
        pass

    def definedepend(self, dependid):
        clickandbackdepend.clickandbackdepend(self.activebrowser, dependid)

    #定义新增函数
    def definenewadd(self, num, depend_click_case_id, is_cancel, addnew_id,
                     confirm_ele_find, confirm_ele_find_value, cancel_ele_find,
                     cancel_ele_find_value, is_submit_success, is_signel_page,
                     page_number_xpath, result_table_ele_find,
                     result_table_ele_find_value, table_colnum_counts,
                     MN_devices_number):

        #如果有依赖ID,则执行依赖函数,达到执行当前用例的前提条件
        if depend_click_case_id != None:
            print("depend_click_case_id:%s" % depend_click_case_id)
            self.definedepend(depend_click_case_id)
            self.activebrowser.outPutMyLog("依赖函数执行完毕!!!")

        self.activebrowser.outPutMyLog("开始正式执行测试用例")

        #文本输入框添加内容
        inputtext_list = inputtapinputtext.inputtapinputtext(
            self.activebrowser, addnew_id)

        #文件输入框添加内容
        inputtapinputfile.inputtapinputfile(self.activebrowser, addnew_id)

        #选项框添加内容
        selecttapselectoption.selecttapselectoption(self.activebrowser,
                                                    addnew_id)

        #单选项与复选项添加内容
        radioandreelectionlabel.radioandreelectionlabel(
            self.activebrowser, addnew_id)

        #日期添加内容
        inputtapinputdatetime.inputtapinputdatetime(self.activebrowser,
                                                    addnew_id)

        #MN重新填写
        self.activebrowser.findEleAndInputNum(
            0, "xpath",
            "/html/body/div[1]/div/div/div[2]/div/div[1]/div[2]/div[2]/div[2]/div/div[2]/div/form/div[5]/div/div[1]/input",
            MN_devices_number)

        #判断是否点击取消按钮
        if is_cancel:
            #如果点击取消按钮,则点击取消按钮
            self.activebrowser.findEleAndClick(num, cancel_ele_find,
                                               cancel_ele_find_value)
            self.activebrowser.outPutMyLog("点击【取消】按钮")

            if is_signel_page:
                self.activebrowser.outPutMyLog("页面不需要分页")
            else:
                son_ele_s = self.activebrowser.getFatherSonElesList(
                    "xpath", page_number_xpath, "tag_name", "li")
                son_count = len(son_ele_s)
                son_last_xpath = "%s/%s[%s]" % (page_number_xpath, "li",
                                                son_count)
                self.activebrowser.findEleAndClick(num, "xpath",
                                                   son_last_xpath)

            inputtext_list_len = len(inputtext_list)
            for i in range(0, inputtext_list_len):
                reault_check = self.activebrowser. \
                    findEleAndCheckTableWithColnumCounts(num, result_table_ele_find,
                                                         result_table_ele_find_value, inputtext_list[i],
                                                         table_colnum_counts)
                self.assertFalse(reault_check)

            asserttest_list_all = asserttiptext.assertiptext(
                self.activebrowser, addnew_id)
            asserttest_list_all_long = len(asserttest_list_all)
            if asserttest_list_all_long == 0 and inputtext_list_len == 0:
                self.activebrowser.outPutErrorMyLog("【异常提示】:本用例为验证点击取消按钮的用例,"
                                                    "但没有添加要输入的测试数据或者验证文本信息,"
                                                    "请检查用例测试数据,将测试数据补充完整!")
                self.assertTrue(False)

        else:
            #否则点击确定按钮
            self.activebrowser.findEleAndClick(num, confirm_ele_find,
                                               confirm_ele_find_value)
            self.activebrowser.outPutMyLog("点击【确定】按钮")

            if not is_submit_success:  #如果不是添加成功,需要验证某些文本信息
                self.activebrowser.outPutMyLog("提交不成功时的提示信息验证")
                asserttest_list_all = asserttiptext.assertiptext(
                    self.activebrowser, addnew_id)
                asserttest_list_all_long = len(asserttest_list_all)
                if asserttest_list_all_long != 0:
                    for i in range(0, asserttest_list_all_long):
                        self.assertEqual(asserttest_list_all[i][0],
                                         asserttest_list_all[i][1])
                else:
                    self.activebrowser.outPutErrorMyLog("【异常提示】:本用例为验证提示信息用例,"
                                                        "但是却没有添加相应的提示信息测试数据"
                                                        "请检查用例测试数据,将测试数据补充完整!")
                    self.assertTrue(False)
            else:
                self.activebrowser.outPutMyLog("添加成功后的添加数据的验证")
                if is_signel_page:
                    self.activebrowser.outPutMyLog("页面不需要分页")
                else:
                    son_ele_s = self.activebrowser.getFatherSonElesList(
                        "xpath", page_number_xpath, "tag_name", "li")
                    son_count = len(son_ele_s)
                    son_last_xpath = "%s/%s[%s]" % (page_number_xpath, "li",
                                                    son_count)
                    self.activebrowser.findEleAndClick(num, "xpath",
                                                       son_last_xpath)

                #验证输入的设备号在列表中
                reault_check = self.activebrowser. \
                    findEleAndCheckTableWithColnumCounts(num, result_table_ele_find,
                                                         result_table_ele_find_value, MN_devices_number,
                                                         table_colnum_counts)
                self.assertTrue(reault_check)

                # inputtext_list_len = len(inputtext_list)
                # if inputtext_list_len != 0:
                #     for i in range(0,inputtext_list_len):
                #         reault_check = self.activebrowser.\
                #             findEleAndCheckTableWithColnumCounts(num,result_table_ele_find,
                #                                                  result_table_ele_find_value,inputtext_list[i],
                #                                                  table_colnum_counts)
                #         self.assertTrue(reault_check)
                # else:
                #     self.activebrowser.outPutErrorMyLog("【异常提示】:本用例为验证添加成功后,"
                #                                         "是否存在添加的数据,但实际没有添加要输入的测试数据"
                #                                         "请检查用例测试数据,将测试数据补充完整!")
                #     self.assertTrue(False)

    # def test001(self):
    #     print("第一条测试用例")
    #     self.definedepend(self.dependid)

    @staticmethod  #根据不同的参数生成测试用例
    def getTestFunc(num, depend_click_case_id, is_cancel, addnew_id,
                    confirm_ele_find, confirm_ele_find_value, cancel_ele_find,
                    cancel_ele_find_value, is_submit_success, is_signel_page,
                    page_number_xpath, result_table_ele_find,
                    result_table_ele_find_value, table_colnum_counts,
                    MN_devices_number):
        def func(self):
            self.definenewadd(num, depend_click_case_id, is_cancel, addnew_id,
                              confirm_ele_find, confirm_ele_find_value,
                              cancel_ele_find, cancel_ele_find_value,
                              is_submit_success, is_signel_page,
                              page_number_xpath, result_table_ele_find,
                              result_table_ele_find_value, table_colnum_counts,
                              MN_devices_number)

        return func
Example #4
0
class TestLoginClass(unittest.TestCase):  # 创建测试类
    @classmethod  # 类方法,只执行一次,但必须要加注解@classmethod,且名字固定为setUpClass
    def setUpClass(cls):
        # cls.activeweb = ActiveBrowser()  # 实例化
        # cls.loginurl = LoginPage().pageurl
        # cls.activeweb.getUrl(indexpage.pageurl)  # 打开网址
        # cls.activeweb.findElementByXpathAndInput(LoginPage().account,AGENT_LOGIN_ACCOUNT)
        # cls.activeweb.findElementByXpathAndInput(LoginPage().password,AGENT_LOGIN_PASSWORD)
        # cls.activeweb.findElementByXpathAndClick(LoginPage().loginbutton)
        # cls.activeweb.delayTime(3)
        # cls.testpage = DetailsPage()
        # cls.testpageurl =cls.testpage.pageurl   #测试页面url
        # cls.activeweb.getUrl(cls.testpageurl)
        # cls.activeweb.delayTime(3)
        pass

    @classmethod  # 类方法,只执行一次,但必须要加注解@classmethod,且名字固定为tearDownClass
    def tearDownClass(cls):
        # cls.activeweb.closeBrowse()
        pass

    def setUp(self):  # 每条用例执行测试之前都要执行此方法
        self.activebrowser = ActiveBrowser()  # 实例化
        # self.activebrowser.getUrl(gc.TEST_WEB_YUMING)
        # lpf.login(self.activebrowser)
        pass

    def tearDown(self):  # 每条用例执行测试之后都要执行此方法
        self.activebrowser.closeBrowse()
        pass

    def definedepend(self, dependid):
        clickandbackdepend.clickandbackdepend(self.activebrowser, dependid)

    #定义新增函数
    def definelogin(self, num, login_id, login_url, is_auto_input_code,
                    code_image_xpath, code_type, code_input_ele_find,
                    code_input_ele_find_value, login_button_ele_find,
                    login_button_ele_find_value,
                    click_login_button_delay_time):

        self.activebrowser.outPutMyLog("开始正式执行测试用例")
        #加载登录网址
        self.activebrowser.getUrl(login_url)

        #文本输入框添加内容
        inputtext_list = inputtapinputtext.inputtapinputtext(
            self.activebrowser, login_id)

        #自动输入验证码
        if is_auto_input_code:
            if code_image_xpath != "" and code_type != "":
                print("code_image_xpath:[%s]" % code_image_xpath)
                code = self.activebrowser.getCodeTextByThreeInterfaseWithCodeType(
                    code_image_xpath, code_type)
                self.activebrowser.findEleAndInputNum(
                    num, code_input_ele_find, code_input_ele_find_value, code)

        #点击登录按钮
        self.activebrowser.findEleAndClickConfigDelayTime(
            num, login_button_ele_find, login_button_ele_find_value,
            click_login_button_delay_time)
        self.activebrowser.getPageSource()
        print("已经点击确定按钮")
        # self.activebrowser.delayTime(30000)

        #验证验证文本信息
        asserttest_list_all = asserttiptext.assertiptext(
            self.activebrowser, login_id)
        asserttest_list_all_long = len(asserttest_list_all)
        for i in range(0, asserttest_list_all_long):
            self.assertTrue(asserttest_list_all[i][0],
                            asserttest_list_all[i][1])

        if asserttest_list_all_long == 0:
            self.activebrowser.outPutErrorMyLog("【异常提示】:本用例为验证点击登录按钮后的提示信息,"
                                                "但没有添加要验证的提示信息,"
                                                "请检查用例测试数据,将测试数据补充完整!")
            self.assertTrue(False)

    # def test001(self):
    #     print("第一条测试用例")
    #     self.definedepend(self.dependid)

    @staticmethod  #根据不同的参数生成测试用例
    def getTestFunc(num, login_id, login_url, is_auto_input_code,
                    code_image_xpath, code_type, code_input_ele_find,
                    code_input_ele_find_value, login_button_ele_find,
                    login_button_ele_find_value,
                    click_login_button_delay_time):
        def func(self):
            self.definelogin(num, login_id, login_url, is_auto_input_code,
                             code_image_xpath, code_type, code_input_ele_find,
                             code_input_ele_find_value, login_button_ele_find,
                             login_button_ele_find_value,
                             click_login_button_delay_time)

        return func