Ejemplo n.º 1
0
    def test_001_information(self):
        u'''默认关闭,网络名称、设备管理页面提示正确'''
        wirelessTipsA = getAssertText('wirelessTipsA')

        netname = netNamePage(self.driver, self.url)
        #网络名称页面的提示
        netname.click_netName()
        time.sleep(1)
        boxtips = netname.getText_byClass(netname.u_cfm_boxT)
        if wirelessTipsA not in boxtips:
            CapPic(self.driver)
            logger.info(u'网络名称页面 无线扩展提示有误')
            raise Exception('网络名称页面 无线扩展提示有误')
        netname.click_u_cfm_nox()  #提示窗右上角×号
        time.sleep(1)

        #确认按钮默认关闭
        checkOpens = netname.getAttribute_byId(netname.checkOpens, 'checktype')
        self.assertEqual(checkOpens, '0', msg='无限扩展默认未关闭')  #0关闭,1打开

        # 设备管理页面的提示
        device = deviceMgmtPage(self.driver, self.url)
        device.click_deviceMgmt()
        time.sleep(1)
        boxtips = netname.getText_byClass(netname.u_cfm_boxT)
        if wirelessTipsA not in boxtips:
            CapPic(self.driver)
            logger.info(u'设备管理页面 无线扩展提示有误')
            raise Exception('设备管理页面 无线扩展提示有误')
        device.click_no()  #取消按钮
        time.sleep(1)
        self.driver.quit()

        logger.info('test_001_information passed')
Ejemplo n.º 2
0
    def test_002_PortMirror(self):
        u'''端口镜像(某些设备可能不支持)'''
        Monitorport = getAssertText('Monitorport')
        Monitoredport = getAssertText('Monitoredport')
        portmirrorP = getParameter('portmirrorP')
        Support = getExcelValue(portmirrorP)
        switchconfig = switchConfigPage(self.driver, self.url)
        if Support == '√':
            try:
                self.driver.implicitly_wait(2)
                switchconfig.find_switchConfig()
            except NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'不支持交换配置,则不支持端口镜像,与参数表不相符')
                raise Exception('不支持交换配置,则不支持端口镜像,与参数表不相符')
            else:
                time.sleep(1)
                try:
                    switchconfig.find_portMirror()
                except NoSuchElementException:
                    raise Exception('不支持端口镜像,与参数表不相符')
                else:
                    logger.info(u'支持端口镜像,与参数表相符')
                    MirrorEns = str(
                        switchconfig.getAttribute_byXpath(
                            switchConfigPage.MirrorEns, 'checked'))
                    self.assertEqual(MirrorEns, 'true', msg='端口镜像 默认未关闭')
                    line1 = str(
                        switchconfig.getText_byXpath(switchconfig.Monitorport))
                    self.assertEqual(line1, Monitorport, msg='监控端口 名称不一致')
                    line2 = str(
                        switchconfig.getText_byXpath(
                            switchconfig.Monitoredport))
                    self.assertEqual(line2, Monitoredport, msg='被监控端口 名称不一致')
        elif Support == '×':
            try:
                self.driver.implicitly_wait(2)
                switchconfig.find_switchConfig()
            except NoSuchElementException:
                logger.info('不支持交换配置,则不支持端口镜像,与参数表相符')
            else:
                time.sleep(1)
                try:
                    switchconfig.find_portMirror()
                except NoSuchElementException:
                    logger.info(u'不支持 端口镜像,与参数表相符')
                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_002_PortMirror passed')
Ejemplo n.º 3
0
    def tearDown(self):

        nodata = getAssertText('nodata')
        #删除ipsec
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        ipsec = IPsecPage(self.driver, self.url)
        ipsec.click_VPNConfig()
        time.sleep(0.5)
        ipsec.click_IPSec()
        time.sleep(1)
        ipsec.click_selall()
        time.sleep(0.2)
        ipsec.click_delall()
        time.sleep(1)
        ipsec.click_ok()
        time.sleep(2)
        list_nodata = ipsec.getText_byXpath(ipsec.list_nodata)
        if list_nodata == nodata:
            logger.info(u'R1 ipsec 已删除')
        else:
            CapPic(self.driver)
            logger.info(u'R1 ipsec删除失败')
            raise Exception(u'R1 ipsec删除失败')
        self.driver.quit()
        login.test_enableLoginWeb(self, url=vpnRouteUrl)
        ipsec = IPsecPage(self.driver, self.url)
        ipsec.click_VPNConfig()
        time.sleep(0.5)
        ipsec.click_IPSec()
        time.sleep(1)
        ipsec.click_selall()
        time.sleep(0.2)
        ipsec.click_delall()
        time.sleep(1)
        ipsec.click_ok()
        time.sleep(2)
        try:  #VPN 路由器是中文简体,在测试其他语言版本时,删除的nodata会不一致
            ipsec.find_list_nodataX()
        except NoSuchElementException:
            CapPic(self.driver)
            logger.info(u'R2 ipsec删除失败')
            raise Exception(u'R2 ipsec删除失败')
        else:
            logger.info(u'R2 ipsec 已删除')

        # list_nodata = ipsec.getText_byXpath(ipsec.list_nodata)
        # if list_nodata == nodata:
        #     logger.info(u'R2 ipsec 已删除')
        # else:
        #     CapPic(self.driver)
        #     logger.info(u'R2 ipsec删除失败')
        #     raise Exception(u'R2 ipsec删除失败')

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
Ejemplo n.º 4
0
    def test_005_RemoteAuth(self):
        u'''远程认证(某些设备可能不支持)'''
        remoteAuthP = getParameter('remoteAuthP')
        Support = getExcelValue(remoteAuthP)
        remoteauth = Organization_userAuthPage(self.driver, self.url)
        remoteauth.click_userAuth()
        time.sleep(1)
        if Support == '√':
            logger.info(u'参数支持远程认证')
            try:
                self.driver.implicitly_wait(2)
                remoteauth.click_remoteConfig()
            except AttributeError or NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'软件不支持远程认证,与参数表不符')
                raise Exception(u'软件不支持远程认证,与参数表不符')
            else:
                logger.info(u'软件支持远程认证,与参数表相符')
                self.driver.implicitly_wait(10)
                time.sleep(1)
                #判断没有无流量下线
                try:
                    self.driver.implicitly_wait(2)
                    remoteauth.find_wllxxsj()
                except ElementNotVisibleException:
                    pass
                except ElementNotInteractableException:
                    pass
                else:
                    raise Exception('远程认证界面存在无流量下线')
                #域名名称
                remoteauth.click_ymmc()
                # 白名单列表
                remoteauth.click_bmdlb()
        elif Support == '×':
            logger.info(u'参数不支持远程认证')
            try:
                self.driver.implicitly_wait(2)
                remoteauth.click_remoteConfig()
            except AttributeError or NoSuchElementException:
                logger.info(u'软件不支持远程认证,与参数表相符')
            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_005_RemoteAuth passed')
Ejemplo n.º 5
0
    def test_001_Modelcorrelation(self):
        u'''系统状态 型号相关'''
        vmodel = getExcelValue(getParameter('ProductmodelP'))
        print('性能参数中产品型号', vmodel)
        login.loginWeb(self)
        sysstatic = sysStaticPage(self.driver, self.url)
        sysstatic.click_systemWatch()
        time.sleep(0.5)
        sysstatic.click_sysStatic()
        time.sleep(1)
        #系统负载 - 产品型号
        webmodel = (sysstatic.getText_byXpath(sysstatic.Model)).upper()
        print('页面产品型号', webmodel)

        if webmodel in vmodel:
            logger.info('产品型号 一致')
        elif webmodel.replace(' ', '') in vmodel:  #部分性能参数型号中未包含空格
            logger.info('产品型号 一致')
        elif 'HiPER' or '商睿' in vmodel:
            vmodel1 = '商睿 ' + vmodel.split(r' ')[1]
            vmodel2 = 'HIPER ' + vmodel.split(r' ')[1]  #字母已切换大写
            # print(vmodel1,vmodel2)
            if webmodel in vmodel1 or webmodel in vmodel2:
                logger.info('产品型号 一致')
            else:
                print('页面产品型号', webmodel)
                print('性能参数中产品型号', vmodel)
                logger.info(u'软件页面产品型号 与性能参数显示不一致1')
                logger.info('页面产品型号', webmodel)
                logger.info('性能参数中产品型号', vmodel)
                CapPic(self.driver)
                raise Exception('软件页面产品型号 与性能参数显示不一致1')
        else:
            logger.info(u'软件页面产品型号 与性能参数显示不一致2')
            CapPic(self.driver)
            raise Exception('软件页面产品型号 与性能参数显示不一致2')
        if '硬件' in vmodel:
            hdVersion = 'V' + vmodel.split(r'V')[1][:-1]
        else:
            hdVersion = 'V1.0'
        print(hdVersion)
        wb_hdmodel = sysstatic.getText_byXpath(sysstatic.hdmodel)
        if wb_hdmodel == hdVersion:
            logger.info(u'硬件版本 与性能参数一致')
        else:
            logger.info(u'硬件版 与性能参数显示不一致')
            CapPic(self.driver)
            raise Exception('硬件版 与性能参数显示不一致')

        self.driver.quit()
        logger.info('test_001_Modelcorrelation passed')
Ejemplo n.º 6
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')
Ejemplo n.º 7
0
    def test_003_PortVLAN(self):
        u'''Port VLAN(某些设备可能不支持)'''
        portVlanP = getParameter('portVlanP')
        Support = getExcelValue(portVlanP)
        switchconfig = switchConfigPage(self.driver, self.url)
        if Support == '√':
            try:
                self.driver.implicitly_wait(2)
                switchconfig.find_switchConfig()
            except NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'不支持交换配置,则不支持端口VLAN,与参数表不相符')
                raise Exception('不支持交换配置,则不支持端口VLAN,与参数表不相符')
            else:
                time.sleep(1)
                try:
                    switchconfig.find_portVlan()
                except NoSuchElementException:
                    raise Exception('不支持 端口VLAN,与参数表不相符')
                else:
                    logger.info(u'支持 端口VLAN,与参数表相符')
                    time.sleep(0.5)
                    line1 = str(
                        switchconfig.getText_byXpath(switchconfig.VLAN1))
                    self.assertEqual(line1, 'VLAN1', msg='VLAN1 名称不一致')
        elif Support == '×':
            try:
                self.driver.implicitly_wait(2)
                switchconfig.find_switchConfig()
            except NoSuchElementException:
                logger.info('不支持交换配置,则不支持端口VLAN,与参数表相符')
            else:
                time.sleep(1)
                try:
                    switchconfig.find_portVlan()
                except NoSuchElementException:
                    logger.info(u'不支持 端口VLAN,与参数表相符')
                else:
                    CapPic(self.driver)
                    logger.info(u'软件支持端口VLAN,与参数表不符')
                    raise Exception(u'软件支持端口VLAN,与参数表不符')
        else:
            logger.info(u'参数表读取异常')
            logger.info(u'参数表读取值为:', Support)
            raise Exception(u'参数表读取异常')

        self.driver.quit()
        logger.info('test_003_PortVLAN passed')
Ejemplo n.º 8
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()
Ejemplo n.º 9
0
    def test_003_test3(self):
        u'''已删除账号验证 只读权限验证'''
        pageTipWarnA = getAssertText('pageTipWarnA')
        #使用test账号不能登陆管理DUT
        login.test_unableLoginWeb(self, username='******', password='******')
        self.driver.implicitly_wait(10)
        self.driver.quit()

        #使用test1账号可以登陆管理DUT
        login.test_enableLoginWeb(self, username='******', password='******')
        self.driver.implicitly_wait(10)
        # 只读权限test1 尝试删除test1/test1账号,应该不成功
        administrator = ManagementPolicyPage(self.driver, self.url)
        administrator.click_sysConfig()
        time.sleep(0.5)
        administrator.click_ManagementPolicy()
        time.sleep(1)
        #尝试删除test1/test1账号,应该不成功
        administrator.click_listDelete1()
        time.sleep(1)
        administrator.click_ok()
        time.sleep(1)
        # 断言删除时候提示信息(logout_span)元素不为空:代表无法删除
        pageTip_warn = administrator.getText_byClass(
            administrator.pageTip_warn)
        if pageTip_warn != pageTipWarnA:
            CapPic(self.driver)
            logger.info(u'只读权限删除提示有误')
            raise Exception('只读权限删除提示有误')
        else:
            print('已删除账号验证、只读权限验证 通过')
        self.driver.quit()
Ejemplo n.º 10
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')
Ejemplo n.º 11
0
    def test_003_NetSniper(self):
        u'''内网网络尖兵(某些型号不支持)'''
        nodata = getAssertText('nodata')
        NetSniperP = getParameter('NetSniperP')
        Support = getExcelValue(NetSniperP)
        print(Support)
        netSniper = NetSniperPage(self.driver, self.url)
        netSniper.click_BehaviorManagement()
        time.sleep(0.5)
        if Support == '√':
            try:
                self.driver.implicitly_wait(2)
                netSniper.click_NetSniper()
            except AttributeError or NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'软件不支持内网网络尖兵,与参数表不符')
                raise Exception(u'软件不支持内网网络尖兵,与参数表不符')
            else:
                logger.info(u'软件支持内网网络尖兵,与参数表相符')
                self.driver.implicitly_wait(10)
                time.sleep(1)
                listtips = str(netSniper.getText_byXpath(netSniper.listnodata))
                self.assertEqual(listtips, nodata, msg='管制IP列表 默认不为空')

                netSniper.click_NetSniperconfig()
                time.sleep(0.5)
                switch = str(
                    netSniper.getAttribute_byName(netSniper.enable, 'checked'))
                self.assertEqual(switch, 'None', msg='网络尖兵 默认开启')
        elif Support == '×':
            try:
                self.driver.implicitly_wait(2)
                netSniper.click_NetSniper()
            except AttributeError or NoSuchElementException:
                logger.info(u'软件不支持内网网络尖兵,与参数表相符')
            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_003_NetSniper passed')
Ejemplo n.º 12
0
 def find_element(self, *loc):
     try:
         WebDriverWait(self.driver,
                       10).until(EC.visibility_of_all_elements_located(loc))
         return self.driver.find_element(*loc)
     except:
         CapPic(self.driver)
         logger.info(u"%s 页面中未能找到 %s 元素" % (self, loc))
         self.driver.quit()
Ejemplo n.º 13
0
 def click(self, loc):
     try:
         loc = getattr(self, "_%s" % loc)
         self.find_element(*loc).click
     except AttributeError:
         # 当元素找不到的时候调用截图函数
         CapPic(self.driver)
         # 元素找不到时在日志中记录信息
         logger.info(u'%s 页面中未找到 %s 元素' % (self, loc))
Ejemplo n.º 14
0
def browserstart():
    browsername = getbrowserinfo('browser')
    Url = getbrowserinfo('Url')
    if browsername == 'Chrome':
        driver = webdriver.Chrome()
        driver.get(Url)
    elif browsername == 'Ie':
        driver = webdriver.Ie()
        driver.get(Url)
    CapPic(driver)
Ejemplo n.º 15
0
 def send_keys(self, loc, value):
     try:
         #获取元素的属性值,以便识别元素
         loc = getattr(self, "_%s" % loc)
         #查找元素并输入相关数据
         self.find_element(*loc).send_keys(value)
     except AttributeError:
         # 当元素找不到的时候调用截图函数
         CapPic(self.driver)
         # 元素找不到时在日志中记录信息
         logger.info(u'%s 页面中未找到 %s 元素' % (self, loc))
Ejemplo n.º 16
0
    def test_001_vlanInterface(self):
        u'''VLAN 虚接口'''
        vlanPortP = getParameter('vlanPortP')
        Support = getExcelValue(vlanPortP)
        lanpage = NetworkConfig_LANpage(self.driver, self.url)
        lanpage.click_LANconfig()
        time.sleep(1)
        lanpage.click_add()
        time.sleep(1)
        selsxjk = lanpage.selelement_byName(lanpage.selsxjk)
        if Support == '√':
            try:
                self.driver.implicitly_wait(2)
                Select(selsxjk).select_by_value('vlanid')
            except NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'软件不支持VLAN 虚接口,与参数表不符')
                raise Exception(u'软件不支持VLAN 虚接口,与参数表不符')
            else:
                logger.info(u'软件支持VLAN 虚接口,与参数表相符')
                time.sleep(0.5)
        elif Support == '×':
            try:
                self.driver.implicitly_wait(2)
                Select(selsxjk).select_by_value('vlanid')
            except NoSuchElementException:
                logger.info(u'软件支持VLAN 虚接口,与参数表不符')
            else:
                CapPic(self.driver)
                logger.info(u'软件支持VLAN 虚接口,与参数表不符')
                raise Exception(u'软件支持VLAN 虚接口,与参数表不符')
        else:
            logger.info(u'参数表读取异常')
            logger.info(u'参数表读取值为:', Support)
            raise Exception(u'参数表读取异常')

        Select(selsxjk).select_by_value('default')
        time.sleep(0.5)

        self.driver.quit()
        logger.info('test_001_vlanInterface passed')
Ejemplo n.º 17
0
 def send_keys(self, loc, vaule, clear_first=True, click_first=True):
     try:
         loc = getattr(self, "%s" % loc)
         if clear_first:
             self.find_element(*loc).click()
         if click_first:
             self.find_element(*loc).clear()
             self.find_element(*loc).send_keys(vaule)
     except AttributeError:
         CapPic(self.driver)
         logger.info(u"%s 页面中未能找到 %s 元素" % (self, loc))
         self.driver.quit()
Ejemplo n.º 18
0
 def find_element(self, *loc):
     try:
         #loc是表示属性元组本身,*loc表示属性元组的值,EC.visibility_of_element_located需要传入两个参数
         #因此,此处智能是loc
         WebDriverWait(self.driver,
                       10).until(EC.visibility_of_element_located(loc))
         #此处返回元素的属性及属性值,故使用*loc
         return self.driver.find_element(*loc)
     except:
         #当元素找不到的时候调用截图函数
         CapPic(self.driver)
         #元素找不到时在日志中记录信息
         logger.info(u'%s 页面中未找到 %s 元素' % (self, loc))
Ejemplo n.º 19
0
 def test_007_RemotePlannedTask(self):
     u'''计划任务(某些型号不支持AP的计划任务)'''
     APnumP = getParameter('APnumP')
     Support = getExcelValue(APnumP)
     scheduled = ScheduledTaskPage(self.driver, self.url)
     scheduled.click_ScheduledTask()
     time.sleep(1)
     scheduled.click_add()
     time.sleep(1)
     selobj = scheduled.selelement_byName(scheduled.obj)
     Select(selobj).select_by_value('01')  #01本设备
     time.sleep(0.5)
     if Support != None and Support != '×':
         logger.info(u'参数支持 AP管理')
         try:
             Select(selobj).select_by_value('02')  # 02 AP
         except ElementNotVisibleException:
             CapPic(self.driver)
             logger.info(u'软件不支持AP的计划任务,与参数表不符')
             raise Exception('软件不支持AP的计划任务,与参数表不符')
         else:
             logger.info(u'软件支持AP的计划任务,与参数表相符')
             time.sleep(0.5)
             selcontent = scheduled.selelement_byName(scheduled.selContent)
             Select(selcontent).select_by_value('rebootS')  # 仅一个选择
             time.sleep(0.5)
     else:
         logger.info(u'参数不支持 AP管理')
         try:
             self.driver.implicitly_wait(2)
             Select(selobj).select_by_value('02')
         except ElementNotVisibleException:
             logger.info(u'软件不支持AP的计划任务,与参数表相符')
         else:
             CapPic(self.driver)
             logger.info(u'软件支持AP的计划任务,与参数表不符')
             raise Exception(u'软件支持AP的计划任务,与参数表不符')
     self.driver.quit()
     logger.info('test_007_RemotePlannedTask passed')
Ejemplo n.º 20
0
    def test_002_editDelSSID(self):
        u'''网络名称修改、删除'''
        netname = netNamePage(self.driver, self.url)
        # 修改网络名称
        netname.click_wirelessExtension()
        time.sleep(0.5)
        netname.click_netName()
        time.sleep(1)
        #编辑第4个ssid
        netname.click_list_edit4()
        time.sleep(1)
        netname.input_ssid('ssid_all中2')
        netname.click_next_tab()
        time.sleep(0.5)
        netname.click_next_tab()
        time.sleep(0.5)
        netname.click_save()
        time.sleep(1)
        list_ssid4 = str(netname.getText_byXpath(netname.list_ssid4))
        self.assertEqual(list_ssid4, 'ssid_all中2', msg='ssid4 与修改不一致')

        #删除
        netname.click_list_del4()
        time.sleep(1)
        netname.click_ok()
        time.sleep(1)
        list_nodata4 = str(netname.getText_byXpath(netname.list_nodata4))
        if list_nodata4 == '' or ' ':
            print('ssid 删除成功')
        else:
            CapPic(self.driver)
            logger.info(u'ssid 删除失败')
            raise Exception('删除失败')

        # 再新增第四个ssid
        netname.click_add()
        time.sleep(1)
        netname.input_zoneName('all')
        netname.input_ssid('ssid_all中')
        netname.click_next_tab()
        time.sleep(0.5)
        netname.click_next_tab()
        time.sleep(0.5)
        netname.click_save()
        time.sleep(1)
        list_ssid4 = str(netname.getText_byXpath(netname.list_ssid4))
        self.assertEqual(list_ssid4, 'ssid_all中', msg='ssid4 与设置不一致')

        self.driver.quit()
        logger.info('test_002_editDelSSID passed')
Ejemplo n.º 21
0
    def test_002_UserFlowRanking(self):
        u'''今日用户网络流量排名 显示及跳转'''
        login.loginWeb(self)
        sysstatic = sysStaticPage(self.driver, self.url)
        sysstatic.click_systemWatch()
        time.sleep(0.5)
        sysstatic.click_sysStatic()
        time.sleep(1)

        sysstatic.click_more2()
        time.sleep(2)
        url = self.driver.current_url
        if '#/user_management/user_state' in url:
            logger.info(u'今日用户网络流量排名 跳转到用户状态 验证正常')
        else:
            CapPic(self.driver)
            logger.info(u'今日用户网络流量排名 跳转到用户状态 验证正常')
            raise Exception(u'今日用户网络流量排名 跳转到用户状态 验证正常')

        self.driver.back()
        sysstatic = sysStaticPage(self.driver, self.url)
        try:
            list_user = sysstatic.getText_byXpath(sysstatic.list_user)
        except NoSuchElementException:
            CapPic(self.driver)
            logger.info(u'系统状态-今日用户网络流量排名 未显示数据')
            raise Exception(u'系统状态-今日用户网络流量排名 未显示数据')
        else:
            if 'Guest' in list_user:
                logger.info(u'系统状态-今日用户网络流量排名 显示数据验证通过 ')
            else:
                CapPic(self.driver)
                logger.info(u'系统状态-今日用户网络流量排名 显示数据 异常')
                raise Exception(u'系统状态-今日用户网络流量排名 显示数据 异常')

        self.driver.quit()
        logger.info('test_002_UserFlowRanking passed')
Ejemplo n.º 22
0
def BrowserStart():
    browsername = GetBrowserInfo("BrowserName")
    url = GetBrowserInfo('Url')
    if browsername == 'Chrome':
        logger.info('启动Chrome浏览器')
        driver = webdriver.Chrome()
    if browsername == 'Firefox':
        logger.info('启动Firefox浏览器')
        driver = webdriver.firefox()
    if browsername == 'IE':
        ogger.info('启动IE浏览器')
        driver = webdriver.ie()
    logger.info('打开测试网页')
    driver.get(url)
    CapPic(driver)
Ejemplo n.º 23
0
def BrowserStart():
    browsername = getBrowserinfo('BrowserName')
    url = getBrowserinfo('Url')
    # print(browsername)
    # 判断浏览器的类型,浏览器的分解
    if (browsername == 'Chrome'):
        driver = webdriver.Chrome()
        logger.info("启动浏览器")
        driver.get(url)
        logger.info("打开测试网页")
        CapPic(driver)

    if (browsername == 'Firefox'):
        driver = webdriver.Firefox()
        driver.get(url)
Ejemplo n.º 24
0
    def tearDown(self):
        #修改回默认 以访中间出错
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        save = 0
        enable1 = wanpage.getAttribute_byXpath(wanpage.enable1, 'selected')
        if hwNatP == '√':  # 包含硬件转转发开关
            if enable1 != 'true':
                FastForwardEnable = wanpage.selelement_byName('FastForwardEnable')
                Select(FastForwardEnable).select_by_value('NatAuto')
                save = 1
            enable2 = wanpage.getAttribute_byXpath(wanpage.enable2, 'selected')
            if enable2 != 'true':
                FastForwardMode = wanpage.selelement_byName('FastForwardMode')
                Select(FastForwardMode).select_by_value('hwNat')
                save = 1
        else:
            if enable1 != 'true':
                FastForwardEnable = wanpage.selelement_byName('FastForwardEnable')
                Select(FastForwardEnable).select_by_value('NatAuto')
                save = 1
        if save == 1:
            wanpage.click_save()
            time.sleep(2)
            # 等待弹窗提示成功
            i = 0
            while i < 80:
                try:
                    self.driver.implicitly_wait(1)
                    wanpage.find_tipsshowin()
                except NoSuchElementException:
                    time.sleep(1)
                    i = i + 1
                    print(i)
                else:
                    tips = str(wanpage.getAttribute_byClass(wanpage.tipsshowin, 'tip-sign'))
                    print(tips, i)
                    if tips != 'success':
                        CapPic(self.driver)
                        logger.info(u'极速模式保存 异常')
                        raise Exception(u'极速模式保存 异常')
                    break
            else:
                raise Exception(u'极速模式保存 未弹出提示框')
            time.sleep(2)
        self.driver.quit()

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
Ejemplo n.º 25
0
    def test_003_WEBtimeout(self, timeout='1'):  #因为字母顺序问题 该项会在最后执行
        u'''修改UI超时时间'''
        #修改UI超时时间
        accessStrategy = ManagementPolicyPage(self.driver, self.url)
        accessStrategy.input_sessionLife(timeout)
        accessStrategy.click_save()
        self.driver.quit()

        login.loginWeb(self)
        #任意点击一个页面,这里点击网络配置-内网配置
        lanconfig = NetworkConfig_LANpage(self.driver, self.url)
        lanconfig.click_NetworkConfig()
        time.sleep(0.5)
        lanconfig.click_LANconfig()
        time.sleep(1)
        print('等待超时时间,在这里等待80s')
        time.sleep(120)
        #等待超时时间后,任意点击其他页面 测试超时(返回登录页面)
        accessStrategy = ManagementPolicyPage(self.driver, self.url)
        accessStrategy.click_sysConfig()
        time.sleep(0.5)
        accessStrategy.click_ManagementPolicy()
        time.sleep(2)
        url = self.driver.current_url
        if '/login.html' not in url:
            CapPic(self.driver)
            logger.info(u"未跳回登录页面")
            raise Exception('未跳回登录页面')
        self.driver.quit()

        # 将超时时间改回默认值
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        accessStrategy = ManagementPolicyPage(self.driver, self.url)
        # 进入系统配置-网管策略-网管访问策略
        accessStrategy.click_sysConfig()
        time.sleep(0.5)
        accessStrategy.click_ManagementPolicy()
        time.sleep(1)
        accessStrategy.click_AccessPolicy()
        time.sleep(1)
        accessStrategy.input_sessionLife('10')
        accessStrategy.click_save()
        self.driver.quit()
        logger.info('test_003_WEBtimeout passed')
Ejemplo n.º 26
0
    def test_002_PolicyRoute(self):
        u'''策略路由'''
        policyP = getParameter('policyP')
        Support = getExcelValue(policyP)
        if Support != '×':
            logger.info(u'参数支持策略路由')
            routeconfig = RouteConfigPage(self.driver,self.url)
            try:
                self.driver.implicitly_wait(2)
                routeconfig.click_Routeconfig()
                time.sleep(1)
                routeconfig.click_PolicyRoute()
                time.sleep(0.5)
            except AttributeError or NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'软件不支持策略路由,与参数表不符')
                raise Exception(u'软件不支持策略路由,与参数表不符')
            self.driver.implicitly_wait(10)
            # 新增
            routeconfig.click_addPolicy()
            time.sleep(1)
            routeconfig.click_sourceIP()
            time.sleep(1)
            routeconfig.click_userall()
            time.sleep(0.5)
            routeconfig.click_usergroup()
            time.sleep(0.5)
            routeconfig.click_userip()
            time.sleep(0.5)
            routeconfig.click_saveW()
            time.sleep(0.5)
            routeconfig.click_dstAddr()
            time.sleep(1)
            routeconfig.click_dstgroup()
            time.sleep(0.5)
            routeconfig.click_destIP()
            time.sleep(0.5)

        self.driver.quit()
        logger.info('test_002_PolicyRoute passed')
Ejemplo n.º 27
0
    def test_004_test4(self):
        u'''删除新增账号 admin登录验证'''
        #删除test1/test1,会退出当前登陆(test1已经修改了权限 用admin删除)
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        administrator = ManagementPolicyPage(self.driver, self.url)
        # 进入系统配置-网管策略-系统管理员
        administrator.click_sysConfig()
        time.sleep(0.5)
        administrator.click_ManagementPolicy()
        time.sleep(1)
        #删除test1/test1
        administrator.click_listDelete1()
        time.sleep(1)
        administrator.click_ok()
        time.sleep(1)
        # 断言列表框里第二行没有值、元素为空:代表删除成功
        list2_nodata = administrator.getText_byXpath(
            administrator.list2_nodata)
        if list2_nodata != ' ':
            CapPic(self.driver)
            logger.info(u'删除test1/test1 有误')
            raise Exception('删除test1/test1 有误')
        else:
            print('删除test1/test1 通过')
        self.driver.quit()

        #删除后使用test1不可以登录
        login.test_unableLoginWeb(self, username='******', password='******')
        time.sleep(1)
        self.driver.quit()
        #使用admin/admin可以登陆
        login.test_enableLoginWeb(self, username='******', password='******')
        time.sleep(1)
        self.driver.quit()
        print('管理员账号测试 验证通过')
Ejemplo n.º 28
0
 def test_003_Template(self):
     u'''AP配置模板'''
     login.loginWeb(self)
     self.driver.implicitly_wait(10)
     rftemplate = RftemplatePage(self.driver, self.url)
     if str(Support).isdigit():  #判断字符串是否为数字
         logger.info(u'参数支持AP管理')
         try:
             self.driver.implicitly_wait(2)
             # 进入无线拓展_射频模板
             rftemplate.click_wirelessExtension()
             time.sleep(0.5)
             rftemplate.click_rfTemplate()
             time.sleep(1)
         except AttributeError or NoSuchElementException:
             CapPic(self.driver)
             logger.info(u'软件不支持无线扩展/网络名称,与参数表不符')
             raise Exception(u'软件不支持无线扩展/网络名称,与参数表不符')
         else:
             logger.info(u'软件支持无线扩展,与参数表相符')
             self.driver.implicitly_wait(10)
             rftemplate.click_list_edit1()
             time.sleep(1)
             #2.4G
             #无线功能开启/关闭
             en_wireless = str(
                 rftemplate.getAttribute_byXpath(rftemplate.en_wirelessS,
                                                 'checked'))
             self.assertEqual(en_wireless, 'true', msg='模板2.4G ssid默认未开启')
             rftemplate.click_C_wireless()
             time.sleep(0.2)
             rftemplate.click_C_wireless1()
             time.sleep(0.2)
             selmode = rftemplate.selelement_byName(rftemplate.mode)
             Select(selmode).select_by_value('1')  #1 仅11g
             time.sleep(0.5)
             selrate = rftemplate.selelement_byName(rftemplate.rate)
             Select(selrate).select_by_value('54')  #54M
             time.sleep(0.2)
             Select(selrate).select_by_value('0')  # 自动
             time.sleep(0.2)
             Select(selmode).select_by_value('2')  # 2 仅11n
             time.sleep(0.5)
             Select(selrate).select_by_value('150')  # 150M
             time.sleep(0.2)
             Select(selrate).select_by_value('300')  # 300M
             time.sleep(0.2)
             Select(selrate).select_by_value('0')  # 自动
             time.sleep(0.2)
             Select(selmode).select_by_value('3')  # 3 b/g/n
             time.sleep(0.5)
             selpower = rftemplate.selelement_byName(
                 rftemplate.power)  #无线传输功率
             Select(selpower).select_by_value('1')  #1 手动
             time.sleep(1)
             selmanual = rftemplate.selelement_byName(rftemplate.manual)
             Select(selmanual).select_by_value('2')  # 中
             time.sleep(0.2)
             Select(selmanual).select_by_value('1')  # 低
             time.sleep(0.2)
             Select(selmanual).select_by_value('3')  # 高
             time.sleep(0.2)
             Select(selpower).select_by_value('0')  # 0 自动
             time.sleep(0.5)
             selchannel = rftemplate.selelement_byName(rftemplate.channel)
             Select(selchannel).select_by_value('1')
             time.sleep(0.2)
             Select(selchannel).select_by_value('2')
             time.sleep(0.2)
             Select(selchannel).select_by_value('3')
             time.sleep(0.2)
             Select(selchannel).select_by_value('4')
             time.sleep(0.2)
             Select(selchannel).select_by_value('5')
             time.sleep(0.2)
             Select(selchannel).select_by_value('6')
             time.sleep(0.2)
             Select(selchannel).select_by_value('7')
             time.sleep(0.2)
             Select(selchannel).select_by_value('8')
             time.sleep(0.2)
             Select(selchannel).select_by_value('9')
             time.sleep(0.2)
             Select(selchannel).select_by_value('10')
             time.sleep(0.2)
             Select(selchannel).select_by_value('11')
             time.sleep(0.2)
             Select(selchannel).select_by_value('0')  # 0 自动
             time.sleep(0.5)
             selBW = rftemplate.selelement_byName(rftemplate.BW)
             Select(selBW).select_by_value('0')  #0 20M
             time.sleep(0.2)
             Select(selBW).select_by_value('1')  #自动
             time.sleep(0.2)
             rftemplate.click_gjxxa()  #高级选项
             time.sleep(0.5)
             SGI = str(
                 rftemplate.getAttribute_byXpath(rftemplate.SGIs,
                                                 'checked'))
             self.assertEqual(SGI, 'true', msg='短间隔 默认未开启')
             rftemplate.click_SGIc()
             wmm = str(
                 rftemplate.getAttribute_byXpath(rftemplate.wmms,
                                                 'checked'))
             self.assertEqual(wmm, 'true', msg='wmm 默认未开启')
             rftemplate.click_wmmc()
             preamble = str(
                 rftemplate.getAttribute_byXpath(rftemplate.preambles,
                                                 'checked'))
             self.assertEqual(preamble, 'true', msg='短前导码	 默认未开启')
             rftemplate.click_preamblesc()
             rftemplate.input_BeaconPeriod('200')  #信标间隔
             #5G
             # 无线功能开启/关闭
             en_wireless_5 = str(
                 rftemplate.getAttribute_byXpath(rftemplate.en_wireless5S,
                                                 'checked'))
             self.assertEqual(en_wireless_5, 'true', msg='模板2.4G ssid默认未开启')
             rftemplate.click_C_wireless5()
             time.sleep(0.2)
             rftemplate.click_C_wireless51()
             time.sleep(0.2)
             selmode_5 = rftemplate.selelement_byName(
                 rftemplate.mode_5)  # 无线模式
             Select(selmode_5).select_by_value('4')  # 仅11a
             time.sleep(0.2)
             BW_5 = rftemplate.selelement_byName(rftemplate.BW_5)  # 频道带宽
             Select(BW_5).select_by_value('0')  # 0 20M
             time.sleep(0.2)
             Select(BW_5).select_by_value('1')  # 自动
             time.sleep(0.2)
             Select(selmode_5).select_by_value('5')  # 11a/n混合
             time.sleep(0.2)
             Select(BW_5).select_by_value('0')  # 0 20M
             time.sleep(0.2)
             Select(BW_5).select_by_value('1')  # 自动
             time.sleep(0.2)
             Select(selmode_5).select_by_value('6')  # 11vht AC/AN/A
             time.sleep(0.2)
             VHTBW = rftemplate.selelement_byName(rftemplate.VHTBW)  # 频道带宽
             Select(VHTBW).select_by_value('0')  # 0 20M/40
             time.sleep(0.2)
             Select(VHTBW).select_by_value('1')  # 80M
             time.sleep(0.2)
             Select(BW_5).select_by_value('0')  # 0 20M
             time.sleep(0.2)
             Select(BW_5).select_by_value('1')  # 自动
             time.sleep(0.2)
             Select(selmode_5).select_by_value('7')  # 11vht AC/AN
             time.sleep(0.2)
             Select(VHTBW).select_by_value('0')  # 0 20M/40
             time.sleep(0.2)
             Select(VHTBW).select_by_value('1')  # 80M
             time.sleep(0.2)
             Select(BW_5).select_by_value('0')  # 0 20M
             time.sleep(0.2)
             Select(BW_5).select_by_value('1')  # 自动
             time.sleep(0.2)
             power_5 = rftemplate.selelement_byName(
                 rftemplate.power_5)  # 无线传输功率
             Select(power_5).select_by_value('1')  # 1 手动
             time.sleep(1)
             manual_5 = rftemplate.selelement_byName(rftemplate.manual_5)
             CapPic(self.driver)
             Select(manual_5).select_by_value('2')  # 中
             time.sleep(0.2)
             Select(manual_5).select_by_value('1')  # 低
             time.sleep(0.2)
             Select(manual_5).select_by_value('3')  # 高
             time.sleep(0.2)
             Select(power_5).select_by_value('0')  # 0 自动
             time.sleep(0.5)
             channel_5 = rftemplate.selelement_byName(rftemplate.channel_5)
             Select(channel_5).select_by_value('36')
             time.sleep(0.2)
             Select(channel_5).select_by_value('40')
             time.sleep(0.2)
             Select(channel_5).select_by_value('44')
             time.sleep(0.2)
             Select(channel_5).select_by_value('48')
             time.sleep(0.2)
             Select(channel_5).select_by_value('149')
             time.sleep(0.2)
             Select(channel_5).select_by_value('153')
             time.sleep(0.2)
             Select(channel_5).select_by_value('157')
             time.sleep(0.2)
             Select(channel_5).select_by_value('161')
             time.sleep(0.2)
             Select(channel_5).select_by_value('165')
             time.sleep(0.2)
             Select(channel_5).select_by_value('0')  # 0 自动
             time.sleep(0.2)
             #高级选项
             SGI_5 = str(
                 rftemplate.getAttribute_byXpath(rftemplate.SGI5s,
                                                 'checked'))
             self.assertEqual(SGI_5, 'true', msg='5G短间隔 默认未开启')
             rftemplate.click_SGI5c()
             wmm_5 = str(
                 rftemplate.getAttribute_byXpath(rftemplate.wmm5s,
                                                 'checked'))
             self.assertEqual(wmm_5, 'true', msg='5G wmm 默认未开启')
             rftemplate.click_wmm5c()
             preamble_5 = str(
                 rftemplate.getAttribute_byXpath(rftemplate.preamble5s,
                                                 'checked'))
             self.assertEqual(preamble_5, 'true', msg='5G 短前导码 默认未开启')
             rftemplate.click_preambles5c()
             rftemplate.input_BeaconPeriod5('200')  # 信标间隔
             time.sleep(0.2)
     else:
         logger.info(u'参数不支持AP管理')
         try:
             self.driver.implicitly_wait(2)
             rftemplate.click_wirelessExtension()
             time.sleep(0.5)
             rftemplate.click_rfTemplate()
             time.sleep(1)
         except AttributeError or NoSuchElementException:
             logger.info(u'软件不支持无线扩展/射频模板,与参数表相符')
         else:
             CapPic(self.driver)
             logger.info(u'软件支持无线扩展/射频模板,与参数表不符')
             raise Exception(u'软件支持无线扩展/射频模板,与参数表不符')
     self.driver.quit()
     logger.info('test_003_Template passed')
Ejemplo n.º 29
0
    def test_001_APconfig(self):
        u'''AP配置管理'''
        wirelessTipsA = getAssertText('wirelessTipsA')
        OnlineA = getAssertText('OnlineA')
        Support5GAP = getweb('Support5GAP')  #环境中支持5G的AP
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        # 先进入网络名称 判断无线扩展是否打开
        netname = netNamePage(self.driver, self.url)
        # print(Support)
        if str(Support).isdigit():  #判断字符串是否为数字
            logger.info(u'参数支持AP管理')
            try:
                self.driver.implicitly_wait(2)
                netname.click_wirelessExtension()
                time.sleep(0.5)
                netname.click_netName()
                time.sleep(1)
            except AttributeError or NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'软件不支持无线扩展/网络名称,与参数表不符')
                raise Exception(u'软件不支持无线扩展/网络名称,与参数表不符')
            else:
                logger.info(u'软件支持无线扩展,与参数表相符')
                self.driver.implicitly_wait(10)
                checkOpen = str(
                    netname.getAttribute_byId(netname.checkOpens, 'checktype'))
                ManageProtocols = str(
                    netname.getAttribute_byId(netname.ManageProtocolss,
                                              'checktype'))

                if checkOpen == '0':  # 0为关闭,1打开
                    tips = netname.getText_byClass(netname.u_cfm_boxT)
                    time.sleep(1)
                    self.assertIn(wirelessTipsA, tips, msg='提示信息有误')
                    netname.click_ok()  # 点确认开启
                    time.sleep(30)  #等AP上线 时间久一点
                else:
                    time.sleep(5)  # 002中打开 等待时间稍短一些
                if ManageProtocols == '0':  # 0为关闭,1打开
                    netname.click_ManageProtocols()  # 开启
                    time.sleep(10)  #等v1AP上线
                # 断言 开关打开
                checkOpen = str(
                    netname.getAttribute_byId(netname.checkOpens, 'checktype'))
                self.assertEqual(checkOpen, '1', msg='无线扩展默认未打开')  # 0关闭,1打开
                ManageProtocols = str(
                    netname.getAttribute_byId(netname.ManageProtocolss,
                                              'checktype'))
                self.assertEqual(ManageProtocols, '1', msg='兼容模式未打开')
                #进入设备管理
                device = deviceMgmtPage(self.driver, self.url)
                device.click_deviceMgmt()
                time.sleep(1)
                #判断AP已正常上线
                x = 0
                while x < 120:
                    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无线接口')

                #需选择一个同时支持2.4G 5G的AP 并搜索
                device.input_search(Support5GAP)
                device.click_searchB()
                time.sleep(1)
                device.click_list_name1()
                time.sleep(0.5)
                device.input_list_namein1('1')
                time.sleep(0.5)
                device.find_list_nameS1()
                #2.4G 信道
                device.click_list_channel1c()
                time.sleep(0.5)
                select_2 = device.selelement_byXpath(device.selchannel2_1)
                Select(select_2).select_by_value('1')
                time.sleep(0.2)
                Select(select_2).select_by_value('2')
                time.sleep(0.2)
                Select(select_2).select_by_value('3')
                time.sleep(0.2)
                Select(select_2).select_by_value('4')
                time.sleep(0.2)
                Select(select_2).select_by_value('5')
                time.sleep(0.2)
                Select(select_2).select_by_value('6')
                time.sleep(0.2)
                Select(select_2).select_by_value('7')
                time.sleep(0.2)
                Select(select_2).select_by_value('8')
                time.sleep(0.2)
                Select(select_2).select_by_value('9')
                time.sleep(0.2)
                Select(select_2).select_by_value('10')
                time.sleep(0.2)
                Select(select_2).select_by_value('11')
                time.sleep(0.2)
                Select(select_2).select_by_value('auto')
                time.sleep(0.2)
                device.find_selchannel2S_1()
                #5G
                device.click_list_channel51c()
                time.sleep(0.5)
                select_5 = device.selelement_byXpath(device.selchannel5_1)
                Select(select_5).select_by_value('36')
                time.sleep(0.2)
                Select(select_5).select_by_value('40')
                time.sleep(0.2)
                Select(select_5).select_by_value('44')
                time.sleep(0.2)
                Select(select_5).select_by_value('48')
                time.sleep(0.2)
                Select(select_5).select_by_value('149')
                time.sleep(0.2)
                Select(select_5).select_by_value('153')
                time.sleep(0.2)
                Select(select_5).select_by_value('157')
                time.sleep(0.2)
                Select(select_5).select_by_value('161')
                time.sleep(0.2)
                Select(select_5).select_by_value('165')
                time.sleep(0.2)
                Select(select_5).select_by_value('auto')
                time.sleep(0.2)
                device.find_selchannel5S_1()
                #漫游阈值
                device.click_deviceMgmt()
                time.sleep(1)
                device.click_list_mangement1()
                time.sleep(2)
                device.click_modifyPw()  #修改密码
                time.sleep(0.2)
                device.click_roamingSet()
                time.sleep(0.5)
                # rpaming_en_2G = str(device.getAttribute_byXpath(device.roaming_cs,'checked'))
                # self.assertEqual(rpaming_en_2G,'true',msg='2.4G漫游阈值 默认未关闭')
                device.click_roaming_en()
                time.sleep(0.5)
                device.input_roaming_th('-80')
                time.sleep(0.2)
                # rpaming_en_5G = str(device.getAttribute_byXpath(device.roaming_c5s,'checked'))
                # self.assertEqual(rpaming_en_5G, 'true', msg='5G漫游阈值 默认未关闭')
                device.click_roaming_en5()
                time.sleep(0.5)
                device.input_roaming_th5('-80')
                time.sleep(0.2)
                device.click_modal_hide()
                time.sleep(1)
                #重启
                device.find_list_reboot1()
                #批量管理
                device.click_list_sel1()
                device.click_BatchManagement()
                time.sleep(2)
                #射频模板
                spmb = device.selelement_byName(device.spmb)
                Select(spmb).select_by_value('default2')
                time.sleep(0.2)
                Select(spmb).select_by_value('default1')
                time.sleep(0.2)
                Select(spmb).select_by_value('default3')
                time.sleep(0.2)
                #网络名称
                device.click_ssidM()
                time.sleep(1)
                device.click_list_selwn1()
                device.click_selall_w()
                device.find_sendToApM()
                #系统设置
                device.click_Syssetup()
                time.sleep(1)
                device.click_TaskS_En()  #计划任务
                time.sleep(0.2)
                device.click_TaskS_C()
                time.sleep(0.2)
                device.click_sleepMode_En()  # 睡眠模式
                time.sleep(0.2)
                device.click_sleepMode_C()
                time.sleep(0.2)
                # 配置重启
                device.click_configreboot()
                time.sleep(0.5)
                device.find_restart()
                device.find_factory_reset()
                device.click_close()
                time.sleep(0.5)
                #备份配置
                device.click_backupconfig()
                time.sleep(1)
                device.find_allDelete()
                device.find_backup()
                device.find_uploadBackup()
                #软件升级
                apsoftware = APSoftwarePage(self.driver, self.url)
                apsoftware.click_APsoftware()
                time.sleep(1)
                apsoftware.find_checkUpdata()
                apsoftware.find_upData()
                apsoftware.find_upDataLocal()
        else:
            logger.info(u'参数不支持AP管理')
            try:
                self.driver.implicitly_wait(2)
                netname.click_wirelessExtension()
                time.sleep(0.5)
                netname.click_netName()
                time.sleep(1)
            except AttributeError or NoSuchElementException:
                logger.info(u'软件不支持无线扩展,与参数表相符')
            else:
                CapPic(self.driver)
                logger.info(u'软件支持无线扩展,与参数表不符')
                raise Exception(u'软件支持无线扩展,与参数表不符')
        self.driver.quit()
        logger.info('test_001_APconfig passed')
Ejemplo n.º 30
0
    def test_002_SSIDconfig(self):
        u'''网络名称设置&加密方式'''
        APnumP = getParameter('APnumP')
        Support = getExcelValue(APnumP)
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        if str(Support).isdigit():  #判断字符串是否为数字
            logger.info(u'参数支持AP管理')
            wirelessTipsA = getAssertText('wirelessTipsA')
            vlanPortP = getParameter('vlanPortP')
            Support = getExcelValue(vlanPortP)
            if Support == '√':  # 支持vlan接口
                logger.info(u'参数表支持vlan接口')
                # 进入网络配置-内网配置 配置vlan接口
                lanpage = NetworkConfig_LANpage(self.driver, self.url)
                lanpage.click_NetworkConfig()
                time.sleep(0.5)
                lanpage.click_LANconfig()
                time.sleep(1)
                #vlan 1000
                lanpage.click_add()
                time.sleep(1)
                lanpage.input_lanIpName('1000')
                lanpage.input_lanIp('192.168.10.1')
                lanpage.input_lanNetmask('255.255.255.0')
                selsxjk = lanpage.selelement_byName(lanpage.selsxjk)
                Select(selsxjk).select_by_value('vlanid')
                time.sleep(1)
                lanpage.input_dhcpVid('1000')
                lanpage.click_save()
                time.sleep(1)
                # vlan 1999
                lanpage.click_add()
                time.sleep(1)
                lanpage.input_lanIpName('1999')
                lanpage.input_lanIp('192.168.100.1')
                lanpage.input_lanNetmask('255.255.255.0')
                selsxjk = lanpage.selelement_byName(lanpage.selsxjk)
                Select(selsxjk).select_by_value('vlanid')
                time.sleep(1)
                lanpage.input_dhcpVid('1999')
                lanpage.click_save()
                time.sleep(1)
                #断言
                list_name2 = str(lanpage.getText_byXpath(lanpage.list_name2))
                list_name3 = str(lanpage.getText_byXpath(lanpage.list_name3))
                list_ip2 = str(lanpage.getText_byXpath(lanpage.list_ip2))
                list_ip3 = str(lanpage.getText_byXpath(lanpage.list_ip3))
                list_vlanid2 = str(
                    lanpage.getText_byXpath(lanpage.list_vlanid2))
                list_vlanid3 = str(
                    lanpage.getText_byXpath(lanpage.list_vlanid3))
                self.assertEqual(list_name2, '1000', msg='vlan1000名称与设置的不一致')
                self.assertEqual(list_name3, '1999', msg='vlan1999名称与设置的不一致')
                self.assertEqual(list_ip2,
                                 '192.168.10.1',
                                 msg='vlan1000IP与设置的不一致')
                self.assertEqual(list_ip3,
                                 '192.168.100.1',
                                 msg='vlan1000IP与设置的不一致')
                self.assertEqual(list_vlanid2,
                                 '1000',
                                 msg='vlan1000 ID与设置的不一致')
                self.assertEqual(list_vlanid3,
                                 '1999',
                                 msg='vlan1000 ID与设置的不一致')
                #配置dhcp
                dhcppage = DHCPserverpage(self.driver, self.url)
                #1000
                dhcppage.click_DHCPserver()
                time.sleep(1)
                dhcppage.click_addpool()
                time.sleep(1)
                dhcppage.input_poolName('1000')
                seldhcppool = dhcppage.selelement_byName(dhcppage.poolVid)
                Select(seldhcppool).select_by_value('VIF1000')
                time.sleep(1)
                dhcppage.click_save()
                time.sleep(1)
                # 1999
                dhcppage.click_DHCPserver()
                time.sleep(1)
                dhcppage.click_addpool()
                time.sleep(1)
                dhcppage.input_poolName('1999')
                seldhcppool = dhcppage.selelement_byName(dhcppage.poolVid)
                Select(seldhcppool).select_by_value('VIF1999')
                time.sleep(1)
                dhcppage.click_save()
                time.sleep(1)
                # 断言
                list_name2 = str(dhcppage.getText_byXpath(dhcppage.list_name2))
                list_name3 = str(dhcppage.getText_byXpath(dhcppage.list_name3))
                list_int2 = str(dhcppage.getText_byXpath(dhcppage.list_int2))
                list_int3 = str(dhcppage.getText_byXpath(dhcppage.list_int3))
                self.assertEqual(list_name2, '1000', msg='pool1000名称与设置的不一致')
                self.assertEqual(list_name3, '1999', msg='pool1999名称与设置的不一致')
                self.assertEqual(list_int2, '1000', msg='pool1000IP与设置的不一致')
                self.assertEqual(list_int3, '1999', msg='pool1000IP与设置的不一致')

            # 配置网络名称
            netname = netNamePage(self.driver, self.url)
            try:
                self.driver.implicitly_wait(2)
                netname.click_wirelessExtension()
                time.sleep(0.5)
                #网络名称页面的提示
                netname.click_netName()
            except AttributeError or NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'软件不支持无线扩展/网络名称,与参数表不符')
                raise Exception(u'软件不支持无线扩展/网络名称,与参数表不符')
            else:
                self.driver.implicitly_wait(10)
                time.sleep(1)
                checkOpen = str(
                    netname.getAttribute_byId(netname.checkOpens, 'checktype'))
                if checkOpen == '0':  # 0为关闭,1打开
                    tips = netname.getText_byClass(netname.u_cfm_boxT)
                    time.sleep(1)
                    self.assertIn(wirelessTipsA, tips, msg='提示信息有误')
                    netname.click_ok()  # 点确认开启
                    time.sleep(3)
                else:
                    raise Exception('无线扩展默认未关闭')
                # 断言 开关打开
                checkOpen = str(
                    netname.getAttribute_byId(netname.checkOpens, 'checktype'))
                self.assertEqual(checkOpen, '1', msg='无线扩展默认未关闭')  # 0关闭,1打开
                # 确认兼容模式按钮默认关闭
                ManageProtocols = str(
                    netname.getAttribute_byId(netname.ManageProtocolss,
                                              'checktype'))
                self.assertEqual(ManageProtocols, '0',
                                 msg='兼容模式默认未关闭')  # 0关闭,1打开
                # 打开兼容模式
                netname.click_ManageProtocols()
                time.sleep(5)
                ManageProtocols = str(
                    netname.getAttribute_byId(netname.ManageProtocolss,
                                              'checktype'))
                self.assertEqual(ManageProtocols, '1',
                                 msg='兼容模式未打开')  # 0关闭,1打开

                #判断自动下发是否开启
                Auto = str(
                    netname.getAttribute_byXpath(netname.list_autosend1,
                                                 'checked'))
                self.assertEqual(str(Auto), 'true', msg='默认自动下发未开启')
                # 编辑默认ssid
                netname.click_list_edit1()
                time.sleep(1)
                netname.input_ssid('ssid_1中')
                netname.click_next_tab()
                time.sleep(1)
                selencryType = netname.selelement_byName(netname.encryType)
                Select(selencryType).select_by_value(
                    '1')  # 0不加密 3 WPA-PSK/WPA2-PSK
                time.sleep(0.3)
                Select(selencryType).select_by_value('0')
                time.sleep(0.3)
                Select(selencryType).select_by_value('2')
                time.sleep(0.3)
                Select(selencryType).select_by_value('3')
                time.sleep(0.5)
                netname.input_pskPsswd('12345678')
                netname.click_next_tab()
                time.sleep(0.5)
                netname.click_sharelimit()  # 共享
                netname.input_txBand('1000')
                netname.input_rxBand('1000')
                netname.click_save()
                time.sleep(1)
                list_ssid1 = str(netname.getText_byXpath(netname.list_ssid1))
                self.assertEqual(list_ssid1, 'ssid_1中', msg='ssid1 与设置不一致')

                # 新增2Gssid
                netname.click_add()
                time.sleep(1)
                netname.input_zoneName('2G')
                netname.input_ssid('2.4Gz中')
                netname.click_cli_5g()  # 默认全选,点5G=勾掉,剩下2.4G
                if Support == '√':  # 支持vlan接口
                    selvlanId = netname.selelement_byName(
                        netname.vlanId)  # 选vlan接口
                    Select(selvlanId).select_by_value('1000')
                time.sleep(1)
                netname.click_gjxx()  # 点开高级选项
                time.sleep(0.5)
                netname.click_broadcastEn()  # 隐藏ssid
                netname.click_isolateEn()  # 无线客户端隔离
                time.sleep(0.5)
                netname.click_next_tab()
                time.sleep(1)
                selencryType = netname.selelement_byName(netname.encryType)
                Select(selencryType).select_by_value(
                    '3')  # 0不加密 3 WPA-PSK/WPA2-PSK
                time.sleep(1)
                netname.input_pskPsswd('12345678')
                netname.click_next_tab()
                time.sleep(0.5)
                netname.input_txBand('1000')
                netname.input_rxBand('1000')
                netname.click_save()
                time.sleep(2)
                # 断言 开关打开
                list_ssid2 = str(netname.getText_byXpath(netname.list_ssid2))
                self.assertEqual(list_ssid2, '2.4Gz中', msg='ssid2 与设置不一致')

                # 新增5Gssid
                netname.click_add()
                time.sleep(1)
                netname.input_zoneName('5G')
                netname.input_ssid('5Gz中')
                selSSIDmode = netname.selelement_byName(netname.encodeType)
                Select(selSSIDmode).select_by_value('0')  #0电脑优先 1手机优先
                time.sleep(1)
                netname.click_cli_2g()  # 默认全选,点2G=勾掉,剩下5G
                if Support == '√':  # 支持vlan接口
                    selvlanId = netname.selelement_byName(
                        netname.vlanId)  # 选vlan接口
                    Select(selvlanId).select_by_value('1999')
                time.sleep(1)
                netname.click_gjxx()  # 点开高级选项
                time.sleep(0.5)
                netname.click_broadcastEn()  # 隐藏ssid
                netname.click_isolateEn()  # 无线客户端隔离
                time.sleep(0.5)
                netname.click_next_tab()
                time.sleep(1)
                selencryType = netname.selelement_byName(netname.encryType)
                Select(selencryType).select_by_value(
                    '3')  # 0不加密 3 WPA-PSK/WPA2-PSK
                time.sleep(1)
                netname.input_pskPsswd('12345678')
                netname.click_next_tab()
                time.sleep(0.5)
                netname.input_txBand('1000')
                netname.input_rxBand('1000')
                netname.click_save()
                time.sleep(1)
                list_ssid3 = str(netname.getText_byXpath(netname.list_ssid3))
                self.assertEqual(list_ssid3, '5Gz中', msg='ssid3 与设置不一致')

                # 新增默认接口ssid
                netname.click_add()
                time.sleep(1)
                netname.input_zoneName('all')
                netname.input_ssid('ssid_all中')
                netname.click_next_tab()
                time.sleep(0.5)
                netname.click_next_tab()
                time.sleep(0.5)
                netname.click_save()
                time.sleep(1)
                # 断言
                list_ssid4 = str(netname.getText_byXpath(netname.list_ssid4))
                self.assertEqual(list_ssid4, 'ssid_all中', msg='ssid4 与设置不一致')

                #再新建提示保存成功(ssid数量后续版本做了调整)
                netname.click_add()
                time.sleep(1)
                netname.input_zoneName('5')
                netname.input_ssid('5')
                netname.click_next_tab()
                time.sleep(0.5)
                netname.click_next_tab()
                time.sleep(0.5)
                netname.click_save()
                time.sleep(1)
                # 断言 开关打开
                list_ssid5 = str(netname.getText_byXpath(netname.list_ssid5))
                self.assertEqual(list_ssid5, '5', msg='ssid5 与设置不一致')
                print('网络名称设置 验证通过')

                #删除ssid
                netname.click_selall()
                time.sleep(0.2)
                netname.click_sellist1()
                time.sleep(0.2)
                netname.click_delete()
                time.sleep(2)
                netname.click_ok()
                time.sleep(1)
                if Support == '√':  # 支持vlan接口
                    # 删除dhcp
                    dhcppage = DHCPserverpage(self.driver, self.url)
                    dhcppage.click_NetworkConfig()
                    time.sleep(0.5)
                    dhcppage.click_DHCPserver()
                    time.sleep(0.5)
                    dhcppage.click_DHCPserver()
                    time.sleep(1)
                    dhcppage.click_list_delpool2()
                    time.sleep(1)
                    dhcppage.click_ok()
                    time.sleep(1)
                    dhcppage.click_list_delpool2()
                    time.sleep(1)
                    dhcppage.click_ok()
                    time.sleep(1)
                    # 删除vlan接口
                    lanpage = NetworkConfig_LANpage(self.driver, self.url)
                    lanpage.click_LANconfig()
                    time.sleep(1)
                    lanpage.click_allsel()
                    time.sleep(1)
                    lanpage.click_delete()
                    time.sleep(1)
                    lanpage.click_ok()
                    time.sleep(1)
        else:
            logger.info(u'参数不支持AP管理')
            try:
                netname = netNamePage(self.driver, self.url)
                self.driver.implicitly_wait(2)
                netname.click_wirelessExtension()
                time.sleep(0.5)
                netname.click_netName()
                time.sleep(1)
            except AttributeError or NoSuchElementException:
                logger.info(u'软件不支持无线扩展,与参数表相符')
            else:
                CapPic(self.driver)
                logger.info(u'软件支持无线扩展,与参数表不符')
                raise Exception(u'软件支持无线扩展,与参数表不符')

        self.driver.quit()
        logger.info('test_002_SSIDconfig passed')