Exemple #1
0
    def test_001_configbackup(self):
        u'''配置备份'''
        # 配置备份(因为chrome配置导出提示'损害计算机'问题,这里使用Firefox导出配置文件)
        # 先删除tmp路径中的xml文件
        call_Firefox.del_config_xml(self)

        # 添加一个当天的时间计划配置 后面用于验证配置导出正确()
        call_Firefox.Firefox_login_web(self)
        self.driver.implicitly_wait(10)
        timePlan = timePlanPage(self.driver, self.url)
        timePlan.click_sysObj()
        time.sleep(0.5)
        timePlan.click_timePlan()
        time.sleep(1)
        # 操作删除 以访已有规则
        timePlan.click_selall()
        time.sleep(0.2)
        timePlan.click_delall()
        time.sleep(1)
        try:
            self.driver.implicitly_wait(2)
            timePlan.find_ok()
        except NoSuchElementException:
            try:
                timePlan.find_tipsshowin()
                time.sleep(1)
            except NoSuchElementException:
                pass
        else:
            time.sleep(1)
            print('时间计划列表已删除')
        # 创建时间计划 新增时间计划的名称 命令为当前年月
        today = str(datetime.date.today())[:-3]  # 获取当前年月(以访测试过程正好隔天,仅取年份月份)
        timePlan.click_add()
        time.sleep(1)
        timePlan.input_TimeRangeName(today)
        timePlan.click_save()
        time.sleep(1)
        # 断言 开启提示信息是否有误
        list_name = str(timePlan.getText_byXpath(timePlan.listName))
        time.sleep(1)
        self.assertEqual(list_name, today, msg='时间段名 与配置的不一致')
        print('时间计划已添加')

        # 开始进行配置备份
        #进入系统配置-系统维护-配置管理
        config = MaintenancePage(self.driver, self.url)
        config.click_sysConfig()
        time.sleep(0.5)
        config.click_Maintenance()
        time.sleep(1)
        config.click_configuration()
        time.sleep(1)
        config.click_output()
        time.sleep(2)
        self.driver.quit()
        logger.info('test_001_configbackup passed')
Exemple #2
0
 def test_002_update(self):
     u'''固件升级'''
     UpgradeA = getAssertText('UpgradeA')
     SelectFileA = getAssertText('SelectFileA')
     software = MaintenancePage(self.driver, self.url)
     handOnChange = str(software.getText_byID(software.handOnChange1))
     update = str(software.getText_byID(software.update1))
     self.assertEqual(handOnChange, SelectFileA, msg='选择文件 按钮有误')
     self.assertEqual(update, UpgradeA, msg='升级 按钮有误')
     self.driver.quit()
     logger.info('test_002_update passed')
Exemple #3
0
 def test_008_license(self):
     u'''电子授权(某些型号可能不支持)'''
     dayA = getAssertText('dayA')
     day2A = getAssertText('day2A')
     SelectFileA = getAssertText('SelectFileA')
     ImportA = getAssertText('ImportA')
     licenseP = getParameter('licenseP')
     Support = getExcelValue(licenseP)
     maintenance = MaintenancePage(self.driver, self.url)
     time.sleep(1)
     if Support == '√':
         try:
             self.driver.implicitly_wait(2)
             maintenance.click_license()
             time.sleep(1)
         except NoSuchElementException:
             CapPic(self.driver)
             logger.info(u'软件不支持电子授权,与参数表不相符')
             raise Exception('软件不支持电子授权,与参数表不相符')
         else:
             try:
                 days1 = maintenance.getText_byXpath(maintenance.days1)
                 self.assertIn(day2A, days1, msg='剩余时间 显示不为永久 ')
             except AssertionError:
                 try:
                     days = maintenance.getText_byXpath(maintenance.days2)
                     self.assertIn(dayA, days, msg='剩余时间 显示不为 天数')
                 except AssertionError:
                     raise Exception('剩余时间不显示')
             chooseFile = str(
                 maintenance.getText_byID(maintenance.chooseFile1))
             innerput = str(maintenance.getText_byID(maintenance.innerput1))
             self.assertEqual(chooseFile, SelectFileA, msg='选择文件 按钮有误')
             self.assertEqual(innerput, ImportA, msg='导入 按钮有误')
     elif Support == '×' or '--':
         try:
             self.driver.implicitly_wait(2)
             maintenance.click_license()
         except NoSuchElementException:
             logger.info('软件不支持电子授权,与参数表相符')
         else:
             CapPic(self.driver)
             logger.info(u'软件支持电子授权,与参数表不符')
             raise Exception(u'软件支持电子授权,与参数表不符')
     else:
         logger.info(u'参数表读取异常')
         logger.info(u'参数表读取值为:', Support)
         raise Exception(u'参数表读取异常')
     self.driver.quit()
     logger.info('test_008_license passed')
    def test_reboot1(self):
        u'''重启 - 页面上方'''
        WillReboottips = getAssertText('WillReboottips')

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        reboot = MaintenancePage(self.driver, self.url)
        reboot.click_headerReboot()
        time.sleep(0.5)
        reboot.click_ok()
        time.sleep(2)
        tips = str(reboot.getText_byClass(reboot.u_tim_str))
        self.assertEqual(tips, WillReboottips, msg='点击页面上方重启 操作失败')
        #设备重启时间不一致,做个判断
        time.sleep(30)
        i = 0
        while i < 20:
            now_url = str(self.driver.current_url)
            # print(now_url,i)
            if '/noAuth/login.html' not in now_url:  # 如果不同
                time.sleep(5)
            else:
                break
            i += 1
        else:
            raise Exception('设备重启未正常启动')

        self.driver.quit()

        #待重启后验证 登录是否正常
        login.loginWeb(self)  #admin账号登录
        time.sleep(1)
        self.driver.quit()
        logger.info('test_reboot1 passed')
Exemple #5
0
    def test_errorSoftware(self):
        u'''软件升级 - 验证错误型号'''
        errversion = getweb('errversion')
        updataWarnTips = getAssertText('updataWarnTips')

        errSoftware = (str(tmppath) + str(errversion) + '.bin')
        # 更新一个错误型号 验证无法升级 及提示信息
        software = MaintenancePage(self.driver, self.url)
        #选择文件上传
        self.driver.find_element_by_name('updatesoftware').send_keys(
            errSoftware)
        # software.input_updatesoftware(errSoftware) #定位不到
        time.sleep(1)
        software.click_update()
        time.sleep(1)
        software.click_ok()
        time.sleep(2)
        # 断言提示信息内容正确:代表该项正常
        pageTip = software.getText_byClass(software.pageTip_warn)
        if pageTip != updataWarnTips:
            CapPic(self.driver)
            logger.info(u"升级错误型号 提示信息异常")
            raise Exception('升级错误型号 提示信息异常')
        else:
            print('更新 错误型号版本 验证通过')
        self.driver.quit()
Exemple #6
0
 def test_003_AppLibrary(self):
     u'''应用特征库升级'''
     AppUpgradeP = getParameter('AppUpgradeP')
     Support = getExcelValue(AppUpgradeP)
     policyVerA = getAssertText('policyVerA')
     priorityTempA = getAssertText('priorityTempA')
     versionsA = getAssertText('versionsA')
     policylib = MaintenancePage(self.driver, self.url)
     if Support == '√':
         logger.info(u'参数支持应用特征库升级')
         try:
             self.driver.implicitly_wait(2)
             policylib.click_policylib()
         except NoSuchElementException:
             CapPic(self.driver)
             logger.info(u'不支持应用特征库升级,与参数表不相符')
             raise Exception('不支持应用特征库升级,与参数表不相符')
         else:
             time.sleep(1)
             self.driver.implicitly_wait(10)
             policyVer1 = str(
                 policylib.getText_byXpath(policylib.policyVer1))
             priorityTemp1 = str(
                 policylib.getText_byXpath(policylib.priorityTemp1))
             versions1 = str(policylib.getText_byXpath(policylib.versions1))
             self.assertEqual(policyVer1, policyVerA, msg='应用策略库版本 按钮有误')
             self.assertEqual(priorityTemp1,
                              priorityTempA,
                              msg='应用优先模板版本 按钮有误')
             self.assertEqual(versions1, versionsA, msg='版本状态 按钮有误')
     elif Support == '×':
         logger.info(u'参数不支持应用特征库升级')
         try:
             self.driver.implicitly_wait(2)
             policylib.click_policylib()
         except AttributeError:
             logger.info('不支持应用特征库升级,与参数表相符')
         else:
             CapPic(self.driver)
             logger.info(u'支持应用特征库升级,与参数表不相符')
             raise Exception('支持应用特征库升级,与参数表不相符')
     else:
         logger.info(u'参数表读取异常')
         logger.info(u'参数表读取值为:', Support)
         raise Exception(u'参数表读取异常')
     self.driver.quit()
     logger.info('test_003_AppLibrary passed')
    def test_002_license(self):
        u'''登录页面的license'''

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        maintenance = MaintenancePage(self.driver, self.url)
        maintenance.click_sysConfig()
        time.sleep(0.5)
        maintenance.click_Maintenance()
        time.sleep(1)
        maintenance.click_license()
        time.sleep(1)

        filename = ('//*[@id="iframe5"]/table/tbody/tr[6]/td[2]/input[2]')
        licensefilenow = getlicensefile()
        self.driver.find_element_by_xpath(filename).send_keys(licensefilenow)
        time.sleep(0.5)
        maintenance.click_innerput()
        time.sleep(100)

        self.driver.quit()
        logger.info('test_reboot1 passed')
Exemple #8
0
 def setUp(self):
     print('sysConfig_006_softwareUpdata start')
     login.loginWeb(self)  #admin账号登录
     self.driver.implicitly_wait(10)
     software = MaintenancePage(self.driver, self.url)
     #进入系统配置-系统维护-系统升级
     software.click_sysConfig()
     time.sleep(0.5)
     software.click_Maintenance()
     time.sleep(1)
Exemple #9
0
 def setUp(self):
     logger.info('setUp start')
     login.loginWeb(self)
     self.driver.implicitly_wait(10)
     config = MaintenancePage(self.driver, self.url)
     # 进入系统配置-系统维护
     config.click_sysConfig()
     time.sleep(0.5)
     config.click_Maintenance()
     time.sleep(1)
Exemple #10
0
 def test_001_backup_resert(self):
     u'''配置备份及还原'''
     ExportA = getAssertText('ExportA')
     ImportA = getAssertText('ImportA')
     SelectFileA = getAssertText('SelectFileA')
     ResetA = getAssertText('ResetA')
     config = MaintenancePage(self.driver, self.url)
     config.click_configuration()
     time.sleep(1)
     output = str(config.getText_byID(config.output1))
     chooseFile = str(config.getText_byID(config.chooseFile1))
     innerput = str(config.getText_byID(config.innerput1))
     restore = str(config.getText_byID(config.restore1))
     self.assertEqual(output, ExportA, msg='导出 按钮有误')
     self.assertEqual(chooseFile, SelectFileA, msg='选择文件 按钮有误')
     self.assertEqual(innerput, ImportA, msg='导入 按钮有误')
     self.assertEqual(restore, ResetA, msg='恢复出厂设置 按钮有误')
     self.driver.quit()
     logger.info('test_001_backup_resert passed')
    def test_001_ntpClockServer(self):
        u'''时钟管理'''
        ntpServer = getweb('ntpServer')
        i = 0
        while i < 80:
            p = pingTestIP('www.baidu.com')
            if p != 'Y':
                time.sleep(1)
            else:
                break
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        config = MaintenancePage(self.driver, self.url)
        # 进入系统配置-系统维护
        config.click_sysConfig()
        time.sleep(0.5)
        config.click_Maintenance()
        time.sleep(1)
        TimeInternetA = getAssertText('TimeInternetA')
        sysTime = sysTimePage(self.driver, self.url)

        sysTime.click_SystemTime()
        time.sleep(1)
        switch = str(sysTime.getAttribute_byXpath(sysTime.SntpEns, 'checked'))
        tips = str(sysTime.getText_byXpath(sysTime.withInternet1))
        self.assertEqual(switch, 'true', msg='网络时间同步 默认开启 有误')
        self.assertEqual(tips, TimeInternetA, msg='网络时间同步 按钮有误')
        #判断页面时间 日期
        dates = sysTime.getText_byID(sysTime.dates)
        now = time.strftime("%Y-%m-%d")
        if dates != now:  #判断默认配置下是否能同步 不同同步则更改ntp server使同步 同时报默认不能同步错
            sysTime.input_NTPServerIP(ntpServer)
            sysTime.click_save()
            time.sleep(2)
            i = 0
            while i < 20:
                sysTime.click_SystemTime()
                time.sleep(1)
                dates = sysTime.getText_byID(sysTime.dates)
                if dates == now:
                    break
                else:
                    i += 1
            else:
                raise Exception('时间不同步,输入新ntp sever依旧不能更新')
            raise Exception('默认配置下ntp 时间不同步')

        self.driver.quit()
        logger.info('test_001_ntpClockServer passed')
Exemple #12
0
    def test_003_configIpmort(self):
        u'''导入配置'''
        nodata = getAssertText('nodata')
        config_xml = getAssertText('config_xml')
        config_xml3 = getAssertText('config_xml3')
        batpath = os.path.dirname(os.path.abspath('.')) + '/script/'
        #先进行配置文件命名修改
        path = os.path.dirname(os.path.abspath('.')) + '/tmp/'  # 配置文件存放(下载)路径
        sys.path.append(r'%s' % path)
        files = os.listdir(r'%s' %
                           path)  #os.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表
        #通过文件名称判断 修改为指定的文件名
        for filename in files:
            portion = os.path.splitext(filename)  #splitext()用于返回 文件名和扩展名 元组
            # print(portion2)
            if config_xml in str(portion[0]):  #如果文件名种包含"系统配置20"
                if portion[1] == '.xml':  #如果后缀是 .xml
                    newname = config_xml3 + '.xml'
                    #重新组合文件名和后缀名,直接修改名称的话 程序和文件必须在一个目录下
                    filenamedir = (r'%s' % path) + filename
                    newnamedir = (r'%s' % path) + newname
                    #修改文件名称(与autoIt上传脚本中上传的文件名称一致)
                    os.rename(filenamedir, newnamedir)

        #导入配置 验证
        login.loginWeb2(self)
        self.driver.implicitly_wait(10)
        config = MaintenancePage(self.driver, self.url)
        # 进入系统配置-系统维护-配置管理
        config.click_sysConfig()
        time.sleep(0.5)
        config.click_Maintenance()
        time.sleep(1)
        config.click_configuration()
        time.sleep(1)
        # 选中'选择文件' #这里没有取消"导入前恢复出厂设置"按钮
        config.click_chooseFile()
        time.sleep(1)
        #调用autoIt脚本上传组的xml文件
        if config_xml3 == '系统配置3333':
            autoItScript = batpath + 'SE_config_importCn.exe'
        if config_xml3 == 'Systemconfig3333':
            autoItScript = batpath + 'SE_config_importEn.exe'
        os.system('%s' % autoItScript)

        #点击导入
        config.click_innerput()
        time.sleep(1)
        config.click_ok()
        time.sleep(2)
        #取消重启
        config.click_no()
        time.sleep(1)
        #验证导入配置是否成功(通过配置的 今天时间计划)
        timePlan = timePlanPage(self.driver, self.url)
        timePlan.click_sysObj()
        time.sleep(0.5)
        timePlan.click_timePlan()
        time.sleep(1)
        today = str(datetime.date.today())[:-3]  # 获取当前年月(以访测试过程正好隔天,仅取年份月份)
        list_name = str(timePlan.getText_byXpath(timePlan.listName))
        self.assertEqual(list_name, today, msg='配置导入失败')
        time.sleep(1)
        # 删除时间计划
        timePlan = timePlanPage(self.driver, self.url)
        timePlan.click_sysObj()
        time.sleep(0.5)
        timePlan.click_timePlan()
        time.sleep(1)
        timePlan.click_delete()
        time.sleep(1)
        timePlan.click_ok()
        time.sleep(1)
        # 断言
        listtips2 = str(timePlan.getText_byXpath(timePlan.listnodata))
        self.assertEqual(listtips2, nodata, msg='时间计划删除失败')
        print('时间计划已删除')
        self.driver.quit()

        # 删除tmp路径中的xml文件
        call_Firefox.del_config_xml(self)
        logger.info('test_003_configIpmort passed')
Exemple #13
0
    def test_001_ManualUpgrade(self):
        u'''手动升级'''
        v2APname = getweb('v2APname')
        v2APoldversion = getweb('v2APoldversion')
        v2APnewversion = getweb('v2APnewversion')
        v1APname = getweb('v1APname')
        v1APoldversion = getweb('v1APoldversion')
        v1APnewversion = getweb('v1APnewversion')
        WillReboottips = getAssertText('WillReboottips')
        OnlineA = getAssertText('OnlineA')
        tmppath = os.path.dirname(os.path.abspath('.')) + '/script/'
        batpath = os.path.dirname(os.path.abspath('.')) + '/script/'

        #等待AP上线
        device = deviceMgmtPage(self.driver, self.url)
        device.click_wirelessExtension()
        time.sleep(0.5)
        device.click_deviceMgmt()
        time.sleep(1)
        x = 0
        while x < 100:
            device.click_refreshtable()
            time.sleep(1)
            list_status1 = device.getText_byXpath(device.list_status1)
            list_status2 = device.getText_byXpath(device.list_status2)
            list_status3 = device.getText_byXpath(device.list_status3)
            list_status4 = device.getText_byXpath(device.list_status4)
            print(list_status1, list_status2, list_status3, list_status4, x)
            if list_status1 == OnlineA and list_status2 == OnlineA and list_status3 == OnlineA and list_status4 == OnlineA:
                print('4台AP均在线', x)
                channel1 = str(
                    device.getAttribute_byXpath(device.list_channel1,
                                                'data-local'))
                channel2 = str(
                    device.getAttribute_byXpath(device.list_channel2,
                                                'data-local'))
                channel3 = str(
                    device.getAttribute_byXpath(device.list_channel3,
                                                'data-local'))
                channel4 = str(
                    device.getAttribute_byXpath(device.list_channel4,
                                                'data-local'))
                print('channel1=', channel1, 'channel2=', channel2,
                      'channel3=', channel3, 'channel4=', channel4, x)
                if channel1 != '' and channel2 != '' and channel3 != '' and channel4 != '':
                    print('4台AP2.4G无线接口已同步', x)
                    break
                else:
                    time.sleep(3)
            else:
                time.sleep(3)
            x = x + 1
        else:
            raise Exception('AP  未能同步2.4G无线接口')
        time.sleep(10)
        #先将WA3000N & WA2520N 单独页面降级
        device.input_search(v2APname)
        device.click_searchB()
        time.sleep(1)
        v2_ip1 = str(device.getText_byXpath(device.list_IP1))
        passurl_v2 = 'http://*****:*****@' + v2_ip1 + '/SoftwareUpdate.asp'  # 在URL里面直接加入用户名和密码
        pathv2 = tmppath + v2APoldversion + '.bin'
        device.input_search(v1APname)
        device.click_searchB()
        time.sleep(1)
        v1_ip4 = str(device.getText_byXpath(device.list_IP1))
        passurl_v1 = 'http://*****:*****@' + v1_ip4 + '/SoftwareUpdate.asp'  # 在URL里面直接加入用户名和密码
        pathv1 = tmppath + v1APoldversion + '.bin'

        # V2降级
        # 新开一个窗口,通过执行js来新开一个窗口
        js = 'window.open("%s");' % passurl_v2
        self.driver.execute_script(js)
        route_handles = self.driver.current_window_handle
        # print('route_handles:',route_handles)  # 输出当前窗口句柄(路由)
        all_handles = self.driver.window_handles  # 获取当前窗口句柄集合(列表类型)
        # print(all_handles)  # 输出句柄集合

        for handle in all_handles:  # 切换窗口(切换到v2)
            if handle != route_handles:
                print('switch to '), handle
                self.driver.switch_to_window(handle)
                v2_handles = self.driver.current_window_handle
                # print('v2_handles:',v2_handles)  # 输出当前窗口句柄(v2)
                break
        try:
            self.driver.get(passurl_v2)
            self.driver.set_page_load_timeout(5)  # selenium超时设置/等待时间过长自动停止
        except TimeoutException:
            print('passurl_v2:', passurl_v2)
            raise Exception('v2 AP1登录失败')
        else:
            apsoftware = APSoftwarePage(self.driver, self.url)
            apsoftware.input_updatesoftware(pathv2)
            time.sleep(1)
            apsoftware.click_uttupdate()
            time.sleep(1)
            self.driver.switch_to.alert.accept()  # 接受警告框
            time.sleep(25)
        # V1降级
        # 再新开一个窗口,通过执行js来新开一个窗口
        js1 = 'window.open("%s");' % passurl_v1
        self.driver.execute_script(js1)
        all_handles2 = self.driver.window_handles  # 获取当前窗口句柄集合(列表类型)
        # print(all_handles2)  # 输出句柄集合

        for handle in all_handles2:  # 切换窗口(切换到v1)
            if handle != route_handles:
                print('switch to '), handle
                self.driver.switch_to_window(handle)
                v1_handles = self.driver.current_window_handle
                # print('v1_handles:', v1_handles)  # 输出当前窗口句柄(v1)
                break
        try:
            self.driver.get(passurl_v1)
            self.driver.set_page_load_timeout(5)  # selenium超时设置/等待时间过长自动停止
        except TimeoutException:
            print('passurl_v1:', passurl_v1)
            raise Exception('v1 AP2登录失败')
        else:
            apsoftware = APSoftwarePage(self.driver, self.url)
            apsoftware.input_updatesoftware(pathv1)
            time.sleep(1)
            apsoftware.click_uttupdate()
            time.sleep(1)
            self.driver.switch_to.alert.accept()  # 接受警告框
            time.sleep(30)
        #web降级后,等待AP上线
        self.driver.switch_to_window(route_handles)
        # 将路由器重启掉(降级后可能会存在mac22不同 导致有同个设备多个离线记录,D525重启很快 放AP后面)
        reboot = MaintenancePage(self.driver, self.url)
        reboot.click_headerReboot()
        time.sleep(1)
        reboot.click_ok()
        time.sleep(2)
        tips = str(reboot.getText_byClass(reboot.u_tim_str))
        self.assertEqual(tips, WillReboottips, msg='点击页面上方重启 操作失败')
        # 等待路由器重启
        i = 0
        while i < 20:
            now_url = str(self.driver.current_url)
            # print(now_url,i)
            if '/noAuth/login.html' not in now_url:  # 如果不同
                time.sleep(5)
            else:
                break
            i += 1
        self.driver.quit()
        # all_handles = self.driver.window_handles  # 获取当前窗口句柄集合(列表类型)
        # # print(all_handles)  # 输出句柄集合
        # for handle in all_handles:
        #     self.driver.switch_to_window(handle)
        #     self.driver.quit()
        time.sleep(2)
        login.loginWeb2(self)
        self.driver.implicitly_wait(10)
        device = deviceMgmtPage(self.driver, self.url)
        device.click_wirelessExtension()
        time.sleep(0.5)
        device.click_deviceMgmt()
        time.sleep(50)
        x = 0
        while x < 100:
            device.click_refreshtable()
            time.sleep(1)
            list_status1 = device.getText_byXpath(device.list_status1)
            list_status2 = device.getText_byXpath(device.list_status2)
            list_status3 = device.getText_byXpath(device.list_status3)
            list_status4 = device.getText_byXpath(device.list_status4)
            print(list_status1, list_status2, list_status3, list_status4, x)
            if list_status1 == OnlineA and list_status2 == OnlineA and list_status3 == OnlineA and list_status4 == OnlineA:
                print('4台AP均在线', x)
                channel1 = str(
                    device.getAttribute_byXpath(device.list_channel1,
                                                'data-local'))
                channel2 = str(
                    device.getAttribute_byXpath(device.list_channel2,
                                                'data-local'))
                channel3 = str(
                    device.getAttribute_byXpath(device.list_channel3,
                                                'data-local'))
                channel4 = str(
                    device.getAttribute_byXpath(device.list_channel4,
                                                'data-local'))
                print('channel1=', channel1, 'channel2=', channel2,
                      'channel3=', channel3, 'channel4=', channel4, x)
                if channel1 != '' and channel2 != '' and channel3 != '' and channel4 != '':
                    print('4台AP2.4G无线接口已同步', x)
                    break
                else:
                    time.sleep(3)
            else:
                time.sleep(3)
            x = x + 1
        else:
            raise Exception('AP  未能同步2.4G无线接口')

        #手动升级
        apsoftware = APSoftwarePage(self.driver, self.url)
        apsoftware.click_APsoftware()
        time.sleep(1)
        # v1手动升级
        apsoftware.input_serach(v1APname)
        apsoftware.click_serachB()
        time.sleep(1)
        v1_version = str(apsoftware.getText_byXpath(apsoftware.list_version1))
        v1APoldversio2 = v1APoldversion[-12:]  # 截取版本号及日期 如:2.6.4-171110
        self.assertIn(v1APoldversio2, v1_version, msg='v1版本 web页面降级失败')
        apsoftware.click_list_sel1()
        time.sleep(0.2)
        apsoftware.click_upDataLocal()
        time.sleep(2)
        apsoftware.click_chooseFile()
        time.sleep(1)
        # 调用autoIt脚本上传AP版本
        os.system('%s' % (batpath + 'SE_APupdate_WA3000N.exe'))
        time.sleep(2)
        apsoftware.click_demo_upgrade()
        time.sleep(5)
        try:
            self.driver.implicitly_wait(2)
            apsoftware.find_ok()
        except NoSuchElementException:
            pass
        else:
            time.sleep(3)
        time.sleep(8)
        self.driver.implicitly_wait(10)
        # v2手动升级
        apsoftware.input_serach(v2APname)
        apsoftware.click_serachB()
        time.sleep(1)
        v2_version = str(apsoftware.getText_byXpath(apsoftware.list_version1))
        v2APoldversio2 = v2APoldversion[-12:]  #截取版本号及日期 如:2.6.4-171110
        self.assertIn(v2APoldversio2, v2_version, msg='v2版本 web页面降级失败')
        apsoftware.click_list_sel1()
        time.sleep(0.2)
        apsoftware.click_upDataLocal()
        time.sleep(2)
        apsoftware.click_chooseFile()
        time.sleep(1)
        # 调用autoIt脚本上传AP版本
        os.system('%s' % (batpath + 'SE_APupdate_WA2520N.exe'))
        time.sleep(2)
        apsoftware.click_demo_upgrade()
        time.sleep(5)
        try:
            self.driver.implicitly_wait(2)
            apsoftware.find_ok()
        except NoSuchElementException:
            pass
        else:
            time.sleep(3)
        self.driver.implicitly_wait(10)

        #已手动升级,切换到设备管理 等待AP上线
        time.sleep(100)
        self.driver.quit()
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        time.sleep(0.5)
        print('AP升级中,等待AP上线...')
        device = deviceMgmtPage(self.driver, self.url)
        device.click_wirelessExtension()
        time.sleep(0.5)
        device.click_deviceMgmt()
        time.sleep(1)
        x = 0
        while x < 100:
            device.click_refreshtable()
            time.sleep(1)
            list_status1 = device.getText_byXpath(device.list_status1)
            list_status2 = device.getText_byXpath(device.list_status2)
            list_status3 = device.getText_byXpath(device.list_status3)
            list_status4 = device.getText_byXpath(device.list_status4)
            print(list_status1, list_status2, list_status3, list_status4, x)
            if list_status1 == OnlineA and list_status2 == OnlineA and list_status3 == OnlineA and list_status4 == OnlineA:
                print('4台AP均在线', x)
                channel1 = str(
                    device.getAttribute_byXpath(device.list_channel1,
                                                'data-local'))
                channel2 = str(
                    device.getAttribute_byXpath(device.list_channel2,
                                                'data-local'))
                channel3 = str(
                    device.getAttribute_byXpath(device.list_channel3,
                                                'data-local'))
                channel4 = str(
                    device.getAttribute_byXpath(device.list_channel4,
                                                'data-local'))
                print('channel1=', channel1, 'channel2=', channel2,
                      'channel3=', channel3, 'channel4=', channel4, x)
                if channel1 != '' and channel2 != '' and channel3 != '' and channel4 != '':
                    print('4台AP2.4G无线接口已同步', x)
                    break
                else:
                    time.sleep(3)
            else:
                time.sleep(3)
            x = x + 1
        else:
            raise Exception('AP  未能同步2.4G无线接口')
        #切换回软件管理 确认AP升级后版本
        apsoftware = APSoftwarePage(self.driver, self.url)
        apsoftware.click_APsoftware()
        time.sleep(1)
        apsoftware.input_serach(v2APname)
        apsoftware.click_serachB()
        time.sleep(1)
        v2_version = str(apsoftware.getText_byXpath(apsoftware.list_version1))
        v2APversion2 = v2APnewversion[-12:]  # 截取版本号及日期 如:2.6.4-171110
        self.assertIn(v2APversion2, v2_version, msg='v2版本 手动升级失败')
        apsoftware.input_serach(v1APname)
        apsoftware.click_serachB()
        time.sleep(1)
        v1_version = str(apsoftware.getText_byXpath(apsoftware.list_version1))
        v1APversion2 = v1APnewversion[-12:]  # 截取版本号及日期 如:2.6.4-171110
        self.assertIn(v1APversion2, v1_version, msg='v1版本 手动升级失败')
        self.driver.quit()
        logger.info('test_001_ManualUpgrade passed')
Exemple #14
0
    def test_001_policylib(self):
        u'''应用特征库'''
        policylibsucess = getAssertText('policylibsucess')  #更新成功
        notdetected = getAssertText('notdetected')  #未检测到更新版本
        NewVersionDetected = getAssertText('NewVersionDetected')  #检测到新版本
        DetectedFailed = getAssertText('DetectedFailed')  #检测失败

        policylib = MaintenancePage(self.driver, self.url)
        #进入系统配置-系统维护-应用特征库
        policylib.click_sysConfig()
        time.sleep(0.5)
        policylib.click_Maintenance()
        time.sleep(1)
        policylib.click_policylib()
        time.sleep(10)
        showState = policylib.getText_byID(policylib.showState)
        strategyName = policylib.getText_byName(policylib.strategyName)
        if showState == policylibsucess:
            print('已更新成功')
        elif showState == notdetected:
            self.assertNotEqual(strategyName, '1.0')
            print(showState, strategyName, '特征库版本已经更新过')
        elif NewVersionDetected in showState:
            policylib.click_onkeyup()
            time.sleep(7)
            showState2 = policylib.getText_byID(policylib.showState)
            strategyName2 = policylib.getText_byName(policylib.strategyName)
            if showState2 == policylibsucess:
                if float(strategyName2) > float(strategyName):
                    print('更新成功')
            else:
                raise Exception('更新失败')
        elif DetectedFailed in showState:
            policylib.click_recheck()
            time.sleep(10)
            showState = policylib.getText_byID(policylib.showState)
            strategyName = policylib.getText_byName(policylib.strategyName)
            if showState == policylibsucess:
                print('已更新成功')
            elif showState == notdetected:
                self.assertNotEqual(strategyName, '1.0')
                print(showState, strategyName, '特征库版本已经更新过')
            elif NewVersionDetected in showState:
                policylib.click_onkeyup()
                time.sleep(7)
                showState2 = policylib.getText_byID(policylib.showState)
                strategyName2 = policylib.getText_byName(
                    policylib.strategyName)
                if showState2 == policylibsucess:
                    if float(strategyName2) > float(strategyName):
                        print('更新成功')
                else:
                    raise Exception('更新失败')
            elif DetectedFailed in showState:
                logger.info(showState, strategyName, u'检测失败')
                CapPic(self.driver)
                raise Exception('检测失败2')
            else:
                logger.info(showState, strategyName, u'检测失败')
                CapPic(self.driver)
                raise Exception('策略库检测更新状态 提示异常')
        else:
            logger.info(showState, strategyName, u'检测失败')
            CapPic(self.driver)
            raise Exception('策略库检测更新状态 提示异常')
        # self.driver.quit()
        logger.info('test_001_policylib passed')
    def test_reboot2(self):
        u'''重启 - 系统维护页面'''  #系统配置-系统维护-重启设备 页面的重启
        WillReboottips = getAssertText('WillReboottips')

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        reboot = MaintenancePage(self.driver, self.url)
        reboot.click_sysConfig()
        time.sleep(0.5)
        reboot.click_Maintenance()
        time.sleep(1)
        reboot.click_RebootDevice()
        time.sleep(1)
        reboot.click_reboot()
        time.sleep(1)
        reboot.click_ok()
        time.sleep(1)
        tips = str(reboot.getText_byClass(reboot.u_tim_str))
        self.assertEqual(tips, WillReboottips, msg='点击页面上方重启 操作失败')
        # 设备重启时间不一致,做个判断
        time.sleep(30)
        i = 0
        while i < 20:
            now_url = str(self.driver.current_url)
            # print(now_url, i)
            if '/noAuth/login.html' not in now_url:  # 如果不同
                time.sleep(5)
            else:
                break
            i += 1

        self.driver.quit()

        #待重启后验证 登录是否正常
        login.loginWeb(self)  #admin账号登录
        time.sleep(1)
        self.driver.quit()
        print('系统维护页面 设备重启 验证通过')
        logger.info('test_reboot2 passed')
Exemple #16
0
    def test_002_Resert(self):
        u'''恢复出厂'''
        nodata = getAssertText('nodata')
        #用于恢复出厂并验证
        login.loginWeb(self)  #admin账号登录
        self.driver.implicitly_wait(10)
        config = MaintenancePage(self.driver, self.url)
        #进入系统配置-系统维护-配置管理
        config.click_sysConfig()
        time.sleep(0.5)
        config.click_Maintenance()
        time.sleep(1)
        config.click_configuration()
        time.sleep(1)
        config.click_restore()
        time.sleep(1)
        config.click_ok()
        time.sleep(1)
        config.click_ok()  #确认重启
        time.sleep(30)
        i = 0
        while i < 30:
            now_url = str(self.driver.current_url)
            # print(now_url,i)
            if '/noAuth/login.html' not in now_url:  # 如果不同
                time.sleep(5)
            else:
                break
            i += 1
        else:
            raise Exception('设备重启未正常启动')
        self.driver.quit()

        #登录验证是否恢复出厂成功(通过配置的 当天的时间计划)
        login.loginWeb(self)  #admin账号登录
        self.driver.implicitly_wait(10)
        timePlan = timePlanPage(self.driver, self.url)
        timePlan.click_sysObj()
        time.sleep(0.5)
        timePlan.click_timePlan()
        time.sleep(1)
        list_nodata = timePlan.getText_byXpath(timePlan.listnodata)
        self.assertEqual(list_nodata, nodata, msg='配置恢复出厂成功')
        time.sleep(1)
        self.driver.quit()
        logger.info('test_002_Resert passed')
Exemple #17
0
    def test_oldSoftware1(self, oldversion1=getweb('oldversion1')):
        u'''软件升级 - 更新旧版本测试'''
        # oldversion1 = getweb('oldversion1')
        self.oldversion1 = oldversion1
        UploadingTips = getAssertText('UploadingTips')
        WillReboottips = getAssertText('WillReboottips')

        num = 0
        Expect_Version = ''
        oldversioa1 = oldversion1.split(r'-')
        if len(oldversioa1) == 2:  # eg:'nv640Ev1.5.0-130918'
            Expect_Version = oldversioa1[0] + '-' + oldversioa1[1]
        else:  #eg:'nvA655Wv3.0.0-200116-142208' ; 'TL-BWR-21v3.2.1-200304-171146'
            while num < len(oldversioa1) - 1:
                Expect_Version += oldversioa1[num] + '-'
                num += 1
            else:
                Expect_Version = Expect_Version[:-1]
        # print(Expect_Version)

        # if '.bin' in oldversioa1[1]:
        #     oldversioa2 = oldversioa1[0] + '-' + oldversioa1[1]
        #     Expect_Version = oldversioa2[:-4]
        # else:
        #     Expect_Version = oldversioa1[0] + '-' + oldversioa1[1]

        # 版本上传
        oldSoftware = (str(tmppath) + str(oldversion1) + '.bin')

        self.driver.implicitly_wait(10)
        software = MaintenancePage(self.driver, self.url)
        # 选择文件上传
        self.driver.find_element_by_name('updatesoftware').send_keys(
            oldSoftware)
        # software.input_updatesoftware(oldSoftware)
        time.sleep(1)
        software.click_update()
        time.sleep(1)
        software.click_ok()
        time.sleep(3)
        # 小设备 上传时间较长,判断sleep时间
        tips = str(software.getText_byClass(software.u_tim_str))
        if UploadingTips in tips:
            time.sleep(50)
        elif tips == WillReboottips:
            time.sleep(3)
        # 设备重启时间不一致,做个判断
        time.sleep(30)
        i = 0
        while i < 20:
            now_url = str(self.driver.current_url)
            print(now_url, i)
            if '/noAuth/login.html' not in now_url:  # 如果不同
                time.sleep(5)
            else:
                break
            i += 1
        self.driver.quit()

        #判断是否升级成功
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        software = MaintenancePage(self.driver, self.url)
        # 进入系统配置-系统维护-系统升级
        software.click_sysConfig()
        time.sleep(0.5)
        software.click_Maintenance()
        time.sleep(1)
        now_Version = str(software.getText_byXpath(software.version))
        if Expect_Version != now_Version:
            CapPic(self.driver)
            logger.info(u"升级旧版本 升级后版本号与升级版本号不一致")
            raise Exception('升级旧版本 升级后版本号与升级版本号不一致')
        else:
            print('更新 旧型号版本 验证通过')
        self.driver.quit()