Esempio n. 1
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()
Esempio n. 2
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)
Esempio n. 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 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):

        #如果有依赖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)

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

            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)
        else:
            #否则点击确定按钮
            self.activebrowser.findEleAndClickWithAlert(
                num, confirm_ele_find, confirm_ele_find_value)
            print("已经点击确定按钮")

            if not is_submit_success:  #如果不是添加成功,需要验证某些文本信息
                asserttest_list_all = asserttiptext.assertiptext(
                    self.activebrowser, addnew_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])
            else:
                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.assertTrue(reault_check)

    # 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):
        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)

        return func
Esempio n. 4
0
#     loginaccount = gc.TEST_LOGIN_ACCOUNT
#     loginpassword = gc.TEST_LOGIN_PASSWORD
#
# activebroser.getUrl(loginurl)
# 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)
# lpf.login(activebroser)

driver = activebroser.driver
Url = "http://111.207.18.22:22044/#/login"
activebroser.getUrl(Url)
time.sleep(20)
loginbutton = "/html/body/div/div/div[3]/div[1]/div/form/div[4]/div/button/span"
activebroser.findEleAndClick(0, "xpath", loginbutton)
# time.sleep(3)

Url = activebroser.driver.current_url
print(Url)

#
# 调用浏览器打开一个新窗口
# driver.execute_script("window.open('','_blank');")
# # 窗口定位到新打开的窗口
# driver.switch_to.window(driver.window_handles[-1])
driver.get(Url)
ld = LoadTimesDefineClass()
Esempio n. 5
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
Esempio n. 6
0
class TestClickAndBackClass(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(indexpage.pageurl)
        pass

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

    def definedepend(self, dependid):
        clickandbackdepend.clickandbackdepend(self.activebrowser, dependid)
        # self.activebrowser.outPutMyLog("依赖ID(dependid)为:%s" % dependid)
        # if dependid != None:
        #     self.activebrowser.outPutMyLog("执行依赖")
        #     from testdatas.models import ClickAndBack
        #     clickandbacktestcases = ClickAndBack.objects.filter(id=int(dependid))
        #     print("clickandbacktestcases:%s" % clickandbacktestcases)
        #     if str(clickandbacktestcases) != "<QuerySet []>":
        #         self.activebrowser.outPutMyLog("找到依赖数据")
        #         for clickandbacktestcase in  clickandbacktestcases:
        #             depend = clickandbacktestcase.depend_case_id
        #             self.activebrowser.outPutMyLog("depend:%s" % depend)
        #             if depend != None:
        #                 self.activebrowser.outPutMyLog("进入下一层依赖")
        #                 self.definedepend(depend)
        #
        #             self.activebrowser.outPutMyLog("执行的caseid:%s" % clickandbacktestcase.id)
        #             self.activebrowser.findEleAndClick("%s_%s"%(clickandbacktestcase.id,
        #                                                         clickandbacktestcase.case_counts),
        #                                                clickandbacktestcase.current_page_click_ele_find,
        #                                                clickandbacktestcase.current_page_click_ele_find_value)
        #             is_new = clickandbacktestcase.is_new
        #             if is_new:
        #                 self.activebrowser.switchNewWindows()
        #
        #     else:
        #         self.activebrowser.outPutErrorMyLog("没有找到依赖id[%s]对应的数据!" % dependid)
        # else:
        #     self.activebrowser.outPutMyLog("依赖ID为None,不执行依赖!")

    #定义点击返回函数
    def defineclickandback(self, num, case_counts, depend_case_id,
                           current_page_click_ele_find,
                           current_page_click_ele_find_value, is_new,
                           next_page_check_ele_find,
                           next_page_check_ele_find_value):

        #如果弹出广告弹框,关闭弹框
        if avderpagefunction.isExist_x(self.activebrowser, avderpage.x_xpath):
            self.activebrowser.findElementByXpathAndClick(avderpage.x_xpath)

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

        self.activebrowser.outPutMyLog("开始正式执行测试用例")
        #点击当前页面元素
        self.activebrowser.findEleAndClick(num, current_page_click_ele_find,
                                           current_page_click_ele_find_value)

        #验证出现预期元素
        #如果出现新窗口,切换到新窗口
        if is_new:
            self.activebrowser.switchNewWindows()
        self.activebrowser.findEleImageNum(num, next_page_check_ele_find,
                                           next_page_check_ele_find_value)

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

    @staticmethod  #根据不同的参数生成测试用例
    def getTestFunc(num, case_counts, depend_case_id,
                    current_page_click_ele_find,
                    current_page_click_ele_find_value, is_new,
                    next_page_check_ele_find, next_page_check_ele_find_value):
        def func(self):
            self.defineclickandback(num, case_counts, depend_case_id,
                                    current_page_click_ele_find,
                                    current_page_click_ele_find_value, is_new,
                                    next_page_check_ele_find,
                                    next_page_check_ele_find_value)

        return func