def test_003_Statistics(self):
        u'''统计:用户流量统计、应用流量统计、端口流量统计、VPN流量统计'''
        sysStatic1A = getAssertText('sysStatic1A')
        sysStatic2A = getAssertText('sysStatic2A')
        sysStatic3A = getAssertText('sysStatic3A')
        sysStatic4A = getAssertText('sysStatic4A')
        sysStatic5A = getAssertText('sysStatic5A')
        sysstatic = sysStaticPage(self.driver, self.url)
        sysstatic.click_systemWatch()
        time.sleep(0.5)
        sysstatic.click_sysStatic()
        time.sleep(1)

        tips1 = str(sysstatic.getText_byXpath(sysstatic.tips1))
        self.assertEqual(tips1, sysStatic1A, msg='带宽 表名不一致')
        tips2 = str(sysstatic.getText_byXpath(sysstatic.tips2))
        self.assertEqual(tips2, sysStatic2A, msg='系统负载 表名不一致')
        tips3 = str(sysstatic.getText_byXpath(sysstatic.tips3))
        self.assertEqual(tips3, sysStatic3A, msg='今日应用流量排名 表名不一致')
        tips4 = str(sysstatic.getText_byXpath(sysstatic.tips4))
        self.assertEqual(tips4, sysStatic4A, msg='今日用户网络流量排名 表名不一致')
        L2tpP = getParameter('L2tpP')
        pptpP = getParameter('pptpP')
        SupportL = getExcelValue(L2tpP)
        SupportP = getExcelValue(pptpP)
        ipsecP = getParameter('ipsecP')
        SupportI = getExcelValue(ipsecP)
        if (SupportL or SupportP or SupportI) == '√':
            logger.info(u'参数支持VPN')
            tips5 = str(sysstatic.getText_byXpath(sysstatic.tips5))
            self.assertEqual(tips5, sysStatic5A, msg='VPN状态 表名不一致')

        self.driver.quit()
        logger.info('test_003_Statistics passed')
 def test_003_WEBUI(self):
     u'''WEB UI超时/登录错误次数/惩罚时间'''
     sessionLifep = getParameter('sessionLifep')
     passwdErrNumP = getParameter('passwdErrNumP')
     loginSpanP = getParameter('loginSpanP')
     print(getExcelValue(sessionLifep))
     sessionLifep = getExcelValue(sessionLifep)[:2]
     passwdErrNumP = str(getExcelValue(passwdErrNumP))[:2]
     loginSpanP = getExcelValue(loginSpanP)[:2]
     accessStrategy = ManagementPolicyPage(self.driver, self.url)
     accessStrategy.click_AccessPolicy()
     time.sleep(1)
     sessionLife = str(
         accessStrategy.getAttribute_byName(accessStrategy.sessionLife1,
                                            'value'))
     passwdErrNum = str(
         accessStrategy.getAttribute_byName(accessStrategy.passwdErrNum1,
                                            'value'))
     loginSpan = str(
         accessStrategy.getAttribute_byName(accessStrategy.loginSpan1,
                                            'value'))
     self.assertEqual(sessionLife, sessionLifep, msg='WEBUI超时默认值与参数不符')
     self.assertEqual(passwdErrNum, passwdErrNumP, msg='登录错误次数值与参数不符')
     self.assertEqual(loginSpan, loginSpanP, msg='惩罚时间默认值与参数不符')
     self.driver.quit()
     logger.info('test_003_WEBUI passed')
Exemple #3
0
def getWanNum():

    portTateWANp = getParameter('portTateWANp')
    portTateWANp = getExcelValue(parameter=portTateWANp)

    if '默认' in portTateWANp:
        if '-' in portTateWANp:
            wanNum1 = int(portTateWANp.split(r'-')[0])
            wanNum2 = int(portTateWANp.split(r'-')[1][0])
            if wanNum1 > wanNum2:
                wanNum = wanNum1
            else:
                wanNum = wanNum2
        elif '/' in portTateWANp:
            wanNum1 = int(portTateWANp.split(r'/')[0])
            wanNum2 = int(portTateWANp.split(r'/')[1][0])
            if wanNum1 > wanNum2:
                wanNum = wanNum1
            else:
                wanNum = wanNum2
    else:
        wanNum = int(portTateWANp[0])

    return wanNum


# print(getWanNum())
    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')
    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')
    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')
Exemple #7
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_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')
Exemple #9
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')
Exemple #10
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')
    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')
Exemple #12
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')
Exemple #13
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')
Exemple #14
0
            sysConfig_000_Getready.Getready('test_001_ntpClockServer'))
        # 系统管理 (先测试006 升级 再测试008 配置备份恢复 然后其他)
        suite.addTest(
            sysConfig_006_softwareUpdata.softwareUpdate('test_errorSoftware'))
        suite.addTest(
            sysConfig_006_softwareUpdata.softwareUpdate('test_oldSoftware%s' %
                                                        testCount))
        suite.addTest(
            sysConfig_006_softwareUpdata.softwareUpdate('test_newSoftware%s' %
                                                        testCount))

        #附加测试 60023 1 ;动激活保修期     2;MTK确认库版本升级  3
        suite.addTest(AdditionalTest.AdditionalTest('test_001_closeWAN60023'))
        suite.addTest(AdditionalTest.AdditionalTest('test_002_uttWaitSerch'))
        APnumP = getParameter('APnumP')
        Support = getExcelValue(APnumP)
        if Support != None and CPUmodel == "MTK":  #以访有些参数表里未包含ac相关数据
            suite.addTest(
                AdditionalTest.AdditionalTest('test_003_MTKlibuClibc'))
        if CPUmodel == 'X86':
            suite.addTest(
                AdditionalTest.AdditionalTest('test_004_X86_CONFIG4KSTACKS'))
        suite.addTest(
            AdditionalTest.AdditionalTest(
                'test_005_cloundDownloadFile'))  #目前3.2.2发布软件均支持上云
        #配置向导
        suite.addTest(ConfigGuide.guide('test_001_dhcp'))
        suite.addTest(ConfigGuide.guide('test_002_static'))
        suite.addTest(ConfigGuide.guide('test_003_pppoe'))
        #系统状态
        suite.addTest(
Exemple #15
0
#初始化交换机/恢复出厂路由器
suite.addTest(swconfig('test_initSwPort'))
suite.addTest(initTestPC('test_initTestPC'))
suite.addTest(sysConfig_000_Getready.Getready('test_resertFirstLogin'))
suite.addTest(sysConfig_000_Getready.Getready('test_001_ntpClockServer'))
#软件升级
suite.addTest(
    sysConfig_006_softwareUpdata.softwareUpdate('test_errorSoftware'))
suite.addTest(sysConfig_006_softwareUpdata.softwareUpdate('test_oldSoftware1'))
suite.addTest(sysConfig_006_softwareUpdata.softwareUpdate('test_newSoftware1'))

#附加测试 60023 1 ;动激活保修期     2;MTK确认库版本升级  3
suite.addTest(AdditionalTest.AdditionalTest('test_001_closeWAN60023'))
suite.addTest(AdditionalTest.AdditionalTest('test_002_uttWaitSerch'))
APnumP = getParameter('APnumP')
Support = getExcelValue(APnumP)
if Support != None and CPUmodel == "MTK":  #以访有些参数表里未包含ac相关数据
    suite.addTest(AdditionalTest.AdditionalTest('test_003_MTKlibuClibc'))
if CPUmodel == 'X86':
    suite.addTest(AdditionalTest.AdditionalTest('test_004_X86_CONFIG4KSTACKS'))
suite.addTest(AdditionalTest.AdditionalTest(
    'test_005_cloundDownloadFile'))  # 目前3.2.2发布软件均支持上云
#配置向导
suite.addTest(ConfigGuide.guide('test_001_dhcp'))
suite.addTest(ConfigGuide.guide('test_002_static'))
suite.addTest(ConfigGuide.guide('test_003_pppoe'))
#系统状态
suite.addTest(SysMonitor_001_sysStatic.sysStatic('test_001_Modelcorrelation'))
suite.addTest(SysMonitor_001_sysStatic.sysStatic('test_001_AppFlowRanking'))
suite.addTest(SysMonitor_001_sysStatic.sysStatic('test_002_UserFlowRanking'))
ipsecP = getParameter('ipsecP')
import time
import unittest
import os.path
from selenium import webdriver
from common.LogGen import LogGen
from common.CapPic import CapPic
from common.ReadConfig import getAssertText, getParameter
from common.GetExcelValue import getExcelValue
from common.loginRoute import login
from common.organization_edit import organization_group
from pages.Organization_003_userAuthpage import Organization_userAuthPage
logger = LogGen(Logger='Members_010_remoteAuth').getlog()
batpath = os.path.dirname(os.path.abspath('.')) + '/script/'
remoteAuthP = getParameter('remoteAuthP')
Support = getExcelValue(remoteAuthP)


class remoteAuth(unittest.TestCase):
    def setUp(self):
        logger.info('setUp start')
        # pass

    def test_001_openRemoteAuth(self):
        u'''开启远程认证'''
        if Support == '√':
            logger.info(u'参数支持远程认证')
            organization_group.import_empty_template(self)  # 判断组织架构是否有其他组 有则清空

            # 打开用户管理 - 用户认证
            login.loginWeb(self)  # admin账号登录
 def test_003_IPSec_binding_pptp(self):
     u'''IPSec可以绑定在pptp虚接口(某些设备可能不支持)'''
     nodata = getAssertText('nodata')
     ibindingPp = getParameter('ibindingPp')
     Support = getExcelValue(ibindingPp)
     pptpL2tp = pptpL2tpPage(self.driver, self.url)
     #新增pptp
     if Support == '√':
         logger.info(u'参数支持IPSec可以绑定在pptp虚接口')
         try:
             self.driver.implicitly_wait(2)
             pptpL2tp.click_VPNConfig()
             time.sleep(0.5)
             pptpL2tp.click_pptpL2tp()
         except NoSuchElementException:
             CapPic(self.driver)
             logger.info(
                 u'不支持VPN配置或不支持pptp/l2tp 则不能支持ipsec绑定pptp接口,与参数表不相符')
             raise Exception(
                 '不支持VPN配置或不支持pptp/l2tp 则不能支持ipsec绑定pptp接口,与参数表不相符')
         else:
             time.sleep(1)
             # 操作删除 以访已有规则
             pptpL2tp.click_selall()
             time.sleep(0.2)
             pptpL2tp.click_delall()
             time.sleep(2)
             try:
                 self.driver.implicitly_wait(2)
                 pptpL2tp.find_ok()
             except NoSuchElementException:
                 try:
                     pptpL2tp.find_tipsshowin()
                     time.sleep(1)
                 except NoSuchElementException:
                     pass
             else:
                 time.sleep(1)
                 print('VPN隧道列表为空')
             pptpL2tp.click_add()
             time.sleep(1)
             pptpL2tp.click_workMode1()  # 拨入
             pptpL2tp.click_workModepptp()
             pptpL2tp.input_TunNames('test1')
             seluserType = pptpL2tp.selelement_byName(pptpL2tp.seluserType)
             Select(seluserType).select_by_value('mobile')  # 移动用户
             time.sleep(0.5)
             pptpL2tp.input_userNames('test1')
             pptpL2tp.input_password('test1')
             pptpL2tp.click_save()
             time.sleep(1)
             try:
                 self.driver.implicitly_wait(2)
                 #ipsec调用pptp接口
                 ipsecpage = IPsecPage(self.driver, self.url)
                 ipsecpage.click_IPSec()
             except NoSuchElementException:
                 CapPic(self.driver)
                 logger.info(u'不支持IPsec,与参数表不相符')
                 raise Exception('不支持IPsec,与参数表不相符')
             else:
                 logger.info(u'支持IPsec,与参数表相符')
                 time.sleep(1)
                 ipsecpage.click_add()
                 time.sleep(1)
                 sellocalBing = ipsecpage.selelement_byName(
                     ipsecpage.localBind)
                 Select(sellocalBing).select_by_value('PPTPS_test1')
                 time.sleep(0.3)
                 #删除PPTP
                 pptpL2tp = pptpL2tpPage(self.driver, self.url)
                 pptpL2tp.click_pptpL2tp()
                 time.sleep(1)
                 pptpL2tp.click_delete1()
                 time.sleep(1)
                 pptpL2tp.click_ok()
                 time.sleep(1)
                 listnodata = str(
                     pptpL2tp.getText_byXpath(pptpL2tp.list_nodata))
                 self.assertEqual(listnodata, nodata, msg='删除失败')
     elif Support == '×':
         logger.info(u'参数不支持IPSec可以绑定在pptp虚接口')
         try:
             self.driver.implicitly_wait(2)
             pptpL2tp.click_VPNConfig()
             time.sleep(0.5)
             pptpL2tp.click_pptpL2tp()
             time.sleep(0.5)
         except AttributeError:
             logger.info(u'不支持VPN配置或不支持pptp/l2tp 则不能支持ipsec绑定pptp接口,与参数表相符')
         else:
             time.sleep(1)
             # 操作删除 以访已有规则
             pptpL2tp.click_selall()
             time.sleep(0.2)
             pptpL2tp.click_delall()
             time.sleep(2)
             try:
                 self.driver.implicitly_wait(2)
                 pptpL2tp.find_ok()
             except NoSuchElementException:
                 try:
                     pptpL2tp.find_tipsshowin()
                     time.sleep(1)
                 except NoSuchElementException:
                     pass
             else:
                 time.sleep(1)
                 print('VPN隧道列表为空')
             pptpL2tp.click_add()
             time.sleep(1)
             pptpL2tp.click_workMode1()  # 拨入
             pptpL2tp.click_workModepptp()
             pptpL2tp.input_TunNames('test1')
             seluserType = pptpL2tp.selelement_byName(pptpL2tp.seluserType)
             Select(seluserType).select_by_value('mobile')  # 移动用户
             time.sleep(0.5)
             pptpL2tp.input_userNames('test1')
             pptpL2tp.input_password('test1')
             pptpL2tp.click_save()
             time.sleep(1)
             try:
                 self.driver.implicitly_wait(2)
                 # ipsec调用pptp接口
                 ipsecpage = IPsecPage(self.driver, self.url)
                 ipsecpage.click_IPSec()
             except NoSuchElementException:
                 logger.info('不支持ipsec则不支持绑定到pptp接口,与参数表相符')
             else:
                 try:
                     time.sleep(1)
                     ipsecpage.click_add()
                     time.sleep(1)
                     sellocalBing = ipsecpage.selelement_byName(
                         ipsecpage.localBind)
                     Select(sellocalBing).select_by_value('PPTPS_test1')
                 except NoSuchElementException:
                     logger.info('不支持ipsec则不支持绑定到pptp接口,与参数表相符')
                 else:
                     CapPic(self.driver)
                     logger.info(u'支持ipsec则不支持绑定到pptp接口,与参数表不相符')
                     raise Exception('支持ipsec则不支持绑定到pptp接口,与参数表不相符')
     else:
         logger.info(u'参数表读取异常')
         logger.info(u'参数表读取值为:', Support)
         raise Exception(u'参数表读取异常')
     self.driver.quit()
     logger.info('test_003_IPSec_binding_pptp passed')
    def test_001_pptpL2tp(self):
        u'''PPTP/L2TP'''
        L2tpP = getParameter('L2tpP')
        pptpP = getParameter('pptpP')
        SupportL = getExcelValue(L2tpP)
        SupportP = getExcelValue(pptpP)
        pptpL2tp = pptpL2tpPage(self.driver, self.url)
        # print(SupportL,SupportP)
        if SupportL == '√' and SupportP == '√':
            logger.info(u'参数支持PPTP/L2TP')
            try:
                self.driver.implicitly_wait(2)
                pptpL2tp.click_VPNConfig()
            except NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'不支持VPN配置,则不支持pptp/l2tp,与参数表不相符')
                raise Exception('不支持VPN配置,则不支持pptp/l2tp,与参数表不相符')
            else:
                time.sleep(0.5)
                try:
                    self.driver.implicitly_wait(2)
                    pptpL2tp.click_pptpL2tp()
                except NoSuchElementException:
                    CapPic(self.driver)
                    logger.info(u'不支持pptp/l2tp,与参数表不相符')
                    raise Exception('不支持pptp/l2tp,与参数表不相符')
                else:
                    logger.info(u'支持pptp/l2tp,与参数表相符')
                    time.sleep(1)
                    pptpL2tp.click_PPTPGlobalSet()
                    time.sleep(0.5)
                    selauthtypeP = pptpL2tp.selelement_byXpath(
                        pptpL2tp.selauthtypeP)
                    Select(selauthtypeP).select_by_value('PAP')
                    time.sleep(0.2)
                    Select(selauthtypeP).select_by_value('MS-CHAPV2')
                    time.sleep(0.2)
                    Select(selauthtypeP).select_by_value('CHAP')
                    time.sleep(0.2)
                    Select(selauthtypeP).select_by_value('THRIN')
                    time.sleep(0.2)
                    pptpL2tp.click_pptpEncryS()
                    time.sleep(0.2)
                    pptpL2tp.click_l2tpGlobalSet()
                    time.sleep(0.5)
                    selauthtypeL = pptpL2tp.selelement_byXpath(
                        pptpL2tp.selauthtypeL)
                    Select(selauthtypeL).select_by_value('PAP')
                    time.sleep(0.2)
                    Select(selauthtypeL).select_by_value('NONE')
                    time.sleep(0.2)
                    Select(selauthtypeL).select_by_value('CHAP')
                    time.sleep(0.2)
                    Select(selauthtypeL).select_by_value('EITHER')
                    time.sleep(0.2)

                    pptpL2tp.click_Tunnellist()
                    time.sleep(0.5)
                    pptpL2tp.click_add()
                    time.sleep(1)
                    #服务端
                    pptpL2tp.click_workMode1()  #拨入
                    pptpL2tp.click_workModepptp()
                    seluserType = pptpL2tp.selelement_byName(
                        pptpL2tp.seluserType)
                    Select(seluserType).select_by_value('mobile')  #移动用户
                    time.sleep(0.5)
                    pptpL2tp.input_staticIPs('1.2.3.4')  #固定IP地址
                    pptpL2tp.input_LanMac('1')  #硬件特征码
                    Select(seluserType).select_by_value('lantolan')  # LAN到LAN
                    time.sleep(0.5)
                    pptpL2tp.input_staticIPs('1.2.3.4')  # 固定IP地址
                    pptpL2tp.click_workModel2tp()
                    seluserType = pptpL2tp.selelement_byName(
                        pptpL2tp.seluserType)
                    Select(seluserType).select_by_value('mobile')  # 移动用户
                    time.sleep(0.5)
                    Select(seluserType).select_by_value('lantolan')  # LAN到LAN
                    time.sleep(0.5)
                    #客户端
                    pptpL2tp.click_workMode2()  # 拨出
                    time.sleep(0.5)
                    pptpL2tp.click_workModepptp()
                    time.sleep(0.5)
                    pptpL2tp.click_natEn()  #nat模式
                    pptpL2tp.click_pptpEncryC()
                    time.sleep(0.5)
                    selPPTP2AuthType = pptpL2tp.selelement_byName(
                        pptpL2tp.PPTP2AuthType)
                    Select(selPPTP2AuthType).select_by_value('PAP')
                    time.sleep(0.2)
                    Select(selPPTP2AuthType).select_by_value('MS-CHAPV2')
                    time.sleep(0.2)
                    Select(selPPTP2AuthType).select_by_value('CHAP')
                    time.sleep(0.2)
                    Select(selPPTP2AuthType).select_by_value('THRIN')
                    time.sleep(0.2)
                    pptpL2tp.click_workModel2tp()
                    time.sleep(0.5)
                    pptpL2tp.click_natEn()  # nat模式
                    selL2TPAuthTypes = pptpL2tp.selelement_byName(
                        pptpL2tp.L2TPAuthTypes)
                    Select(selL2TPAuthTypes).select_by_value('PAP')
                    time.sleep(0.2)
                    Select(selL2TPAuthTypes).select_by_value('NONE')
                    time.sleep(0.2)
                    Select(selL2TPAuthTypes).select_by_value('CHAP')
                    time.sleep(0.2)
                    Select(selL2TPAuthTypes).select_by_value('EITHER')
                    time.sleep(0.2)
        elif SupportL == '×' and SupportP == '×':
            logger.info(u'参数不支持PPTP/L2TP')
            try:
                self.driver.implicitly_wait(2)
                pptpL2tp.click_VPNConfig()
            except AttributeError:
                logger.info('不支持VPN配置,则不支持pptp/l2tp,与参数表相符')
            else:
                time.sleep(1)
                try:
                    pptpL2tp.click_pptpL2tp()
                except AttributeError:
                    logger.info('不支持pptp/l2tp,与参数表相符')
                else:
                    CapPic(self.driver)
                    logger.info(u'支持pptp/l2tp,与参数表不相符')
                    raise Exception('支持pptp/l2tp,与参数表不相符')
        else:
            logger.info(u'参数表读取异常')
            logger.info(u'参数表读取值为:', SupportL, SupportP)
            raise Exception(u'参数表读取异常')

        self.driver.quit()
        logger.info('test_001_vlanInterface passed')
 def test_002_IPsec(self):
     u'''IPsec(某些设备可能不支持)'''
     ipsecP = getParameter('ipsecP')
     Support = getExcelValue(ipsecP)
     ipsecpage = IPsecPage(self.driver, self.url)
     if Support == '√':
         logger.info(u'参数支持IPsec')
         try:
             self.driver.implicitly_wait(2)
             ipsecpage.click_VPNConfig()
         except NoSuchElementException:
             CapPic(self.driver)
             logger.info(u'不支持VPN配置,则不支持ipsec,与参数表不相符')
             raise Exception('不支持VPN配置,则不支持ipsec,与参数表不相符')
         else:
             time.sleep(0.5)
             try:
                 self.driver.implicitly_wait(2)
                 ipsecpage.click_IPSec()
             except NoSuchElementException:
                 CapPic(self.driver)
                 logger.info(u'不支持ipsec,与参数表不相符')
                 raise Exception('不支持ipsec,与参数表不相符')
             else:
                 logger.info(u'支持ipsec,与参数表相符')
                 time.sleep(1)
                 ipsecpage.click_add()
                 time.sleep(1)
                 #连接方式
                 selconnType = ipsecpage.selelement_byName(
                     ipsecpage.connType)
                 Select(selconnType).select_by_value('2')
                 time.sleep(0.3)
                 Select(selconnType).select_by_value('3')
                 time.sleep(0.3)
                 Select(selconnType).select_by_value('1')
                 time.sleep(0.3)
                 #加密认证算法
                 seltransform = ipsecpage.selelement_byName(
                     ipsecpage.transform)
                 Select(seltransform).select_by_value('100')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('110')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('120')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('210')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('220')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('300')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('400')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('510')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('310')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('320')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('410')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('420')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('510')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('520')
                 time.sleep(0.2)
                 Select(seltransform).select_by_value('200')
                 time.sleep(0.2)
                 ipsecpage.click_highChoosen()
                 time.sleep(1)
                 #协商模式
                 selnegMode = ipsecpage.selelement_byXpath(
                     ipsecpage.negMode)
                 Select(selnegMode).select_by_value('Aggres')
                 time.sleep(0.2)
                 Select(selnegMode).select_by_value('Main')
                 time.sleep(0.2)
                 #加密认证算法1
                 selpolicy = ipsecpage.selelement_byXpath(ipsecpage.policy)
                 Select(selpolicy).select_by_value('213')
                 time.sleep(0.2)
                 Select(selpolicy).select_by_value('222')
                 time.sleep(0.2)
                 Select(selpolicy).select_by_value('223')
                 time.sleep(0.2)
                 Select(selpolicy).select_by_value('112')
                 time.sleep(0.2)
                 Select(selpolicy).select_by_value('113')
                 time.sleep(0.2)
                 Select(selpolicy).select_by_value('122')
                 time.sleep(0.2)
                 Select(selpolicy).select_by_value('123')
                 time.sleep(0.2)
                 Select(selpolicy).select_by_value('212')
                 time.sleep(0.2)
                 ipsecpage.click_anti_replay()
                 ipsecpage.click_dpdEn()
                 ipsecpage.click_nattEn()
                 time.sleep(0.2)
                 ipsecpage.input_HeartbeatInt('30')
                 ipsecpage.input_natPort('500')
                 ipsecpage.input_Keepalive('30')
     elif Support == '×':
         logger.info(u'参数不支持IPsec')
         try:
             self.driver.implicitly_wait(2)
             ipsecpage.click_VPNConfig()
         except AttributeError:
             logger.info('不支持VPN配置,则不支持ipsec,与参数表相符')
         else:
             time.sleep(1)
             try:
                 ipsecpage.click_IPSec()
             except AttributeError:
                 logger.info('不支持ipsec,与参数表相符')
             else:
                 CapPic(self.driver)
                 logger.info(u'支持ipsec,与参数表不相符')
                 raise Exception('支持ipsec,与参数表不相符')
     else:
         logger.info(u'参数表读取异常')
         logger.info(u'参数表读取值为:', Support)
         raise Exception(u'参数表读取异常')
     self.driver.quit()
     logger.info('test_002_IPsec passed')
Exemple #20
0
    def test_002_bindingVPNinterface(self):
        u'''静态路由可绑定PPTP/L2TP接口'''
        nodata = getAssertText('nodata')
        bandingVPNp = getParameter('bandingVPNp')
        Support = getExcelValue(bandingVPNp)

        if Support == '√':
            logger.info(u'参数支持静态路由可绑定PPTP/L2TP接口')
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            pptpl2tp = pptpL2tpPage(self.driver, self.url)
            # 配置PPTP VPN
            pptpl2tp.click_VPNConfig()
            time.sleep(0.5)
            pptpl2tp.click_pptpL2tp()
            time.sleep(1)
            pptpl2tp.click_add()
            time.sleep(1)
            pptpl2tp.input_TunNames('staticRoute')
            pptpl2tp.input_userNames('staticRoute')
            pptpl2tp.input_password('staticRoute')
            pptpl2tp.input_remoteInIp('1.2.3.4')
            pptpl2tp.input_remoteInIPMask('255.255.255.0')
            pptpl2tp.click_save()
            time.sleep(3)
            # 断言
            listtips1 = str(pptpl2tp.getText_byXpath(pptpl2tp.listtips1))
            self.assertEqual(listtips1,
                             'staticRoute',
                             msg='VPN名称不为staticRoute')
            print('PPTP已添加')
            # 配置L2TP VPN
            pptpl2tp.click_add()
            time.sleep(1)
            pptpl2tp.click_l2tpB()
            pptpl2tp.input_TunNames('staticRoute2')
            pptpl2tp.input_userNames('staticRoute2')
            pptpl2tp.input_password('staticRoute2')
            pptpl2tp.input_remoteInIp('4.3.2.1')
            pptpl2tp.input_remoteInIPMask('255.255.255.0')
            pptpl2tp.click_save()
            time.sleep(3)
            # 断言
            listtips2 = str(pptpl2tp.getText_byXpath(pptpl2tp.listtips2))
            self.assertEqual(listtips2,
                             'staticRoute2',
                             msg='VPN名称不为staticRoute2')
            print('L2TP已添加')

            # 修改静态路由 绑定PPTP接口
            routeconfig = RouteConfigPage(self.driver, self.url)
            routeconfig.click_NetworkConfig()
            time.sleep(0.5)
            routeconfig.click_Routeconfig()
            time.sleep(1)
            routeconfig.click_edit()
            time.sleep(1)
            se1Profiles = routeconfig.selelement_byName('Profiles')
            time.sleep(1)
            Select(se1Profiles).select_by_value('(PPTPS)staticRoute')
            time.sleep(1)
            routeconfig.click_save()
            time.sleep(3)
            #断言
            interface = str(
                routeconfig.getText_byXpath(routeconfig.list_Interface))
            self.assertEqual(interface,
                             '(PPTPS)staticRoute',
                             msg='绑定接口不为VPN接口')
            print('静态路由绑定PPTP接口 验证通过')

            # 修改静态路由 绑定L2TP接口
            routeconfig.click_edit()
            time.sleep(1)
            se1Profiles = routeconfig.selelement_byName('Profiles')
            time.sleep(1)
            Select(se1Profiles).select_by_value('(L2TPS)staticRoute2')
            time.sleep(1)
            routeconfig.click_save()
            time.sleep(3)
            # 断言
            interface = str(
                routeconfig.getText_byXpath(routeconfig.list_Interface))
            self.assertEqual(interface,
                             '(L2TPS)staticRoute2',
                             msg='绑定接口不为VPN接口')
            print('静态路由绑定L2TP接口 验证通过')

            #删除静态路由
            routeconfig.click_delete()
            time.sleep(1)
            routeconfig.click_ok()
            time.sleep(2)
            # 断言
            list_tips = str(
                routeconfig.getText_byXpath(routeconfig.list_nodata))
            self.assertEqual(list_tips, nodata, msg='静态路由删除失败')
            print('静态路由已删除')
            #删除两条VPN
            pptpl2tp = pptpL2tpPage(self.driver, self.url)
            pptpl2tp.click_VPNConfig()
            time.sleep(0.5)
            pptpl2tp.click_pptpL2tp()
            time.sleep(1)
            pptpl2tp.click_delete1()
            time.sleep(1)
            pptpl2tp.click_ok()
            time.sleep(2)
            pptpl2tp.click_delete1()
            time.sleep(1)
            pptpl2tp.click_ok()
            time.sleep(3)
            # 断言
            list_nodata = str(pptpl2tp.getText_byXpath(pptpl2tp.list_nodata))
            self.assertEqual(list_nodata, nodata, msg='静态路由删除失败')
            print('VPN已删除')
            self.driver.quit()
        elif Support == '×':
            logger.info(u'参数不支持静态路由可绑定PPTP/L2TP接口')
        logger.info('test_002_bindingVPNinterface passed')
Exemple #21
0
import time
import unittest
import os.path
import telnetlib
from selenium.webdriver.support.select import Select
from selenium.common.exceptions import NoSuchElementException
from common.LogGen import LogGen
from common.CapPic import CapPic
from common.loginRoute import login
from common.ReadConfig import gettelnet,getweb,getParameter
from common.GetExcelValue import getExcelValue
from pages.NetConfig_001_WANpage import NetworkConfig_wanpage
logger = LogGen(Logger = 'NetworkConfig_002_FastForward').getlog()
batpath = os.path.dirname(os.path.abspath('.')) + '/script/'
hwNatP = getExcelValue(getParameter('hwNatP'))
# print('hwNatP:',hwNatP)


hostip = gettelnet('host')
port = gettelnet('port')
username = bytes(getweb('User'), encoding="utf8")
password = bytes(getweb('Passwd'), encoding="utf8")

class PortRate(unittest.TestCase):

    def setUp(self):
        logger.info('setUp start')
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        wanpage = NetworkConfig_wanpage(self.driver,self.url)
Exemple #22
0
    def test_003_bandingInter(self):
        u'''静态路由绑定vpn接口(L2TP/PPTP)'''
        bandingVPNp = getParameter('bandingVPNp')
        nodata = getAssertText('nodata')
        Support = getExcelValue(bandingVPNp)
        if Support == '√':
            logger.info(u'参数支持静态路由可绑定PPTP/L2TP接口')
            vpn = pptpL2tpPage(self.driver,self.url)
            vpn.click_VPNConfig()
            time.sleep(0.5)
            try:
                self.driver.implicitly_wait(2)
                vpn.click_pptpL2tp()
            except AttributeError or NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'软件不支持L2TP/PPTP 静态路由无法绑定vpn接口,与参数表不符')
                raise Exception(u'软件不支持L2TP/PPTP 静态路由无法绑定vpn接口,与参数表不符')
            else:
                self.driver.implicitly_wait(10)
                time.sleep(1)
                #配置 VPN
                # 操作删除 以访已有规则
                vpn.click_selall()
                time.sleep(0.2)
                vpn.click_delall()
                time.sleep(2)
                try:
                    self.driver.implicitly_wait(2)
                    vpn.find_ok()
                except NoSuchElementException:
                    try:
                        vpn.find_tipsshowin()
                        time.sleep(1)
                    except NoSuchElementException:
                        pass
                else:
                    time.sleep(1)
                    print('VPN隧道列表为空')
                vpn.click_add()
                time.sleep(1)
                vpn.input_TunNames('staticRoute')
                vpn.input_userNames('staticRoute')
                vpn.input_password('staticRoute')
                vpn.input_remoteInIp('1.2.3.4')
                vpn.input_remoteInIPMask('255.255.255.0')
                vpn.click_save()
                time.sleep(3)
                listtips1 = str(vpn.getText_byXpath(vpn.listtips1))
                self.assertEqual(listtips1, 'staticRoute', msg='VPN名称不为staticRoute')
                print('PPTP已添加')
                vpn.click_add()
                time.sleep(1)
                vpn.click_l2tpB()
                vpn.input_TunNames('staticRoute2')
                vpn.input_userNames('staticRoute2')
                vpn.input_password('staticRoute2')
                vpn.input_remoteInIp('4.3.2.1')
                vpn.input_remoteInIPMask('255.255.255.0')
                vpn.click_save()
                time.sleep(3)
                listtips2 = str(vpn.getText_byXpath(vpn.listtips2))
                self.assertEqual(listtips2, 'staticRoute2', msg='VPN2名称不为staticRoute2')
                print('L2TP已添加')
                # 修改静态路由 绑定PPTP接口
                routeconfig = RouteConfigPage(self.driver, self.url)
                routeconfig.click_NetworkConfig()
                time.sleep(0.5)
                routeconfig.click_Routeconfig()
                time.sleep(1)
                routeconfig.click_add()
                time.sleep(1)
                selProfiles = routeconfig.selelement_byName(routeconfig.selProfiles)
                time.sleep(1)
                try:
                    self.driver.implicitly_wait(2)
                    Select(selProfiles).select_by_value('(PPTPS)staticRoute')
                    time.sleep(0.5)
                    Select(selProfiles).select_by_value('(L2TPS)staticRoute2')
                except NoSuchElementException:
                    CapPic(self.driver)
                    logger.info(u'静态路由无法绑定vpn接口(L2TP/PPTP)')
                    raise Exception(u'静态路由无法绑定vpn接口(L2TP/PPTP)')
                else:
                    self.driver.implicitly_wait(10)
                    time.sleep(1)
                    routeconfig.click_modalhide()
                    time.sleep(0.5)
                    # 删除两条VPN
                    vpn = pptpL2tpPage(self.driver, self.url)
                    vpn.click_VPNConfig()
                    time.sleep(0.5)
                    vpn.click_pptpL2tp()
                    time.sleep(1)
                    vpn.click_delete1()
                    time.sleep(1)
                    vpn.click_ok()
                    time.sleep(2)
                    vpn.click_delete1()
                    time.sleep(1)
                    vpn.click_ok()
                    time.sleep(3)
                    # 断言
                    list_nodata = str(vpn.getText_byXpath(vpn.list_nodata))
                    self.assertEqual(list_nodata, nodata, msg='静态路由删除失败')
                    print('VPN已删除')
        elif Support == '×':
            logger.info(u'参数不支持静态路由可绑定PPTP/L2TP接口')
            vpn = pptpL2tpPage(self.driver, self.url)
            try:
                self.driver.implicitly_wait(2)
                vpn.click_pptpL2tp()
            except AttributeError or NoSuchElementException:
                logger.info(u'软件不支持L2TP/PPTP 静态路由无法绑定vpn接口,与参数表相符')
            else:
                self.driver.implicitly_wait(10)
                time.sleep(1)
                # 配置 VPN
                # 操作删除 以访已有规则
                vpn.click_selall()
                time.sleep(0.2)
                vpn.click_delall()
                time.sleep(2)
                try:
                    self.driver.implicitly_wait(2)
                    vpn.find_ok()
                except NoSuchElementException:
                    try:
                        vpn.find_tipsshowin()
                        time.sleep(1)
                    except NoSuchElementException:
                        pass
                else:
                    time.sleep(1)
                    print('VPN隧道列表为空')
                vpn.click_add()
                time.sleep(1)
                vpn.input_TunNames('staticRoute')
                vpn.input_userNames('staticRoute')
                vpn.input_password('staticRoute')
                vpn.input_remoteInIp('1.2.3.4')
                vpn.input_remoteInIPMask('255.255.255.0')
                vpn.click_save()
                time.sleep(3)
                listtips1 = str(vpn.getText_byXpath(vpn.listtips1))
                self.assertEqual(listtips1, 'staticRoute', msg='VPN名称不为staticRoute')
                print('PPTP已添加')
                vpn.click_add()
                time.sleep(1)
                vpn.click_l2tpB()
                vpn.input_TunNames('staticRoute2')
                vpn.input_userNames('staticRoute2')
                vpn.input_password('staticRoute2')
                vpn.input_remoteInIp('4.3.2.1')
                vpn.input_remoteInIPMask('255.255.255.0')
                vpn.click_save()
                time.sleep(3)
                listtips2 = str(vpn.getText_byXpath(vpn.listtips2))
                self.assertEqual(listtips2, 'staticRoute2', msg='VPN2名称不为staticRoute2')
                print('L2TP已添加')
                # 修改静态路由 绑定PPTP接口
                routeconfig = RouteConfigPage(self.driver, self.url)
                routeconfig.click_NetworkConfig()
                time.sleep(0.5)
                routeconfig.click_Routeconfig()
                time.sleep(1)
                routeconfig.click_add()
                time.sleep(1)
                selProfiles = routeconfig.selelement_byName(routeconfig.selProfiles)
                time.sleep(1)
                try:
                    self.driver.implicitly_wait(2)
                    Select(selProfiles).select_by_value('(PPTPS)staticRoute')
                    time.sleep(0.5)
                    Select(selProfiles).select_by_value('(L2TPS)staticRoute2')
                except NoSuchElementException:
                    logger.info(u'静态路由无法绑定vpn接口(L2TP/PPTP),与参数表相符')
                    self.driver.implicitly_wait(10)
                    time.sleep(1)
                    routeconfig.click_modalhide()
                    time.sleep(0.5)
                    # 删除两条VPN
                    vpn = pptpL2tpPage(self.driver, self.url)
                    vpn.click_VPNConfig()
                    time.sleep(0.5)
                    vpn.click_pptpL2tp()
                    time.sleep(1)
                    vpn.click_delete1()
                    time.sleep(1)
                    vpn.click_ok()
                    time.sleep(2)
                    vpn.click_delete1()
                    time.sleep(1)
                    vpn.click_ok()
                    time.sleep(3)
                    # 断言
                    list_nodata = str(vpn.getText_byXpath(vpn.list_nodata))
                    self.assertEqual(list_nodata, nodata, msg='静态路由删除失败')
                    print('VPN已删除')
                else:
                    CapPic(self.driver)
                    logger.info(u'软件支持L2TP/PPTP 静态路由绑定vpn接口,与参数表不符')
                    raise Exception(u'软件支持L2TP/PPTP 静态路由绑定vpn接口,与参数表不符')
        else:
            logger.info(u'参数表读取异常')
            logger.info(u'参数表读取值为:',Support)
            raise Exception(u'参数表读取异常')

        self.driver.quit()

        logger.info('test_003_bandingInter passed')
Exemple #23
0
    def test_001_NetworkSharing(self):
        u'''网络共享&FTP服务器(某些设备可能不支持)'''
        netShareP = getParameter('netShareP')
        Support = getExcelValue(netShareP)
        networkshare = NetworkSharingPage(self.driver, self.url)
        if Support == '√':
            logger.info(u'参数支持网络共享')
            try:
                self.driver.implicitly_wait(2)
                networkshare.find_NetworkSharing()
            except NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'软件不支持 网络共享,与参数表不符')
                raise Exception('软件不支持 网络共享,与参数表不符')
            else:
                logger.info(u'软件支持网络共享,与参数表相符')
                self.driver.implicitly_wait(10)
                time.sleep(1)
                # 开/关访问控制
                enableDevice = networkshare.getAttribute_byId(networkshare.enableDevices, 'checktype')  # checktype 0未开启,1开启
                self.assertEqual(enableDevice, '0', msg='网络共享 默认未关闭')
                networkshare.click_enableDevice()
                time.sleep(2)
                enableDevice = networkshare.getAttribute_byId(networkshare.enableDevices, 'checktype')
                self.assertEqual(enableDevice, '1', msg='网络共享 开启失败')
                networkshare.click_enableDevice()
                time.sleep(2)
                enableDevice = networkshare.getAttribute_byId(networkshare.enableDevices, 'checktype')
                self.assertEqual(enableDevice, '0', msg='网络共享 关闭失败')
                # U盘使用率
                UsageRate = networkshare.getText_byXpath(networkshare.UsageRate)
                self.assertIn('%', UsageRate, msg='U盘使用率 显示异常')
                # U盘总容量 已使用容量 剩余容量 三个值+提示是一个元素,判断条件特殊
                # U盘总容量 后元素(所有)
                Total = networkshare.getText_byXpath(networkshare.Total)
                # “已使用容量”提示
                Usedtext = networkshare.getText_byXpath(networkshare.Usedtext)
                Usedtext1 = 'M' + Usedtext
                # “剩余容量”提示
                Residualtext = networkshare.getText_byXpath(networkshare.Residualtext)
                Residualtext1 = 'M' + Residualtext
                if Usedtext1 in Total and Residualtext1 in Total:
                    print('U盘总容量信息 显示正常')
                else:
                    raise Exception('U盘总容量信息 显示异常')
                #弹出设备
                networkshare.find_Eject()

                # 账号设置
                networkshare.click_AccountSettings()
                time.sleep(1)
                networkshare.click_open_pswd()
                time.sleep(2)
                networkshare.find_add()
                networkshare.find_delete()
                # admin账号
                adminuser = str(networkshare.getText_byXpath(networkshare.adminuser))
                self.assertEqual(adminuser, 'admin', msg='admin账号有误')
                guestuser = str(networkshare.getText_byXpath(networkshare.guestuser))
                self.assertEqual(guestuser, 'guest', msg='guest账号有误')

                #网络共享
                networkshare.click_NetworkSharing2()
                time.sleep(1)
                networkshare.click_choosml()
                time.sleep(1)
                networkshare.input_names('test')
                networkshare.click_modal_hide()
                time.sleep(0.5)
                networkshare.click_ftpEn()
                networkshare.input_ftpport('222')
                networkshare.click_WANEnable()
                try:
                    self.driver.implicitly_wait(2)
                    networkshare.find_sambaEn() # 启用SAMBA
                except ElementNotVisibleException:
                    raise Exception('sambaEn 页面无显示')
        elif Support == '×':
            logger.info(u'参数不支持网络共享')
            try:
                self.driver.implicitly_wait(2)
                networkshare.find_NetworkSharing()
            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_001_NetworkSharing passed')
Exemple #24
0
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.select import Select
import time
import unittest
import os.path
from common.LogGen import LogGen
from common.CapPic import CapPic
from common.ReadConfig import getAssertText, getParameter
from common.GetExcelValue import getExcelValue
from common.pingTest import pingTestIP
from common.loginRoute import login
from pages.ConfigGuidepage import ConfigGuidepage
from pages.NetConfig_001_WANpage import NetworkConfig_wanpage
logger = LogGen(Logger='ConfigGuide').getlog()
wifiload2Gp = getParameter('wifiload2Gp')
support2 = getExcelValue(wifiload2Gp)
wifiload5Gp = getParameter('wifiload5Gp')
support5 = getExcelValue(wifiload5Gp)
# print('support2:',support2)
# print('support5:',support5)


class guide(unittest.TestCase):
    def setUp(self):
        logger.info('setUp start')
        login.loginWeb(self)  #admin账号登录
        self.driver.implicitly_wait(10)
        # pass

    def test_001_dhcp(self):
        u'''配置向导 - 动态接入'''
    def test_001_changeRateWAN(self):
        u'''wan1端口协商速率修改 '''
        # # 进入-系统监控-系统状态 获取型号判断是否支持千M
        # sysmonitor = sysStaticPage(self.driver, self.url)
        # sysmonitor.click_systemWatch()
        # time.sleep(0.5)
        # sysmonitor.click_sysStatic()
        # time.sleep(1)
        # Model = str(sysmonitor.getText_byXpath(sysmonitor.Model))
        # print(Model)
        #wan口速率修改
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_NetworkConfig()
        time.sleep(0.5)
        wanpage.click_WANconfig()
        time.sleep(1)
        wanpage.click_line1edit()
        time.sleep(1)
        connectionType = wanpage.selelement_byName(wanpage.connectionType)
        Select(connectionType).select_by_value('DHCP')
        time.sleep(0.5)
        WanMode = wanpage.selelement_byXpath(wanpage.selwanRate)
        # 0-10M全双工 1-100M全双工 2-1000M全双工 3-自动 4-10M半双工 5-100M半双工
        #改为10M
        try:
            Select(WanMode).select_by_value('4')
            time.sleep(0.5)
        except ElementNotVisibleException:
            CapPic(self.driver)
            logger.info(u'WAN口不支持修改为10M半双工')
            raise Exception(u'WAN口不支持修改为10M半双工')
        wanpage.click_save()
        time.sleep(10)
        n = 0
        while n < 20:
            ping = pingTestIP()
            if ping != 'Y':
                time.sleep(1)
                n += 1
            else:
                break
        self.driver.quit()
        i = 0
        while i < 30:
            swRate = swconfig.test_getWAN1Speed(self)
            print(swRate)
            if swRate != 'speed10M':
                time.sleep(1)
                i += 1
            else:
                break
        else:
            logger.info(u'交换机端口速率为: %s' % swRate)
            logger.info(u'交换机协商速率 不为10M')
            raise Exception(u'交换机协商速率 不为10M')
        # 改为100M
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_NetworkConfig()
        time.sleep(0.5)
        wanpage.click_WANconfig()
        time.sleep(1)
        wanpage.click_line1edit()
        time.sleep(1)
        WanMode = wanpage.selelement_byXpath(wanpage.selwanRate)
        Select(WanMode).select_by_value('5')
        time.sleep(0.5)
        wanpage.click_save()
        time.sleep(10)
        n = 0
        while n < 20:
            ping = pingTestIP()
            if ping != 'Y':
                time.sleep(1)
                n += 1
            else:
                break
        self.driver.quit()
        i = 0
        while i < 30:
            swRate = swconfig.test_getWAN1Speed(self)
            print(swRate)
            if swRate != 'speed100M':
                time.sleep(1)
                i += 1
            else:
                break
        else:
            logger.info(u'交换机端口速率为: %s' % swRate)
            logger.info(u'交换机协商速率 不为100M')
            raise Exception(u'交换机协商速率 不为100M')
        # 改为1000M
        support = getExcelValue(portTateWANp)
        if '千' in str(support):  #参数表中包含“千”兆
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            wanpage = NetworkConfig_wanpage(self.driver, self.url)
            wanpage.click_NetworkConfig()
            time.sleep(0.5)
            wanpage.click_WANconfig()
            time.sleep(1)
            wanpage.click_line1edit()
            time.sleep(1)
            WanMode = wanpage.selelement_byXpath(wanpage.selwanRate)
            try:
                Select(WanMode).select_by_value('2')
                time.sleep(0.5)
                wanpage.click_save()
                time.sleep(10)
                n = 0
                while n < 20:
                    ping = pingTestIP()
                    if ping != 'Y':
                        time.sleep(1)
                        n += 1
                    else:
                        break
                self.driver.quit()
                i = 0
                while i < 30:
                    swRate = swconfig.test_getWAN1Speed(self)
                    print(swRate)
                    if swRate != 'speed1000M':
                        time.sleep(1)
                        i += 1
                    else:
                        break
                else:
                    logger.info(u'交换机端口速率为: %s' % swRate)
                    logger.info(u'交换机协商速率 不为1000M')
                    raise Exception(u'交换机协商速率 不为1000M')
            except NoSuchElementException:
                raise Exception('WAN口不支持千M协商速率')
        # 改为auto
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_NetworkConfig()
        time.sleep(0.5)
        wanpage.click_WANconfig()
        time.sleep(1)
        wanpage.click_line1edit()
        time.sleep(1)
        WanMode = wanpage.selelement_byXpath(wanpage.selwanRate)
        Select(WanMode).select_by_value('3')
        time.sleep(0.5)
        wanpage.click_save()
        time.sleep(10)
        n = 0
        while n < 20:
            ping = pingTestIP()
            if ping != 'Y':
                time.sleep(1)
                n += 1
            else:
                break
        self.driver.quit()
        time.sleep(2)
        swRate = swconfig.test_getWAN1Speed(self)
        print(swRate)
        if '千' in str(support):
            i = 0
            while i < 30:
                swRate = swconfig.test_getWAN1Speed(self)
                print(swRate)
                if swRate != 'speed1000M':
                    time.sleep(1)
                    i += 1
                else:
                    break
            else:
                logger.info(u'交换机端口速率为: %s' % swRate)
                logger.info(u'交换机协商速率 不为1000M')
                raise Exception(u'交换机协商速率 不为1000M')
        else:
            i = 0
            while i < 30:
                swRate = swconfig.test_getWAN1Speed(self)
                print(swRate)
                if swRate != 'speed100M':
                    time.sleep(1)
                    i += 1
                else:
                    break
            else:
                logger.info(u'交换机端口速率为: %s' % swRate)
                logger.info(u'交换机协商速率 不为100M')
                raise Exception(u'交换机协商速率 不为100M')

        logger.info('test_001_changePortRateWAN passed')
Exemple #26
0
from selenium.webdriver.support.select import Select
from selenium.common.exceptions import NoSuchElementException, ElementNotVisibleException
from common.LogGen import LogGen
from common.CapPic import CapPic
from common.ReadConfig import getAssertText, getweb, getParameter
from common.GetExcelValue import getExcelValue
from common.loginRoute import login
from pages.NetConfig_002_LANpage import NetworkConfig_LANpage
from pages.NetConfig_003_DHCPserverpage import DHCPserverpage
from pages.AC_001_NetNamePage import netNamePage
from pages.AC_002_deviceMgmtPage import deviceMgmtPage
from pages.AC_003_RftemplatePage import RftemplatePage
from pages.AC_005_APSoftwarePage import APSoftwarePage
logger = LogGen(Logger='Parameter_025_AC').getlog()
APnumP = getParameter('APnumP')
Support = getExcelValue(APnumP)


class AC(unittest.TestCase):
    def setUp(self):
        logger.info('setUp start')

        # pass

    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)
    def test_004_WEBAuth(self):
        u'''本地认证(某些设备可能不支持)'''
        webAutnp = getParameter('webAutnp')
        Support = getExcelValue(webAutnp)
        webauth = Organization_userAuthPage(self.driver, self.url)
        webauth.click_userAuth()
        time.sleep(1)
        if Support == '√':
            logger.info(u'参数支持本地认证')
            try:
                self.driver.implicitly_wait(2)
                webauth.click_WebConfig()
            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)
                #认证页面
                webauth.click_modaifyAuthPage()
                time.sleep(1)
                webauth.input_webAuthSuccessNote('test')
                webauth.selelement_byName(webauth.en_picture)
                webauth.click_activePicEn()
                time.sleep(0.5)
                webauth.click_activePicC()
                time.sleep(0.5)
                webauth.input_tipstitle('test')
                webauth.input_tipsinfo('test')
                webauth.input_hidcontact('test')
                webauth.click_close_webauth()
                time.sleep(0.5)
                webauth.input_staleTime('5')
                webauth.click_selfenabled()
                time.sleep(0.2)
                webauth.click_modalhide()
                time.sleep(0.5)

                webauth.click_account()
                time.sleep(1)
                webauth.click_addUser()
                time.sleep(1)
                selauthType = webauth.selelement_byName(webauth.authType)
                Select(selauthType).select_by_value('Web')
                time.sleep(0.3)
                # 并发数
                webauth.input_concurrency('10')
                # 计费
                webauth.click_accountBillEn()
                time.sleep(0.3)
                selbillType = webauth.selelement_byName(webauth.billType)
                Select(selbillType).select_by_value('timeBill')
                time.sleep(0.3)
                Select(selbillType).select_by_value('dateBill')
                time.sleep(0.3)
                webauth.click_accountBillC()
                time.sleep(0.3)
        elif Support == '×':
            logger.info(u'参数不支持本地认证')
            try:
                self.driver.implicitly_wait(2)
                webauth.click_WebConfig()
            except AttributeError or NoSuchElementException:
                logger.info(u'软件不支持web认证,与参数表相符')
            else:
                CapPic(self.driver)
                logger.info(u'软件支持web认证,与参数表不符')
                raise Exception(u'软件支持web认证,与参数表不符')
        else:
            logger.info(u'参数表读取异常')
            logger.info(u'参数表读取值为:', Support)
            raise Exception(u'参数表读取异常')
        self.driver.quit()
        logger.info('test_004_WEBAuth passed')
    def test_003_PPPoESever(self):
        u'''PPPoE-Sever拨号用户(某些设备可能不支持)'''
        pppoeSp = getParameter('pppoeSp')
        Support = getExcelValue(pppoeSp)
        pppoeauth = Organization_userAuthPage(self.driver, self.url)
        pppoeauth.click_userAuth()
        time.sleep(1)
        if Support != '×':
            logger.info(u'参数支持PPPoE-Sever')
            try:
                self.driver.implicitly_wait(2)
                pppoeauth.click_PPPoEConfig()
            except AttributeError or NoSuchElementException:
                CapPic(self.driver)
                logger.info(u'软件不支持PPPoE Server,与参数表不符')
                raise Exception(u'软件不支持PPPoE Server,与参数表不符')
            else:
                logger.info(u'软件支持PPPoE Server,与参数表相符')
                self.driver.implicitly_wait(10)
                time.sleep(1)
                pppoeauth.click_PPPoEOnly()
                pppoeauth.find_selexceptIpGroup()
                pppoeauth.input_smaxconv('100')
                pppoeauth.click_selfHelpEnable()
                pppoeauth.click_PppoeNoticeEn()
                pppoeauth.input_remainDays('50')
                pppoeauth.click_edipage()
                time.sleep(1)
                pppoeauth.click_NoticePageName()
                pppoeauth.input_NoticePageNote('test')
                pppoeauth.input_NoticePageTitle('test')
                pppoeauth.input_SkipUrl('test')
                pppoeauth.input_SkipTime('5')
                pppoeauth.input_NoticeBody('test')
                pppoeauth.click_close()  #关闭
                time.sleep(0.5)
                pppoeauth.click_modalhide()
                time.sleep(0.5)

                pppoeauth.click_account()
                time.sleep(1)
                pppoeauth.click_addUser()
                time.sleep(1)
                #并发数
                pppoeauth.input_concurrency('10')
                #绑定方式
                pppoeauth.click_addautoBind()
                pppoeauth.click_IPBind()
                pppoeauth.click_MacBind()
                pppoeauth.click_IPMacBind()
                pppoeauth.click_noBind()
                #账号计费
                pppoeauth.click_accountBillEn()
                pppoeauth.click_accountBillC()
        elif Support == '×':
            logger.info(u'参数不支持PPPoE-Sever')
            try:
                self.driver.implicitly_wait(2)
                pppoeauth.click_PPPoEConfig()
            except AttributeError or NoSuchElementException:
                logger.info(u'软件不支持PPPoE,与参数表相符')
            else:
                CapPic(self.driver)
                logger.info(u'软件支持PPPoE,与参数表不符')
                raise Exception(u'软件支持PPPoE,与参数表不符')
        else:
            logger.info(u'参数表读取异常')
            logger.info(u'参数表读取值为:', Support)
            raise Exception(u'参数表读取异常')

        self.driver.quit()
        logger.info('test_003_PPPoESever passed')
Exemple #29
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')
    def test_001_UserStatistics(self):
        u'''用户统计(某些型号不支持建立pppoe账号)'''
        tempUser = getAssertText('tempUser')
        Minute = getAssertText('minute')
        Ban = getAssertText('Ban')
        pppoeSp = getParameter('pppoeSp')
        SupportP = getExcelValue(pppoeSp)
        webAutnp = getParameter('webAutnp')
        SupportW = getExcelValue(webAutnp)

        userstatus = Organization_userStatusPage(self.driver, self.url)
        userstatus.click_userstatus()
        time.sleep(1)
        # 将页面刷新按钮改成“手动”
        selmanual = userstatus.selelement_byXpath(userstatus.selmanual)
        Select(selmanual).select_by_value('3')
        time.sleep(0.3)
        Select(selmanual).select_by_value('5')
        time.sleep(0.3)
        Select(selmanual).select_by_value('10')
        time.sleep(0.3)
        Select(selmanual).select_by_value('60')
        time.sleep(0.3)
        Select(selmanual).select_by_value('manual')
        time.sleep(0.3)
        userstatus.click_refreshtable()
        time.sleep(1)
        #右上角移动、加入黑名单按钮
        userstatus.find_move()
        userstatus.find_addToBlackList()
        # 定义页面显示元素变量
        ID = str(userstatus.getText_byXpath(userstatus.ID))
        username = str(userstatus.getText_byXpath(userstatus.username))
        group = str(userstatus.getText_byXpath(userstatus.group))
        VlanID = str(userstatus.getText_byXpath(userstatus.VlanID))
        IP = str(userstatus.getText_byXpath(userstatus.IP))
        mac = str(userstatus.getText_byXpath(userstatus.mac))
        authmode = str(userstatus.getText_byXpath(userstatus.authmode))
        online_time_length = str(
            userstatus.getText_byXpath(userstatus.online_time_length))
        Uploading_data = str(
            userstatus.getText_byXpath(userstatus.Uploading_data))
        Downing_data = str(userstatus.getText_byXpath(userstatus.Downing_data))
        Uploading_speed = str(
            userstatus.getText_byXpath(userstatus.Uploading_speed))
        Downing_speed = str(
            userstatus.getText_byXpath(userstatus.Downing_speed))
        edit = str(userstatus.getText_byXpath(userstatus.edit))

        # 断言 用户列表是否显示有误
        time.sleep(1)
        self.assertEqual(ID, '1', msg='ID出错')
        print('用户状态 - ID 验证成功')
        self.assertIsNotNone(username, msg='用户名 出错')
        print('用户状态 - 用户名 验证成功')
        self.assertEqual(group, tempUser,
                         msg='所属组 出错')  # 脚本在最后会清空组织架构,所以脚本在一开始新建组,用户都是 临时用户
        print('用户状态 - 所属组 验证成功')
        self.assertIsNotNone(VlanID, msg='VLANID 出错')
        print('用户状态 - VLANID 验证成功')
        self.assertIn('192.168.', IP, msg='IP 出错')  # lan口地址段
        print('用户状态 - IP 验证成功')
        self.assertEqual(len(mac), 17, msg='mac 出错')  # 判断mac地址长度
        print('用户状态 - mac 验证成功')
        self.assertIsNotNone(authmode, msg='认证方式 出错')
        print('用户状态 - 认证方式 验证成功')
        self.assertIn(Minute, online_time_length, msg='在线时长 出错')  # 在线时长是否包含“分”
        print('用户状态 - 在线时长 验证成功')
        self.assertIsNotNone(Uploading_data, msg='上传数据 出错')
        print('用户状态 - 上传数据 验证成功')
        self.assertIsNotNone(Downing_data, msg='下载数据 出错')
        print('用户状态 - 下载数据 验证成功')
        self.assertIsNotNone(Uploading_speed, msg='上传速度 出错')
        print('用户状态 - 上传速度 验证成功')
        self.assertIsNotNone(Downing_speed, msg='下载速度 出错')
        print('用户状态 - 下载速度 验证成功')
        self.assertEqual(edit, Ban, msg='拉黑菜单显示 出错')
        print('用户状态 - 拉黑菜单显示 验证成功')

        userauth = Organization_userAuthPage(self.driver, self.url)
        userauth.click_userAuth()
        time.sleep(1)
        userauth.click_account()
        time.sleep(2)
        userauth.click_addUser()
        time.sleep(1)
        selauthType = userauth.selelement_byName(userauth.authType)
        if SupportW == '√':
            try:
                self.driver.implicitly_wait(2)
                Select(selauthType).select_by_value('Web')
            except NoSuchElementException:
                raise Exception('认证账号中不能选择web类型')
        elif SupportW == '×':
            try:
                self.driver.implicitly_wait(2)
                Select(selauthType).select_by_value('Web')
            except NoSuchElementException:
                logger.info(u'认证账号中不能选择web类型,与参数表相符')
            else:
                CapPic(self.driver)
                logger.info(u'认证账号中能选择web类型,与参数表不相符')
                raise Exception('认证账号中能选择web类型,与参数表不相符')
        else:
            logger.info(u'web参数表读取异常')
            logger.info(u'web参数表读取值为:', SupportW)
            raise Exception(u'web参数表读取异常')
        time.sleep(0.3)
        if SupportP != '×':
            try:
                self.driver.implicitly_wait(2)
                Select(selauthType).select_by_value('PPPoE')
            except NoSuchElementException:
                raise Exception('认证账号中不能选择pppoe类型')
        elif SupportP == '×':
            try:
                self.driver.implicitly_wait(2)
                Select(selauthType).select_by_value('PPPoE')
            except NoSuchElementException:
                logger.info(u'认证账号中不能选择pppoe类型,与参数表相符')
            else:
                CapPic(self.driver)
                logger.info(u'认证账号中能选择pppoe类型,与参数表不相符')
                raise Exception('认证账号中能选择pppoe类型,与参数表不相符')
        else:
            logger.info(u'pppoe参数表读取异常')
            logger.info(u'pppoe参数表读取值为:', SupportP)
            raise Exception(u'pppoe参数表读取异常')
        time.sleep(0.3)
        self.driver.implicitly_wait(10)

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