Example #1
0
class TestSearchClass(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,
                     search_id,
                     serach_ele_find,search_ele_find_value,
                     is_with_date,
                     result_table_ele_find,result_table_ele_find_value
                     ):


        #如果有依赖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 = searchinputtapinputtext.searchinputtapinputtext(self.activebrowser,search_id)
        inputtext_list_len = len(inputtext_list)

        #选项框添加内容
        selectoptiontext_list = searchselecttapselectoption.searchselecttapselectoption(self.activebrowser,search_id)
        selectoptiontext_list_long = len(selectoptiontext_list)

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


        #点击查询按钮
        self.activebrowser.findEleAndClick(num,serach_ele_find,search_ele_find_value)

        if is_with_date:   #如果预期是查询到数据,则对数据进行验证

            #验证输入框文本信息
            inputtext_list_len = len(inputtext_list)
            for i in range(0, inputtext_list_len):
                colmun_list = inputtext_list[i][1].split(",")
                self.activebrowser.outPutMyLog("colmun_list:%s" % colmun_list)
                colmun_list_long = len(colmun_list)
                result_check_list = []
                for j in range(0,colmun_list_long):
                    result_check_j = self.activebrowser.findEleAndCheckTableOneColnum(num, result_table_ele_find,
                                                                                result_table_ele_find_value,
                                                                                inputtext_list[i][0],
                                                                                      int(colmun_list[j])-1)
                    result_check_list.append(result_check_j)
                self.activebrowser.outPutMyLog("result_check_list:%s" % result_check_list)
                self.assertIn(True, result_check_list)
                # self.assertTrue(result_check)

            #验证选项框文本信息
            selectoptiontext_list_long = len(selectoptiontext_list)
            for i in range(0, selectoptiontext_list_long):
                result_check = self.activebrowser.findEleAndCheckTableOneColnum(num, result_table_ele_find,
                                                                                result_table_ele_find_value,
                                                                                selectoptiontext_list[i][0],
                                                                                int(selectoptiontext_list[i][1])-1)
                self.assertTrue(result_check)

        else: #否则断言“暂无数据”在页面中
            self.activebrowser.delayTime(10)
            self.assertIn("暂无数据",self.activebrowser.getPageSource())


        if inputtext_list_len == 0 and selectoptiontext_list_long == 0:
            self.activebrowser.getScreenshotAboutMySQL()
            self.activebrowser.outPutErrorMyLog("【异常提示】:本用例为查询测试用例,"
                                                "但没有添加要输入或选择的测试数据,"
                                                "请检查用例测试数据,将测试数据补充完整!")
            self.assertTrue(False)

            

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

    @staticmethod    #根据不同的参数生成测试用例
    def getTestFunc(num,depend_click_case_id,
                    search_id,
                     serach_ele_find,search_ele_find_value,
                     is_with_date,
                     result_table_ele_find,result_table_ele_find_value):

        def func(self):
            self.definenewadd(num,depend_click_case_id,
                     search_id,
                     serach_ele_find,search_ele_find_value,
                     is_with_date,
                     result_table_ele_find,result_table_ele_find_value)
        return func
Example #2
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 #3
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, confirm_ele_find,
                    confirm_ele_find_value, click_confirm_delay_time):

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

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

        #点击登录按钮
        self.activebrowser.findEleAndClickConfigDelayTime(
            num, confirm_ele_find, confirm_ele_find_value,
            click_confirm_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, confirm_ele_find, confirm_ele_find_value,
                    click_confirm_delay_time):
        def func(self):
            self.definelogin(num, login_id, confirm_ele_find,
                             confirm_ele_find_value, click_confirm_delay_time)

        return func