コード例 #1
0
    def tearDown(self):
        # 设置了指定IP,这里增加一个判断联网
        host = gettelnet('host').split(r'.')
        host1 = host[0] + '.' + host[1] + '.' + host[2] + '.'
        pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
        print(pcaddr)
        pingTestIP()  # 避免判断失误
        p = pingTestIP()
        if p == 'N' or host1 not in pcaddr:  # 如果不通 or 地址不为lan口网段
            # 1、改回DHCP, 调用bat脚本
            os.system('%s' % (batpath + 'changeDhcpIp.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, n)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                raise Exception('未获取到地址')

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
コード例 #2
0
    def test_002_allowfilter_Notice(self):
        u'''开启域名过滤,仅允许163&&域名过滤通告'''

        #开启域名过滤
        domainfilter = DomainFilterPage(self.driver, self.url)
        domainfilter.click_DomainFilterEn()
        time.sleep(1)
        #仅允许
        domainfilter.click_onlyAllowEn()
        domainfilter.click_save()
        time.sleep(1)
        #断言
        DomainFilterEns = domainfilter.getAttribute_byXpath(
            domainfilter.DomainFilterEs, 'checked')
        self.assertEqual(str(DomainFilterEns), 'true', msg='域名过滤未开启')
        actionStatus = domainfilter.getAttribute_byXpath(
            domainfilter.onlyAllowEs, 'checked')
        self.assertEqual(str(actionStatus), 'true', msg='动作不是允许')

        time.sleep(1)
        # 调用脚本修改dns为114.114.114.114,清空dns缓存
        os.system('%s' % (batpath + 'changeStaticDns_flushdns.bat'))
        time.sleep(3)
        os.system('%s' % (batpath + 'changeStaticDns_flushdns.bat'))
        time.sleep(5)

        # 判断联网 ,应该能解析ping通www.163.com,无法解析ping通访问www.baidu.com
        p = pingTestIP('www.163.com')
        if p == 'N':
            raise Exception('163 无法ping通')
        p = pingTestIP('www.baidu.com')
        if p == 'Y':
            raise Exception('百度 依旧可以ping通')

        print('DNS过滤仅允许 验证通过')

        # 打开通告
        domainfilter.click_terminalEn()
        domainfilter.click_save()
        time.sleep(1)
        # 断言
        noticeStatus = domainfilter.getAttribute_byXpath(
            domainfilter.terminalEs, 'checked')
        self.assertEqual(str(noticeStatus), 'true', msg='通告未开启')
        self.driver.quit()
        # 测试通告
        self.driver = webdriver.Chrome()
        # self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        self.driver.get('http://www.utt.com.cn')
        title1 = str(self.driver.title)
        # print(title1)
        self.assertEqual(title1, DomainFilterNotice, msg='通告未弹出')
        self.driver.quit()
        logger.info('test_002_allowfilter_Notice passed')
コード例 #3
0
    def test_DNSfilter(self):
        u'''DNS过滤 www.baidu.com,无法ping通百度,可以ping news.baidu.com和官网'''
        # 调用脚本修改dns为114.114.114.114,清空dns缓存
        os.system('%s' % (batpath + 'changeStaticDns_flushdns.bat'))
        time.sleep(5)

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        #配置防火墙
        firewall = AccessControlPage(self.driver, self.url)
        firewall.click_FireWall()
        time.sleep(0.5)
        firewall.click_AccessControl()
        time.sleep(1)
        firewall.click_add()
        time.sleep(1)
        firewall.input_PolicyNames('DNSfilter')
        selFilterTypes = firewall.selelement_byName(firewall.selFilterTypes)
        time.sleep(1)
        Select(selFilterTypes).select_by_value('4')  #DNS过滤
        firewall.input_glnrdns('www.baidu.com')
        firewall.click_save()
        time.sleep(1)
        # 开启访问控制
        checkTrafficS = firewall.getAttribute_byId(
            firewall.checkTrafficS, 'checktype')  # checktype 0未开启,1开启
        if checkTrafficS == '0':
            firewall.click_checkTraffic()
        time.sleep(2)
        print('访问控制策略 已添加')
        #断言
        list_content = str(firewall.getText_byXpath(firewall.list_Content))
        self.assertEqual(list_content,
                         'www.baidu.com',
                         msg='过滤内容不为"www.baidu.com"')
        checkTrafficS = firewall.getAttribute_byId(
            firewall.checkTrafficS, 'checktype')  #checktype 0未开启,1开启
        self.assertEqual(checkTrafficS, '1', msg='访问控制 未开启')
        self.driver.quit()

        # 判断联网 ,应该无法解析ping通www.baidu.com,能解析ping通访问news.baidu.com和www.utt.com.cn
        time.sleep(5)
        p = pingTestIP('www.baidu.com')
        if p == 'Y':
            raise Exception('百度 依旧可以ping通')
        p = pingTestIP('news.baidu.com')
        if p == 'N':
            raise Exception('news.baidu.com 无法ping通')
        p = pingTestIP('www.utt.com.cn')
        if p == 'N':
            raise Exception('www.utt.com.cn 无法ping通')
        time.sleep(1)

        logger.info('test_DNSfilter passed')
コード例 #4
0
ファイル: Members_007_WebAuth.py プロジェクト: sanwzhou/SEWEB
    def test_001_openWebAuth(self):
        u'''web认证开启'''
        host = gettelnet('host').split(r'.')
        host1 = host[0] + '.' + host[1] + '.' + host[2] +'.'
        # 006中设置了指定IP,这里增加一个判断联网
        pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
        print(pcaddr)
        pingTestIP()  # 避免判断失误

        p = pingTestIP()
        if p == 'N' or host1 not in pcaddr:  # 如果不通 or 地址不为lan口网段
            # 1、改回DHCP, 调用bat脚本
            os.system('%s' % (batpath + 'changeDhcpIp.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, n)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                raise Exception('未获取到地址')

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

            # 打开用户管理 - 用户认证
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            webauth = Organization_userAuthPage(self.driver, self.url)
            # 打开用户管理 - 用户认证
            webauth.click_UserManage()
            time.sleep(0.5)
            webauth.click_userAuth()
            time.sleep(1)
            #开启web认证
            webauth.click_WebAuthEn()
            time.sleep(1)
            # 断言 提示信息是否有误
            status = str(webauth.getAttribute_byXpath(webauth.WebAuthEs,'checked'))
            time.sleep(1)
            self.assertEqual(status,'true',msg='web认证开启出错')
            self.driver.quit()
        elif Support == '×':
            logger.info(u'参数不支持本地认证')
        logger.info('test_001_openWebAuth passed')
コード例 #5
0
    def tearDown(self):
        #修改lan口为自动模式,谨防lan口速率出问题 太卡
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        lanpage = NetworkConfig_LANpage(self.driver, self.url)
        lanpage.click_NetworkConfig()
        time.sleep(0.5)
        lanpage.click_LANconfig()
        time.sleep(1)
        lanpage.click_globalconfig()
        time.sleep(1)
        lanmodenow = lanpage.getAttribute_byXpath(lanpage.lanmodenow,
                                                  'selected')
        print(lanmodenow)
        if lanmodenow != 'true':
            LanMode = lanpage.selelement_byXpath(lanpage.sellanRate)
            Select(LanMode).select_by_value('3')
            time.sleep(0.5)
            lanpage.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()

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
コード例 #6
0
    def test_005_dnsProxy(self):
        u'''dns代理可以上网'''
        baidutitle = getAssertText('baidutitle')
        # 开dns代理
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        dhcpserver = DHCPserverpage(self.driver, self.url)
        dhcpserver.click_NetworkConfig()
        time.sleep(0.5)
        dhcpserver.click_DHCPserver()
        time.sleep(1)
        dhcpserver.click_GlobalConfig()
        time.sleep(1)
        dhcpserver.click_dnspEn()
        dhcpserver.click_save()
        time.sleep(1)
        # 断言 开启提示信息是否有误
        tips = str(dhcpserver.getText_byClass(dhcpserver.tips))
        time.sleep(1)
        self.assertEqual(tips, saveSucess, msg='"DNS代理" 开启出错')
        print('DNS代理 已开启')

        # 将IP改回自动获取(设置dns为自动获取)
        # 调用bat脚本
        os.system(('%s' % batpath + 'changeDhcpIp.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
            print(pcaddr, n)
            if '192.168.' not in str(pcaddr):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功', n)
                break
        else:
            raise Exception('未获取到地址')
        pingTestIP('www.baidu.com')  #避免失误
        self.driver.get('http://www.baidu.com')
        time.sleep(2)
        title3 = self.driver.title
        print(title3)
        self.assertEqual(title3, baidutitle, msg='dns代理 无法打开网页')
        self.driver.quit()
        logger.info('test_005_dnsProxy passed')
コード例 #7
0
    def test_001_ServerStatus(self):
        u'''DHCP服务器功能默认开启'''
        host = gettelnet('host')

        #即插即用中修改了IP 这里加一个判断联网
        pingTestIP()  #避免失误
        p = pingTestIP()
        if p == 'N':
            # 将IP改回自动获取(设置dns为自动获取)
            # 调用bat脚本
            os.system('%s' % (batpath + 'changeDhcpIp.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr, n)
                if '192.168.' not in str(pcaddr):
                    time.sleep(2)
                    n += 1
                else:
                    logger.info(u'IP地址已自动获取成功')
                    break
            else:
                raise Exception('未获取到地址')
        pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
        logger.info(u'IP地址为:%s' % pcaddr)
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        dhcpserver = DHCPserverpage(self.driver, self.url)
        # 打开网络配置 - 内网配置
        dhcpserver.click_NetworkConfig()
        time.sleep(0.5)
        dhcpserver.click_DHCPserver()
        time.sleep(1)
        #确认 DHCP服务器功能 是否 默认开启
        dhcp_status = dhcpserver.getAttribute_byXpath(dhcpserver.dhcpEn,
                                                      'checked')
        self.assertEqual(str(dhcp_status), 'true', msg='DHCP服务器功能默认未开启')
        self.driver.quit()
        logger.info('test_001_ServerStatus passed')
コード例 #8
0
    def test_001_ntpClockServer(self):
        u'''时钟管理'''
        ntpServer = getweb('ntpServer')
        i = 0
        while i < 80:
            p = pingTestIP('www.baidu.com')
            if p != 'Y':
                time.sleep(1)
            else:
                break
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        config = MaintenancePage(self.driver, self.url)
        # 进入系统配置-系统维护
        config.click_sysConfig()
        time.sleep(0.5)
        config.click_Maintenance()
        time.sleep(1)
        TimeInternetA = getAssertText('TimeInternetA')
        sysTime = sysTimePage(self.driver, self.url)

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

        self.driver.quit()
        logger.info('test_001_ntpClockServer passed')
コード例 #9
0
    def tearDown(self):

        pingTestIP()
        p = pingTestIP()
        if p == 'N':
            # 将IP改回自动获取
            os.system('%s' % batpath + 'changeDhcpIp.bat')
            time.sleep(5)
            n = 0
            while n < 30:
                pcaddr1 = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                # print(pcaddr1, n)
                if '192.168.' not in str(pcaddr1):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                raise Exception('未获取到地址')

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
コード例 #10
0
    def tearDown(self):
        #避免未改回
        p = pingTestIP()
        if p == 'N':
            # 调用bat脚本 地址修改为 192.168.34.39 网关192.168.34.1
            os.system('%s' % (batpath + 'changeStaticIP3_34duan.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr, n)
                if str(pcaddr) != '192.168.34.39':
                    time.sleep(2)
                    n += 1
                else:
                    print('地址已修改为地址 192.168.34.39', n)
                    time.sleep(2)
                    break
            else:
                raise Exception('地址修改为192.168.34.39 失败')

            # 更改pc 交换机接口与lan口通
            try:
                swconfig.test_WanToLan(self)
            except TimeoutError:
                logger.info(u'telnet不到交换机')
                pass
            # 将IP改回自动获取 应获取到被测设备下发的地址
            os.system('%s' % (batpath + 'changeDhcpIp.bat'))
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, n)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                raise Exception('未获取到地址')

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
コード例 #11
0
ファイル: AC_006_APSoftware.py プロジェクト: sanwzhou/SEWEB
 def setUp(self):
     logger.info('setUp start')
     os.system('taskkill /im "tftpd32.exe" /F')
     #谨防007 重启AC报错,提示失败 但设备已在重启导致无法登录路由
     i = 0
     while i < 50:
         ping = pingTestIP()
         if ping == 'Y':
             time.sleep(2)
             break
         else:
             time.sleep(1)
             i += 1
     login.loginWeb(self)
     self.driver.implicitly_wait(10)
     time.sleep(0.5)
コード例 #12
0
    def test_001_open(self):
        u'''开启即插即用 错误的IP,依旧上网'''
        plug = NetworkConfig_LANpage(self.driver, self.url)
        saveSucess = getAssertText('saveSucess')
        #开启UPNP
        plug.click_upnpEN()
        time.sleep(0.5)
        plug.click_save()
        time.sleep(1)

        # 断言 开启提示信息是否有误
        tips = str(plug.getText_byClass(plug.tips))
        time.sleep(1)
        self.assertEqual(tips, saveSucess, msg='即插即用 开启出错')
        print('即插即用 已开启')

        # 判断联网 ,不能上网则报错
        pingTestIP('www.163.com')  # 避免失误
        p = pingTestIP('www.163.com')
        if p == 'N':
            raise Exception('connect failed.')

        # 调用bat脚本 地址修改为 192.168.189.39 网关192.168.189.1
        os.system('%s' % (batpath + 'changeStaticIP.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
            print(pcaddr, n)
            if str(pcaddr) != '192.168.198.39':
                time.sleep(2)
                n += 1
            else:
                print('地址已修改为地址 192.168.198.39', n)
                break
        else:
            raise Exception('地址修改为192.168.198.39 失败')

        # 判断联网 ,不能上网则报错
        pingTestIP('www.163.com')  # 避免失误
        p = pingTestIP('www.163.com')
        if p == 'N':
            raise Exception('connect failed.')

        self.driver.quit()
        logger.info('test_001_open passed')
コード例 #13
0
    def tearDown(self):
        nodata = getAssertText('nodata')
        # 判断联网 ,不能则改回mac
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            # 将mac改回
            # 调用bat脚本
            os.system('%s' % (batpath + 'changeMacToBack.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, n)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                raise Exception('未获取到地址')
        # 删除黑名单绑定
        blacklist = Organization_userBlackPage(self.driver, self.url)
        blacklist.click_delete()
        time.sleep(1)
        blacklist.click_ok()
        time.sleep(1)
        # 断言 开启提示信息是否有误
        listtips = str(blacklist.getText_byXpath(blacklist.list_tips))
        time.sleep(1)
        self.assertEqual(listtips, nodata, msg='黑名单用户删除失败')
        print('黑名单用户已删除')
        self.driver.quit()

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
コード例 #14
0
    def test_002_static(self):
        u'''外网配置 - 固定接入'''
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        Staticline = getAssertText('Staticline')
        ConnectState = getAssertText('ConnectState')
        # 从外网配置页面获取WAN1口地址
        # 判断联网状态
        i = 0
        while i < 21:
            wan_config.click_refresh()
            time.sleep(1)
            list_conState = wan_config.getText_byXpath(
                wan_config.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        # WAN1 ip变量赋值,页面读取
        WAN1_ip = wan_config.getText_byXpath(wan_config.line1IP)
        # print('WAN1_ip=',WAN1_ip)
        WAN1_gw = wan_config.getText_byXpath(wan_config.line1gw)
        # print('WAN1_gw=',WAN1_gw)
        WAN1_dns = wan_config.getText_byXpath(wan_config.line1Dns)
        # print('WAN1_dns=',WAN1_dns)
        time.sleep(1)
        # 将wan1口的IP/网关/dns 拿来输入
        wan_config.click_line1edit()
        time.sleep(1)
        access_mode = wan_config.selelement_byName(wan_config.connectionType)
        Select(access_mode).select_by_value('STATIC')
        time.sleep(1)
        wan_config.input_staticIp(WAN1_ip)
        wan_config.input_staticGateway(WAN1_gw)
        wan_config.input_staticPriDns(WAN1_dns)
        wan_config.click_save()
        time.sleep(10)
        self.driver.quit()  # 修改接口后 可能会回到登录页面 所以关闭,再打开

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        # 进入网络配置-外网配置
        wan_config.click_NetworkConfig()
        time.sleep(0.5)
        wan_config.click_WANconfig()
        time.sleep(1)
        #断言
        list_lineType = wan_config.getText_byXpath(wan_config.line1Type)
        print('list_lineType', list_lineType)
        self.assertEqual(str(list_lineType), Staticline, msg='连接类型 不为 固定接入')
        # 判断联网状态
        i = 0
        while i < 21:
            wan_config.click_refresh_s()
            time.sleep(1)
            list_conState = wan_config.getText_byXpath(
                wan_config.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        i = 0
        while i < 21:
            # 判断联网 ,不能上网则报错
            # pingTestIP('114.114.114.114')
            p = pingTestIP('www.baidu.com')
            print(p, i)
            if p == 'N':
                i += 1
                time.sleep(3)
            else:
                break
        else:
            logger.info(u"connect failed")
            raise Exception('connect failed.')

        self.driver.quit()
        logger.info('test_002_static passed')
コード例 #15
0
    def test_001_Forbidfilter_Notice(self):
        u'''开启域名过滤,禁止163&&域名过滤通告'''
        #未开启时候可以ping通163和百度
        p = pingTestIP('114.114.114.114')
        if p == 'N':
            raise Exception('114.114.114.114 无法ping通')
        p = pingTestIP('www.163.com')
        if p == 'N':
            raise Exception('www.163.com 无法ping通')
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            raise Exception('www.baidu.com 无法ping通')

        #开启域名过滤
        domainfilter = DomainFilterPage(self.driver, self.url)
        time.sleep(1)
        domainfilter.click_DomainFilterEn()
        time.sleep(1)
        domainfilter.input_DnsFilterName('filter')
        # 仅禁止
        domainfilter.click_onlyBlockEn()
        domainfilter.click_cleanDns()
        time.sleep(1)
        domainfilter.click_ok()
        time.sleep(1)
        domainfilter.input_addHostFilter('www.163.com')
        domainfilter.click_addDns()
        time.sleep(1)
        domainfilter.click_save()
        time.sleep(1)
        #断言
        DomainFilterEns = domainfilter.getAttribute_byXpath(
            domainfilter.DomainFilterEs, 'checked')
        self.assertEqual(str(DomainFilterEns), 'true', msg='域名过滤未开启')
        onlyBlockEns = domainfilter.getAttribute_byXpath(
            domainfilter.onlyBlockEs, 'checked')
        self.assertEqual(str(onlyBlockEns), 'true', msg='动作不是禁止')

        # 调用脚本修改dns为114.114.114.114,清空dns缓存
        os.system('%s' % (batpath + 'changeStaticDns_flushdns.bat'))
        time.sleep(5)
        os.system('%s' % (batpath + 'changeStaticDns_flushdns.bat'))
        time.sleep(5)

        # 判断联网 ,应该无法解析ping通www.163.com,能解析ping通访问www.baidu.com
        pingTestIP('114.114.114.114')
        time.sleep(5)
        p = pingTestIP('www.163.com')
        if p == 'Y':
            raise Exception('163 依旧可以ping通')
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            raise Exception('www.baidu.com 无法ping通')
        print('DNS过滤仅禁止 验证通过')

        # 打开通告
        domainfilter.click_terminalEn()
        domainfilter.click_save()
        time.sleep(1)
        #断言
        noticeStatus = domainfilter.getAttribute_byXpath(
            domainfilter.terminalEs, 'checked')
        self.assertEqual(str(noticeStatus), 'true', msg='通告未开启')
        self.driver.quit()
        #测试通告
        time.sleep(3)
        self.driver = webdriver.Chrome()
        # self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        # 尝试访问163 应不可以
        self.driver.get('http://www.163.com')
        title1 = str(self.driver.title)
        print('title1:', title1)
        self.assertEqual(title1, DomainFilterNotice, msg='通告未弹出')
        self.driver.quit()
        #注意通告打开情况下,可以ping通,在setdown中关闭
        logger.info('test_001_Forbidfilter_Notice passed')
コード例 #16
0
    def test_001_userList(self):
        u'''用户状态 列表'''
        tempUser = getAssertText('tempUser')
        Minute = getAssertText('minute')
        Ban = getAssertText('Ban')
        #003中设置了ip/mac绑定上网,这里增加一个判断联网
        pingTestIP()  # 避免判断失误
        p = pingTestIP()
        if p == 'N':  # 如果不通
            # 1、改回DHCP, 调用bat脚本
            os.system('%s' % (batpath + 'changeDhcpIp.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, n)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                raise Exception('未获取到地址')
        pingTestIP('www.baidu.com')  #避免判断失误
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            # 1、将mac改回, 调用bat脚本
            os.system('%s' % (batpath + 'changeMacToBack.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, n)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                # raise Exception('未获取到地址1')
                # 开启绑定情况下 仅更改mac 可能会获取不到地址
                os.system('%s' % (batpath + 'ipconfig_release.bat'))
                time.sleep(5)
                os.system('%s' % (batpath + 'ipconfig_renew.bat'))
                time.sleep(5)
                i = 0
                while i < 30:
                    # 获取本机ip 默认有线地址,有线断开会显示无线
                    pcaddr_new = socket.gethostbyname(
                        socket.getfqdn(socket.gethostname()))
                    print(pcaddr_new, i)
                    if '192.168.' not in str(pcaddr_new):
                        time.sleep(2)
                        i += 1
                    else:
                        print('IP地址已自动获取成功2', i)
                        break
                else:
                    raise Exception('未获取到地址2')
            #3、关闭"仅MAC绑定用户能上网" 关闭ip/mac绑定 以访003出错
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            group = OrganizationMembersPage(self.driver, self.url)
            # 打开用户管理 - 组织成员
            group.click_UserManage()
            time.sleep(0.5)
            group.click_userGroup()
            time.sleep(1)
            group = OrganizationMembersPage(self.driver, self.url)
            group.click_globalconfig()
            time.sleep(1)
            group.click_IPMACb_C()
            group.click_MACb_C()
            time.sleep(0.5)
            group.click_saveAllSetting()
            time.sleep(1)
            IPMACb_Cs = str(
                group.getAttribute_byXpath(group.IPMACb_Cs, 'checked'))
            self.assertEqual(IPMACb_Cs, 'true', msg='"仅IP/MAC绑定用户能上网" 关闭出错')
            print('"仅IP/MAC绑定用户能上网" 关闭')
            Macb_Cs = str(group.getAttribute_byXpath(group.MACb_Cs, 'checked'))
            self.assertEqual(Macb_Cs, 'true', msg='"仅MAC绑定用户能上网" 关闭出错')
            print('"仅MAC绑定用户能上网" 关闭')
            self.driver.quit()

        # 打开用户管理 - 用户状态
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        status = Organization_userStatusPage(self.driver, self.url)
        status.click_UserManage()
        time.sleep(0.5)
        status.click_userstatus()
        time.sleep(1)
        # 将页面刷新按钮改成“手动”
        sel = status.selelement_byXpath(status.selmanual)
        Select(sel).select_by_value('manual')
        time.sleep(1)
        status.click_refreshtable()
        time.sleep(1)
        #定义页面显示元素变量
        ID = str(status.getText_byXpath(status.ID))
        username = str(status.getText_byXpath(status.username))
        group = str(status.getText_byXpath(status.group))
        VlanID = str(status.getText_byXpath(status.VlanID))
        IP = str(status.getText_byXpath(status.IP))
        mac = str(status.getText_byXpath(status.mac))
        authmode = str(status.getText_byXpath(status.authmode))
        online_time_length = str(
            status.getText_byXpath(status.online_time_length))
        Uploading_data = str(status.getText_byXpath(status.Uploading_data))
        Downing_data = str(status.getText_byXpath(status.Downing_data))
        Uploading_speed = str(status.getText_byXpath(status.Uploading_speed))
        Downing_speed = str(status.getText_byXpath(status.Downing_speed))
        edit = str(status.getText_byXpath(status.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('用户状态 - 拉黑菜单显示 验证成功')
        self.driver.quit()
        logger.info('test_001_userList passed')
コード例 #17
0
    def test_003_pppoe(self):
        u'''外网配置 - PPPoE接入'''
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        PPPoEline = getAssertText('PPPoEline')
        ConnectState = getAssertText('ConnectState')

        wan_config.click_line1edit()
        time.sleep(1)
        access_mode = wan_config.selelement_byName(wan_config.connectionType)
        Select(access_mode).select_by_value('PPPOE')
        time.sleep(1)
        wan_config.input_pppoeUser('111')
        wan_config.input_pppoePass('111')
        wan_config.click_save()
        time.sleep(10)
        self.driver.quit()  # 修改接口后 可能会回到登录页面 所以关闭,再打开

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        # 进入网络配置-外网配置
        wan_config.click_NetworkConfig()
        time.sleep(0.5)
        wan_config.click_WANconfig()
        time.sleep(1)
        #断言
        list_lineType = wan_config.getText_byXpath(wan_config.line1Type)
        # print('list_lineType:',list_lineType)
        self.assertEqual(str(list_lineType), PPPoEline, msg='连接类型 不为 PPPoE接入')
        # PPPoE接入 拨号成功才会显示已连接
        i = 0
        while i < 21:
            wan_config.click_refresh()
            time.sleep(1)
            list_conState = wan_config.getText_byXpath(
                wan_config.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        i = 0
        while i < 21:
            # 判断联网 ,不能上网则报错
            # pingTestIP('114.114.114.114')
            p = pingTestIP('www.baidu.com')
            print(p, i)
            if p == 'N':
                i += 1
                time.sleep(3)
            else:
                break
        else:
            logger.info(u"connect failed")
            raise Exception('connect failed.')

        # list_connectState1 = wan_config.getText_byXpath(wan_config.connectState1)
        # print('list_connection_state:',str(list_connectState1))
        # if str(list_connectState1) != ConnectState:  # PPPoE接入 拨号成功才会显示已连接
        #     time.sleep(5)
        #     wan_config.click_refresh()
        #     time.sleep(0.5)
        #     list_connectState1 = wan_config.getText_byXpath(wan_config.connectState1)
        #     if str(list_connectState1) != ConnectState:
        #         wan_config.click_connectState1()
        #         wan_config.click_dial()
        #         time.sleep(10)
        #         wan_config.click_refresh()
        #         time.sleep(0.5)
        #         list_connectState1 = wan_config.getText_byXpath(wan_config.connectState1)
        #         if str(list_connectState1) != ConnectState:
        #             raise Exception('WAN1 未连接')
        #         else:  # 已连接
        #             time.sleep(3)
        #             pingTestIP('114.114.114.114') #避免失误
        #             pingTestIP('www.baidu.com') #避免失误
        #             p = pingTestIP('www.baidu.com')
        #             if p == 'N':
        #                 raise Exception('connect failed.')
        #     else:  # 已连接
        #         time.sleep(3)
        #         pingTestIP('114.114.114.114') #避免失误
        #         pingTestIP('www.baidu.com') #避免失误
        #         p = pingTestIP('www.baidu.com')
        #         if p == 'N':
        #             raise Exception('connect failed.')
        # else:  # 已连接
        #     time.sleep(3)
        #     pingTestIP('114.114.114.114')
        #     pingTestIP('www.baidu.com')
        #     p = pingTestIP('www.baidu.com')
        #     if p == 'N':
        #         raise Exception('connect failed.')

        self.driver.quit()
        print(u'外网配置 - PPPoE接入 验证通过')

        #改回动态接入
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        # 进入网络配置-外网配置
        wan_config.click_NetworkConfig()
        time.sleep(0.5)
        wan_config.click_WANconfig()
        time.sleep(1)
        wan_config.click_line1edit()
        time.sleep(1)
        access_mode = wan_config.selelement_byName(wan_config.connectionType)
        Select(access_mode).select_by_value('DHCP')
        wan_config.click_save()
        time.sleep(10)
        self.driver.quit()
        logger.info('test_003_pppoe passed')
コード例 #18
0
    def test_blacklist(self):
        u'''黑名单用户禁止上网'''
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        blacklist = Organization_userBlackPage(self.driver, self.url)
        # 打开用户管理 - 组织成员
        blacklist.click_UserManage()
        time.sleep(0.5)
        blacklist.click_blacklist()
        time.sleep(1)

        # 操作删除 以访已有规则
        blacklist.click_selall()
        time.sleep(0.2)
        blacklist.click_delall()
        time.sleep(2)
        try:
            self.driver.implicitly_wait(2)
            blacklist.find_ok()
        except NoSuchElementException:
            try:
                blacklist.find_tipsshowin()
                time.sleep(1)
            except NoSuchElementException:
                pass
        else:
            time.sleep(1)
            print('ipsec VPN列表为空')

        blacklist.click_add()
        time.sleep(0.5)
        blacklist.input_bname('blicklistTest')
        blacklist.input_bmac(
            '107B44AAAAAA'
        )  #mac为不能上网的mac,非实际pc的mac 要与changeMacToBack.bat中mac地址一致
        blacklist.click_save()
        time.sleep(1)
        # 断言 增加的组名称是否相同:相同代表验证通过
        bilcklist_name = str(
            blacklist.getText_byXpath(blacklist.blicklist_name))
        self.assertEqual(bilcklist_name, 'blicklistTest', msg='新增黑名单出错 用户名不一致')
        bilcklist_mac = str(blacklist.getText_byXpath(blacklist.blicklist_mac))
        self.assertEqual(bilcklist_mac,
                         '10:7b:44:aa:aa:aa',
                         msg='新增黑名单出错 MAC不一致')
        print('新增黑名单用户 完成')
        pingTestIP('www.baidu.com')  #避免判断失误
        # 判断联网 ,不能上网则报错
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            raise Exception('connect failed.')

        # 修改MAC为 黑名单中绑定的MAC地址
        # 调用bat脚本
        os.system('%s' % (batpath + 'changeMac.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr_new = socket.gethostbyname(
                socket.getfqdn(socket.gethostname()))
            print(pcaddr_new, n)
            if '192.168.' not in str(pcaddr_new):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功1', n)
                break
        else:
            # raise Exception('未获取到地址1')
            # 开启绑定情况下 仅更改mac 可能会获取不到地址
            os.system('%s' % (batpath + 'ipconfig_release.bat'))
            time.sleep(5)
            os.system('%s' % (batpath + 'ipconfig_renew.bat'))
            time.sleep(5)
            i = 0
            while i < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, i)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    i += 1
                else:
                    print('IP地址已自动获取成功2', i)
                    break
            else:
                raise Exception('未获取到地址2')
        time.sleep(3)
        # 判断联网 ,测试该项改完mac之后前几个包有可能可以ping通,为避免判断失误,加一个缓冲
        pingTestIP('www.baidu.com')  #避免判断失误
        pingTestIP('www.163.com')  #避免判断失误
        time.sleep(2)
        #判断联网 ,黑名单中绑定的用户应该不能上网
        p = pingTestIP('www.sina.com.cn')
        if p == 'Y':
            raise Exception('黑名单中用户依旧可以上网')
        print('黑名单用户不能上网 验证成功')

        time.sleep(1)
        #将mac改回
        # 调用bat脚本
        os.system('%s' % (batpath + 'changeMacToBack.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr_new = socket.gethostbyname(
                socket.getfqdn(socket.gethostname()))
            print(pcaddr_new, n)
            if '192.168.' not in str(pcaddr_new):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功', n)
                break
        else:
            raise Exception('未获取到地址')
        pingTestIP('www.baidu.com')  # 避免判断失误
        pingTestIP('www.163.com')  # 避免判断失误
        time.sleep(2)
        # 判断联网 ,不能上网则报错
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            raise Exception('connect failed.')

        logger.info('test_blacklist passed')
コード例 #19
0
    def test_002_backupLineSW(self):
        u'''双固定IP接入时的线路切换:主、备份线路'''
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        #1、获取wan1、wan2 网关及mac
        line1_mac = str(wan_config.getText_byXpath(wan_config.line1Mac))
        # print('WAN1_dns=',line1_mac)
        line2_mac = str(wan_config.getText_byXpath(wan_config.line2Mac))
        # print('WAN1_dns=',line2_mac)
        # 处理wan口的mac地址
        # 字母变大写
        line1_mac1 = line1_mac.upper()
        line2_mac1 = line2_mac.upper()
        # 加冒号
        line1_mac2 = line1_mac1[0:2] + ':' + line1_mac1[
            2:4] + ':' + line1_mac1[4:6] + ':' + line1_mac1[
                6:8] + ':' + line1_mac1[8:10] + ':' + line1_mac1[10:]
        line2_mac2 = line2_mac1[0:2] + ':' + line2_mac1[
            2:4] + ':' + line2_mac1[4:6] + ':' + line2_mac1[
                6:8] + ':' + line2_mac1[8:10] + ':' + line2_mac1[10:]
        print(line1_mac2, line2_mac2)

        #WAN1改为备份线路
        wan_config.click_line1edit()
        time.sleep(1)
        line_type = wan_config.selelement_byXpath(wan_config.line_type)
        Select(line_type).select_by_value('0')  #1为主 0为备份
        wan_config.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()

        # telnet获取接口名称及确认默认路由(wan1备份应该只剩下wan2默认路由)
        hostip = gettelnet('host')
        port = gettelnet('port')
        username = bytes(getweb('User'), encoding="utf8")
        password = bytes(getweb('Passwd'), encoding="utf8")
        # 获取接口名称
        tn = telnetlib.Telnet(host=hostip, port=port, timeout=10)
        tn.set_debuglevel(5)  # 级别越高输出的调试信息越多,并没有看出区别
        tn.read_until(b'login:'******'Password:'******'#')
        tn.write(b'ifconfig | grep eth' + b'\n')
        # 输出结果,判断
        time.sleep(1)
        result = str(tn.read_very_eager())  # 执行多条命令时只会存最后一条命令的结果
        print('-------------------输出结果------------------------')
        # 命令执行结果
        print('result:', result)
        # 获取WAN口对应接口名称
        result1 = result[3:-9]
        # print(result1)
        result2 = result1.split(r'\r\n')
        print('result2:', result2)

        for i in range(len(result2)):
            if line1_mac2 in result2[i]:
                result2_num = (result2[i])
                print(result2[i])
                line1_Interface_name = result2_num.split()[0]
                print(line1_Interface_name)
            if line2_mac2 in result2[i]:
                result2_num = (result2[i])
                print(result2[i])
                line2_Interface_name = result2_num.split()[0]
                print(line2_Interface_name)
        if line1_Interface_name == None:
            raise Exception('获取wan1口对应接口名称失败')
        if line2_Interface_name == None:
            raise Exception('获取wan2口对应接口名称失败')
        # 确认默认路由情况
        roure1 = bytes(('ip route | grep "%s"') % line2_Interface_name,
                       encoding="utf8")
        tn.write(roure1 + b'\n')
        # 输出结果,判断
        time.sleep(1)
        result = str(tn.read_very_eager())  # 执行多条命令时只会存最后一条命令的结果
        print('-------------------输出结果------------------------')
        # 命令执行结果
        print('result:', result)
        # 获取WAN1对应接口名称
        result1 = result[2:-7]
        print('result1', result1)
        result2 = result1.split(r'\r\n')
        print('result2', result2)
        #wan1已备份,只剩wan2路由,这里只判断wan2的
        wan2route = 'dev ' + line2_Interface_name
        print('wan2route:', wan2route)

        for i in range(len(result2)):
            if 'default' in result2[i] and wan2route in result2[i]:
                wan2route_status = not None
                print('wan2路由在')
        if wan2route_status == None:
            raise Exception('wan2默认路由显示有误')
        #单线路默认路由变为:default via 192.168.11.1 dev eth2.3 equalize 不再有weight值
        # (高通没有equalize):default via 192.168.12.1 dev eth0.3
        #多线mtk
        # default equalize
        #    nexthop via 192.168.32.1  dev eth2.2 weight 1
        #    nexthop via 192.168.200.1  dev eth2.3 weight 1
        # 多线高通
        # default
        #    nexthop via 192.168.11.1  dev eth0.2 weight 1
        #    nexthop via 192.168.11.1  dev eth0.3 weight 1

        tn.close()  # tn.write('exit\n')

        #2、设置线路检测地址,验证线路切换
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        self.driver.maximize_window()
        wan_config = NetworkConfig_wanpage(self.driver, self.url)

        # 进入网络配置-外网配置
        wan_config.click_NetworkConfig()
        time.sleep(0.5)
        wan_config.click_WANconfig()
        time.sleep(1)
        #配置线路检测 检测3s 检测 3次,地址为223.5.5.5
        wan_config.click_GlobalConfig()
        time.sleep(1)
        wan_config.input_KeepLive1('3')
        wan_config.input_RetryTimes1('3')
        sel1 = wan_config.selelement_byName(wan_config.PriAddrType1)
        Select(sel1).select_by_value('others')
        time.sleep(0.5)
        wan_config.input_DestIP1('223.5.5.5')

        wan_config.input_KeepLive2('3')
        wan_config.input_RetryTimes2('3')
        sel2 = wan_config.selelement_byName(wan_config.PriAddrType2)
        Select(sel2).select_by_value('others')
        time.sleep(0.5)
        wan_config.input_DestIP2('1.2.3.4')  #WAN2配一个ping不通的地址,测试线路切换
        wan_config.click_save()
        time.sleep(2)
        # 等待弹窗提示成功
        i = 0
        while i < 80:
            try:
                self.driver.implicitly_wait(1)
                wan_config.find_tipsshowin()
            except NoSuchElementException:
                time.sleep(1)
                i = i + 1
                print(i)
            else:
                tips = str(
                    wan_config.getAttribute_byClass(wan_config.tipsshowin,
                                                    'tip-sign'))
                print(tips, i)
                if tips != 'success':
                    CapPic(self.driver)
                    logger.info(u'线路检测保存 异常')
                    raise Exception(u'线路检测保存 异常')
                break
        else:
            raise Exception(u'线路检测保存 未弹出提示框')

        #切换标签页判断配置正确
        wan_config.click_WANconfig()
        time.sleep(1)
        wan_config.click_GlobalConfig()
        time.sleep(1)
        KeepLive2 = str(
            wan_config.getAttribute_byName(wan_config.KeepLive2v, 'value'))
        RetryTimes2 = str(
            wan_config.getAttribute_byName(wan_config.RetryTimes2v, 'value'))
        DestIP2 = str(
            wan_config.getAttribute_byName(wan_config.DestIP2v, 'value'))
        self.assertEqual(KeepLive2, '3', msg='wan2检测间隔与设置不一致')
        self.assertEqual(RetryTimes2, '3', msg='wan2检测次数与设置不一致')
        self.assertEqual(DestIP2, '1.2.3.4', msg='wan2检测地址与设置不一致')

        # 确认默认路由情况
        # 单线路默认路由变为:default via 192.168.11.1 dev eth2.2 equalize 不再有weight值
        wan1route1 = 'dev ' + line1_Interface_name
        print('wan1route:', wan1route1)
        roure1 = bytes(('ip route | grep "%s"') % line1_Interface_name,
                       encoding="utf8")

        time.sleep(10)  # 等待检测,路由切换
        x = 0
        while x < 60:
            tn = telnetlib.Telnet(host=hostip, port=port, timeout=10)
            tn.set_debuglevel(5)  # 级别越高输出的调试信息越多,并没有看出区别
            tn.read_until(b'login:'******'Password:'******'\n')
            # 输出结果,判断
            time.sleep(1)
            result = str(tn.read_very_eager())  # 执行多条命令时只会存最后一条命令的结果
            print('-------------------输出结果------------------------')
            # 命令执行结果
            # print('result:', result)
            result4 = result[1:]
            # print('result4', result4)
            result5 = result4.replace('\r\n', ' ')
            print('result5', result5)
            tn.close()
            # wan2、wan3检测不通,这里判断仅wan1在
            if 'default' in result5 and wan1route1 in result5:
                print('wan1路由在')
                break
            else:
                print(x)
                time.sleep(2)
                x += 1
        else:
            logger.info(u'wan1route1: %s' % wan1route1)
            logger.info(u'result5: %s' % result5)
            raise Exception('wan1默认路由显示有误')

        #3、将wan2检测目标改正确,线路、路由切换回来
        wan_config.input_DestIP2('223.5.5.5')  # WAN2检测地址改可ping通,测试线路切换
        wan_config.click_save()
        time.sleep(2)
        # 等待弹窗提示成功
        i = 0
        while i < 80:
            try:
                self.driver.implicitly_wait(1)
                wan_config.find_tipsshowin()
            except NoSuchElementException:
                time.sleep(1)
                i = i + 1
                print(i)
            else:
                tips = str(
                    wan_config.getAttribute_byClass(wan_config.tipsshowin,
                                                    'tip-sign'))
                print(tips, i)
                if tips != 'success':
                    CapPic(self.driver)
                    logger.info(u'线路检测保存 异常')
                    raise Exception(u'线路检测保存 异常')
                break
        else:
            raise Exception(u'线路检测保存 未弹出提示框')
        # 切换标签页判断配置正确
        wan_config.click_WANconfig()
        time.sleep(1)
        wan_config.click_GlobalConfig()
        time.sleep(1)
        DestIP2 = str(
            wan_config.getAttribute_byName(wan_config.DestIP2v, 'value'))
        self.assertEqual(DestIP2, '223.5.5.5', msg='wan2检测地址与设置不一致')

        time.sleep(20)  # 等待检测,路由切换
        # 确认默认路由情况(wan2检测地址通,默认路由应切换成wan2)
        # 单线路默认路由变为:default via 192.168.11.1 dev eth2.2 equalize 不再有weight值
        wan2route1 = 'dev ' + line2_Interface_name
        print('wan2route1:', wan2route1)
        roure1 = bytes(('ip route | grep "%s"') % wan2route1, encoding="utf8")
        x = 0
        while x < 60:
            tn = telnetlib.Telnet(host=hostip, port=port, timeout=10)
            tn.set_debuglevel(5)  # 级别越高输出的调试信息越多,并没有看出区别
            tn.read_until(b'login:'******'Password:'******'\n')
            # 输出结果,判断
            time.sleep(1)
            result = str(tn.read_very_eager())  # 执行多条命令时只会存最后一条命令的结果
            print('-------------------输出结果------------------------')
            # 命令执行结果
            # print('result:', result)
            result4 = result[1:]
            # print('result4', result4)
            result5 = result4.replace('\r\n', ' ')
            print('result5', result5)
            # wan2、wan3检测不通,这里只判断wan1的
            tn.close()
            if 'default' in result5 and wan2route1 in result5:
                print('wan2路由在')
                break
            else:
                print(x)
                time.sleep(2)
                x += 1
        else:
            logger.info(u'wan2route1: %s' % wan2route1)
            logger.info(u'result5: %s' % result5)
            raise Exception('wan2默认路由显示有误')

        #4、wan1口改回主线路
        wan_config.click_WANconfig()
        time.sleep(1)
        wan_config.click_line1edit()
        time.sleep(1)
        line_type = wan_config.selelement_byXpath(wan_config.line_type)
        Select(line_type).select_by_value('1')  # 1为主 0为备份
        wan_config.click_save()
        time.sleep(10)  # 修改接口后 可能会回到登录页面 所以关闭,再打开
        self.driver.quit()

        # telnet获取接口名称及确认默认路由
        wan1route_2 = 'dev ' + line1_Interface_name + ' weight '
        wan2route_2 = 'dev ' + line2_Interface_name + ' weight '
        print('wan1route_2:', wan1route_2, 'wan2route_2:', wan2route_2)
        time.sleep(10)
        # 获取接口名称
        x = 0
        while x < 60:
            tn = telnetlib.Telnet(host=hostip, port=port, timeout=10)
            tn.set_debuglevel(5)  # 级别越高输出的调试信息越多,并没有看出区别
            tn.read_until(b'login:'******'Password:'******'#')
            # 确认默认路由情况
            tn.write(b'ip route' + b'\n')
            # 输出结果,判断
            time.sleep(1)
            result9 = str(tn.read_very_eager())  # 执行多条命令时只会存最后一条命令的结果
            print('-------------------输出结果------------------------')
            # 命令执行结果
            # print('result9:', result9)
            # 获取WAN1对应接口名称
            result10 = result9[1:]
            # print('result10', result10)
            result11 = result10.replace('\r\n', ' ')
            print('result11', result11)
            tn.close()
            if (wan1route_2 in result11) and (wan2route_2 in result11):
                print('wan1/wan2路由在')
                break
            else:
                print(x)
                time.sleep(2)
                x += 1
        else:
            logger.info(u'wan1route_2: %s' % wan1route_2)
            logger.info(u'wan2route_2: %s' % wan2route_2)
            logger.info(u'result11 %s' % result11)
            raise Exception('wan1/wan2默认路由显示有误')

        logger.info('test_002_backupLineSW passed')
コード例 #20
0
    def test_001_openPPPoEAuth_addAcc(self):
        u'''开启PPPoE认证 - 创建PPPoE账号'''

        # 005中设置了黑名单上网,这里增加一个判断联网
        nodata = getAssertText('nodata')
        # 判断联网 ,不能则改回mac
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            # 将mac改回
            # 调用bat脚本
            os.system('%s' % (batpath + 'changeMacToBack.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, n)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                # raise Exception('未获取到地址1')
                # 开启绑定情况下 仅更改mac 可能会获取不到地址
                os.system('%s' % (batpath + 'ipconfig_release.bat'))
                time.sleep(5)
                os.system('%s' % (batpath + 'ipconfig_renew.bat'))
                time.sleep(5)
                i = 0
                while i < 30:
                    # 获取本机ip 默认有线地址,有线断开会显示无线
                    pcaddr_new = socket.gethostbyname(
                        socket.getfqdn(socket.gethostname()))
                    print(pcaddr_new, i)
                    if '192.168.' not in str(pcaddr_new):
                        time.sleep(2)
                        i += 1
                    else:
                        print('IP地址已自动获取成功2', i)
                        break
                else:
                    raise Exception('未获取到地址2')
            # 删除黑名单绑定
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            blacklist = Organization_userBlackPage(self.driver, self.url)
            # 打开用户管理 - 组织成员
            blacklist.click_UserManage()
            time.sleep(0.5)
            blacklist.click_blacklist()
            time.sleep(1)
            blacklist.click_delete()
            time.sleep(1)
            blacklist.click_ok()
            time.sleep(1)
            # 断言 开启提示信息是否有误
            listtips = str(blacklist.getText_byXpath(blacklist.list_tips))
            time.sleep(1)
            self.assertEqual(listtips, nodata, msg='黑名单用户删除失败')
            print('黑名单用户已删除')
            self.driver.quit()

        organization_group.import_empty_template(self)  # 判断组织架构是否有其他组 有则清空

        #调用新增组 “SelfComputerTest”
        organization_group.group_add(self)
        time.sleep(1)
        #开启PPPoE认证
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        pppoeauth = Organization_userAuthPage(self.driver, self.url)
        # 打开用户管理 - 用户认证
        pppoeauth.click_UserManage()
        time.sleep(0.5)
        pppoeauth.click_userAuth()
        time.sleep(1)
        #修改PPPoE服务器配置
        pppoeauth.click_PPPoEConfig()
        time.sleep(2)
        pppoeauth.input_pppoeStart('10.10.10.1')
        pppoeauth.input_pppoePriDns('114.114.114.114')
        pppoeauth.click_PppoeNoticeEn()
        pppoeauth.input_remainDays('50')  #账号到期提前通告时间50天 配合账号将要过期的通告
        pppoeauth.click_save()
        time.sleep(2)
        #启用pppoe server
        pppoeauth.click_pppoeAuthEn()
        time.sleep(1)
        # 断言 开启提示信息是否有误
        status = str(
            pppoeauth.getAttribute_byXpath(pppoeauth.pppoeAuthEns, 'checked'))
        time.sleep(1)
        print(status)
        self.assertEqual(status, 'true', msg='PPPoE认证开启出错')
        print('PPPoE认证开启 验证成功')

        #配置一个不计费的PPPoE账号
        pppoeauth.click_account()
        time.sleep(1)
        pppoeauth.click_addUser()
        time.sleep(1)
        pppoeauth.input_name('pppoeauth')
        #仅有一个用户组,这里省略
        select = pppoeauth.selelement_byName(pppoeauth.authType)
        Select(select).select_by_value('PPPoE')
        time.sleep(1)
        pppoeauth.input_authAccount('pppoeauth')
        pppoeauth.input_authPassword('pppoeauth')
        pppoeauth.click_save()
        time.sleep(2)
        #断言 添加的账号 认证方式和认证账号 是否正常
        list_authtype = pppoeauth.getText_byXpath(pppoeauth.list_authtype)
        list_authAcc = pppoeauth.getText_byXpath(pppoeauth.list_authAcc)
        self.assertEqual(str(list_authtype), 'PPPoE', msg='认证方式显示不为“PPPoE”')
        self.assertEqual(str(list_authAcc),
                         'pppoeauth',
                         msg='认证账号不为“pppoeauth”')

        self.driver.quit()
        logger.info('test_001_openPPPoEAuth_addAcc passed')
コード例 #21
0
    def test_001_dhcp(self):
        u'''外网配置 - 动态接入'''
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        #先判断几条外线接入,删除其他几条外线
        wan_config.click_line1edit()
        time.sleep(1)
        value_list = []
        wan_num = wan_config.selelement_byName(wan_config.PortName)
        options_list = wan_num.find_elements_by_tag_name(
            wan_config.PortNameOptions)
        for option in options_list:
            print("Value is:%s  Text is:%s" %
                  (option.get_attribute("value"), option.text))
            value_list.append(option.get_attribute("value"))
        print(value_list)
        wan_config.click_back()
        time.sleep(1)
        if 'WAN2' in value_list:
            wan_config.click_line2delete()
            time.sleep(1)
            wan_config.click_cfm_ok()
            time.sleep(10)
        if 'WAN3' in value_list:
            wan_config.click_line3delete()
            time.sleep(1)
            wan_config.click_cfm_ok()
            time.sleep(10)
        if 'WAN4' in value_list:
            wan_config.click_line4delete()
            time.sleep(1)
            wan_config.click_cfm_ok()
            time.sleep(10)
        if 'WAN5' in value_list:
            wan_config.click_line5delete()
            time.sleep(1)
            wan_config.click_cfm_ok()
            time.sleep(10)

        # 获取外线的链接类型
        line1_type = wan_config.getText_byXpath(wan_config.line1Type)
        linetype = getAssertText('DHCPline')
        ConnectState = getAssertText('ConnectState')
        # 先改为动态接入,得到正确的IP地址及网关地址
        # WAN1
        if str(line1_type) != linetype:
            wan_config.click_line1edit()
            time.sleep(1)
            access_mode = wan_config.selelement_byName(
                wan_config.connectionType)
            Select(access_mode).select_by_value('DHCP')
            wan_config.click_save()
            time.sleep(10)  # 修改接口后 可能会回到登录页面 所以关闭,再打开
            self.driver.quit()
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            wan_config = NetworkConfig_wanpage(self.driver, self.url)
            wan_config.click_NetworkConfig()
            time.sleep(0.5)
            wan_config.click_WANconfig()
            time.sleep(1)
        else:
            print('wan1 动态接入')
        #断言
        list_lineType = wan_config.getText_byXpath(wan_config.line1Type)
        print('list_lineType:', list_lineType)
        self.assertEqual(str(list_lineType), linetype, msg='连接类型 不为 动态接入')
        # 判断联网状态
        i = 0
        while i < 21:
            wan_config.click_refresh()
            time.sleep(1)
            list_conState = wan_config.getText_byXpath(
                wan_config.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        i = 0
        while i < 21:
            # 判断联网 ,不能上网则报错
            # pingTestIP('114.114.114.114')
            p = pingTestIP('www.baidu.com')
            print(p, i)
            if p == 'N':
                time.sleep(3)
                i += 1
            else:
                break
        else:
            logger.info(u"connect failed")
            raise Exception('connect failed.')

        self.driver.quit()
        logger.info('test_001_dhcp passed')
コード例 #22
0
ファイル: VPNconfig_001_ipsec.py プロジェクト: sanwzhou/SEWEB
    def test_001_ipsec(self):
        u'''ipsec VPN'''
        vpnRouteLan = getweb('vpnRouteLan')
        host = gettelnet('host')
        StateVPN1 = getAssertText('StateVPN1')
        WillReboottips = getAssertText('WillReboottips')

        #先判断是否可以上网
        p = pingTestIP()
        if p == 'N':
            os.system('%s' % (batpath + 'changeDhcpIp.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                pcaddr = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr, n)
                if '192.168.' not in str(pcaddr):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                raise Exception('未获取到地址')
            # 删除绑定绑定 清空组
            organization_group.group_delete(self)

        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        ipsec = IPsecPage(self.driver, self.url)
        ipsec.click_VPNConfig()
        time.sleep(0.5)
        ipsec.click_IPSec()
        time.sleep(1)
        # 操作删除 以访已有规则
        ipsec.click_selall()
        time.sleep(0.2)
        ipsec.click_delall()
        time.sleep(2)
        try:
            self.driver.implicitly_wait(2)
            ipsec.find_ok()
        except NoSuchElementException:
            try:
                ipsec.find_tipsshowin()
                time.sleep(1)
            except NoSuchElementException:
                pass
        else:
            time.sleep(1)
            print('ipsec VPN列表为空')

        ipsec.click_add()
        time.sleep(1)
        ipsec.input_ids('test')
        ipsec.input_peer(vpnRouteWan)
        ipsec.input_remoteAddr(vpnRouteLan)
        # ipsec.input_remoteMask('255.255.255.0')
        ipsec.input_preshareKey('12345678')
        ipsec.click_save()
        time.sleep(2)
        try:  #无线设备增加ac功能后 配置第一条ipsec时会提示重启
            ipsec.find_ok()
        except NoSuchElementException:
            pass
        else:
            time.sleep(2)
            tips = str(ipsec.getText_byClass(ipsec.u_tim_str))
            self.assertEqual(tips, WillReboottips, msg='点击提示重启 操作失败')
            # 设备重启时间不一致,做个判断
            time.sleep(30)
            i = 0
            while i < 20:
                now_url = str(self.driver.current_url)
                # print(now_url,i)
                if '/noAuth/login.html' not in now_url:  # 如果不同
                    time.sleep(5)
                else:
                    break
                i += 1
            else:
                raise Exception('设备重启未正常启动')
            self.driver.quit()
            login.loginWeb(self)

        # 从外网配置页面获取WAN1口地址
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_NetworkConfig()
        time.sleep(0.5)
        wanpage.click_WANconfig()
        time.sleep(1)

        # 判断联网状态
        i = 0
        while i < 21:
            wanpage.click_refresh()
            time.sleep(1)
            list_conState = wanpage.getText_byXpath(wanpage.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        i = 0
        while i < 21:
            # 判断联网 ,不能上网则报错
            p = pingTestIP('www.baidu.com')
            print(p, i)
            if p == 'N':
                time.sleep(3)
                i += 1
            else:
                break
        else:
            logger.info(u"connect failed")
            raise Exception('connect failed.')

        # WAN1 ip变量赋值,页面读取
        WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP))
        # print('WAN1_ip=',WAN1_ip)
        time.sleep(1)
        self.driver.quit()

        # 另外一台路由器 配置ipsec
        i = 0  #以访刚重启wan口还不通
        while i < 60:
            pingTestIP(vpnRouteWan)
            if p == 'N':
                time.sleep(1)
                i += 1
            else:
                break
        else:
            raise Exception(u'无法ping通vpnRoute')
        # time.sleep(5)
        login.test_enableLoginWeb(self, url=vpnRouteUrl)
        ipsec = IPsecPage(self.driver, self.url)
        ipsec.click_VPNConfig()
        time.sleep(0.5)
        ipsec.click_IPSec()
        time.sleep(1)
        # 操作删除 以访已有规则
        ipsec.click_selall()
        time.sleep(0.2)
        ipsec.click_delall()
        time.sleep(1)
        try:
            self.driver.implicitly_wait(2)
            ipsec.find_ok()
        except NoSuchElementException:
            try:
                ipsec.find_tipsshowin()
                time.sleep(1)
            except NoSuchElementException:
                pass
        else:
            time.sleep(1)
            print('ipsec VPN列表为空')

        ipsec.click_add()
        time.sleep(1)
        ipsec.input_ids('test')
        ipsec.input_peer(WAN1_ip)
        ipsec.input_remoteAddr(host)
        # ipsec.input_remoteMask('255.255.255.0')
        ipsec.input_preshareKey('12345678')
        ipsec.click_save()
        time.sleep(2)

        i = 0
        while i < 100:
            ipsec.click_IPSec()
            time.sleep(1)
            list_status = ipsec.getText_byXpath(ipsec.list_status)
            print(list_status)
            if list_status == StateVPN1:
                logger.info(u'ipsec 已建立')
                break
            else:
                time.sleep(3)
                i += 1
        else:
            logger.info(u'ipsec 未建立成功')
            CapPic(self.driver)
            raise Exception(u'ipsec未建立成功')

        self.driver.quit()
        logger.info('test_001_ipsec passed')
コード例 #23
0
    def test_006_binding(self):
        u'''启用ip/mac绑定生效;删除组织架构中的成员,查看绑定是否生效(是否可上网)'''
        host = gettelnet('host')
        # 判断联网 ,不能上网则报错
        p = pingTestIP('www.163.com')
        if p == 'N':
            raise Exception('connect failed.')

        # # 获取本机ip 默认有线地址,有线断开会显示无线
        # pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))

        # 调用bat脚本 地址修改为非绑定地址 192.168.1.39 网关192.168.1.1
        if '192.168.1.1' in host:
            os.system(('%s' % batpath + 'changeStaticIP2_1duan.bat'))
        elif '192.168.16.1' in host:
            os.system(('%s' % batpath + 'changeStaticIP2_16duan.bat'))
        else:
            raise Exception('lan口非 1网段、16网段')
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr1 = socket.gethostbyname(socket.getfqdn(
                socket.gethostname()))
            print(pcaddr1, n)
            if str(pcaddr1) != batSameIP:
                time.sleep(2)
                n += 1
            else:
                print('地址已修改为非绑定地址 192.168.1.39', n)
                break
        else:
            raise Exception('地址修改为非绑定地址 192.168.1.39失败')

        # 判断联网 ,切换非绑定IP后应该不能上网
        time.sleep(5)
        pingTestIP('114.114.114.114')
        pingTestIP('www.baidu.com')
        time.sleep(2)
        p = pingTestIP('www.baidu.com')
        if p == 'Y':
            logger.info('非绑定IP 依旧可以上网')
            logger.info(u'pc当前mac为:%s' % pcaddr1)
            raise Exception('非绑定IP 依旧可以上网')

        # 将IP改回自动获取(设置dns为自动获取)
        # 调用bat脚本
        os.system(('%s' % batpath + 'changeDhcpIp.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr1 = socket.gethostbyname(socket.getfqdn(
                socket.gethostname()))
            print(pcaddr1, n)
            if '192.168.' not in str(pcaddr1):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功', n)
                break
        else:
            raise Exception('未获取到地址')

        #删除绑定绑定 清空组
        organization_group.group_delete(self)

        # 调用bat脚本 地址修改为非绑定地址 192.168.1.39 网关192.168.1.1
        if '192.168.1.1' in host:
            os.system(('%s' % batpath + 'changeStaticIP2_1duan.bat'))
        elif '192.168.16.1' in host:
            os.system(('%s' % batpath + 'changeStaticIP2_16duan.bat'))
        else:
            raise Exception('lan口非 1网段、16网段')
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr1 = socket.gethostbyname(socket.getfqdn(
                socket.gethostname()))
            print(pcaddr1, n)
            if str(pcaddr1) != batSameIP:
                time.sleep(2)
                n += 1
            else:
                print('地址已修改为非绑定地址 192.168.1.39', n)
                break
        else:
            raise Exception('地址修改为非绑定地址 192.168.1.39失败')

        # 判断联网 ,删除绑定后 切换非绑定IP后应该能上网
        time.sleep(3)
        p = pingTestIP('www.163.com')
        if p == 'N':
            raise Exception('connect failed.')

        # 将IP改回自动获取(设置dns为自动获取)
        # 调用bat脚本
        os.system(('%s' % batpath + 'changeDhcpIp.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr1 = socket.gethostbyname(socket.getfqdn(
                socket.gethostname()))
            print(pcaddr1, n)
            if '192.168.' not in str(pcaddr1):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功', n)
                break
        else:
            raise Exception('未获取到地址')
        logger.info('test_006_binding passed')
コード例 #24
0
ファイル: ConfigGuide.py プロジェクト: sanwzhou/SEWEB
    def test_002_static(self):
        u'''配置向导 - 固定接入'''
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        Staticline = getAssertText('Staticline')
        ConnectState = getAssertText('ConnectState')
        # 从外网配置页面获取WAN1口地址
        wan_config.click_NetworkConfig()
        time.sleep(0.5)
        wan_config.click_WANconfig()
        time.sleep(1)
        # 判断联网状态
        i = 0
        while i < 21:
            wan_config.click_refresh()
            time.sleep(1)
            list_conState = wan_config.getText_byXpath(
                wan_config.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        WAN1_ip = wan_config.getText_byXpath(wan_config.line1IP)
        WAN1_gw = wan_config.getText_byXpath(wan_config.line1gw)
        WAN1_dns = wan_config.getText_byXpath(wan_config.line1Dns)
        time.sleep(1)
        # 进入配置向导 将wan1口的IP/网关/dns 拿来输入
        guide = ConfigGuidepage(self.driver, self.url)
        guide.click_configGuide()
        time.sleep(1)
        guide.click_next()
        time.sleep(1)
        connectionTypew = guide.selelement_byName(guide.connectionTypew)
        Select(connectionTypew).select_by_value('STATIC')
        time.sleep(1)
        guide.input_staticIp(WAN1_ip)
        guide.input_staticGateway(WAN1_gw)
        guide.input_staticPriDns(WAN1_dns)
        try:
            self.driver.implicitly_wait(2)
            guide.find_okey()
        except NoSuchElementException:
            print('设备支持无线')
            if support2 != '--':
                logger.info(u'参数支持2.4G')
                logger.info(u'支持2.4G,与参数表相符')
            else:
                CapPic(self.driver)
                logger.info(u'支持2.4G,与参数表不相符')
                raise Exception('支持2.4G,与参数表不相符')
            guide.click_next()
            time.sleep(1)
            guide.input_ssid('ssid_2.4G')
            try:
                guide.find_ssid_5g()
            except NoSuchElementException:
                if support5 != '--':
                    CapPic(self.driver)
                    logger.info(u'不支持5G,与参数表不相符')
                    raise Exception('不支持5G,与参数表不相符')
                else:
                    logger.info(u'不支持5G,与参数表相符')
            else:
                print('设备支持5G')
                if support5 != '--':
                    CapPic(self.driver)
                    logger.info(u'支持5G,与参数表相符')
                else:
                    CapPic(self.driver)
                    logger.info(u'支持5G,与参数表不相符')
                    raise Exception('支持5G,与参数表不相符')
                guide.input_ssid_5g('ssid_5G')
            guide.click_okey()
            time.sleep(8)
        else:
            print('设备不支持无线')
            if support2 != '--':
                CapPic(self.driver)
                logger.info(u'不支持2.4G,与参数表不相符')
                raise Exception('不支持2.4G,与参数表不相符')
            else:
                logger.info(u'不支持2.4G,与参数表相符')
        self.driver.implicitly_wait(10)
        time.sleep(15)
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        # 进入网络配置-外网配置
        wan_config.click_NetworkConfig()
        time.sleep(0.5)
        wan_config.click_WANconfig()
        time.sleep(1)
        # 断言
        list_lineType = wan_config.getText_byXpath(wan_config.line1Type)
        print('list_lineType', list_lineType)
        self.assertEqual(str(list_lineType), Staticline, msg='连接类型 不为 固定接入')
        # 判断联网状态
        i = 0
        while i < 21:
            wan_config.click_refresh_s()
            time.sleep(1)
            list_conState = wan_config.getText_byXpath(
                wan_config.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        i = 0
        while i < 21:
            # 判断联网 ,不能上网则报错
            # pingTestIP('114.114.114.114')
            p = pingTestIP('www.baidu.com')
            print(p, i)
            if p == 'N':
                i += 1
                time.sleep(3)
            else:
                break
        else:
            logger.info(u"connect failed")
            raise Exception('connect failed.')

        self.driver.quit()
        logger.info('test_002_static passed')
コード例 #25
0
    def test_004_WanAcessFTP(self):
        u'''WAN口访问FTP'''
        ftpSmaba = NetworkSharingPage(self.driver, self.url)
        #1、验证未打开 ‘wan口访问’ 无法从wan访问FTP
        #1)验证未打开
        WANEnable = str(
            self.driver.find_element_by_name('WANEnable').get_attribute(
                'checked'))
        print(WANEnable)
        if WANEnable == 'true':
            self.driver.find_element_by_name('WANEnable').click()
            ftpSmaba.click_save()
            time.sleep(1)
            ftpSmaba.click_NetworkSharing2()  # 点击网络共享子页面
            time.sleep(1)
            WANEnable = str(
                self.driver.find_element_by_name('WANEnable').get_attribute(
                    'checked'))
            self.assertEqual(WANEnable, 'None', msg='允许wan口访问 关闭失败')
        #2)从外网配置页面获取WAN1口地址
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_WANconfig()
        time.sleep(1)
        # WAN1 ip变量赋值,页面读取
        WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP))
        time.sleep(1)
        #3) 更改pc 交换机接口与wan口/上联口通
        swconfig.test_LanToWan(self)
        # 重新获取地址 应获取到上层网关下发的地址
        pcaddr = str(socket.gethostbyname(socket.getfqdn(
            socket.gethostname())))
        # 调用bat脚本 IP地址释放
        os.system('%s' % (batpath + 'ipconfig_release.bat'))
        time.sleep(2)
        pcaddr1 = str(
            socket.gethostbyname(socket.getfqdn(socket.gethostname())))
        print(pcaddr1)
        if pcaddr1 != str(pcaddr):
            print('IP地址已释放')
        else:
            time.sleep(3)
        time.sleep(2)
        # 重新获取地址
        os.system('%s' % (batpath + 'ipconfig_renew.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
            print(pcaddr, n)
            if '192.168.' not in str(pcaddr):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功', n)
                break
        else:
            raise Exception('未获取到地址')
        time.sleep(2)
        #4)尝试访问FTP
        # ftp验证登录
        IP = WAN1_ip
        Port = 21
        ftp = ftplib.FTP()
        ftp.encoding = 'utf-8'
        try:
            ftp.connect(host=IP, port=Port, timeout=5)
            ftp.login(user='******')  # 相当于没有验证账号密码
        except socket.error or socket.gaierror:
            print("未开启“WAN口访问开关”无法访问FTP服务 验证通过")
        except ftplib.error_perm:  # 当前未开启wan口访问,wan口访问时候会弹出账号密码框,但输入会提示密码错误
            print("未开启“WAN口访问开关”访问FTP服务会密码错误 验证通过")
        else:
            raise Exception("未开启“WAN口访问开关” 依旧可以访问FTP服务")
        ftp.quit()
        #5)改为lan口 并重新获取地址
        switchURL2 = gettelnet('switchURL2')
        # 调用bat脚本 地址修改为 192.168.34.39 网关192.168.34.1
        os.system('%s' % (batpath + 'changeStaticIP3_34duan.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
            print(pcaddr, n)
            if str(pcaddr) != '192.168.34.39':
                time.sleep(2)
                n += 1
            else:
                print('地址已修改为地址 192.168.34.39', n)
                break
        else:
            raise Exception('地址修改为192.168.34.39 失败')
        # 更改pc 交换机接口与lan口通
        p = pingTestIP(switchURL2)
        if p == 'Y':
            swconfig.test_WanToLan(self)
        # 将IP改回自动获取 应获取到被测设备下发的地址
        os.system('%s' % (batpath + 'changeDhcpIp.bat'))
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr_new = socket.gethostbyname(
                socket.getfqdn(socket.gethostname()))
            print(pcaddr_new, n)
            if '192.168.' not in str(pcaddr_new):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功', n)
                break
        else:
            raise Exception('未获取到地址')
        time.sleep(3)
        #2 验证打开 ‘wan口访问’ 可以从wan口访问FTP
        #1)打开
        ftpSmaba = NetworkSharingPage(self.driver, self.url)
        ftpSmaba.click_NetworkSharing()
        time.sleep(1)
        ftpSmaba.click_NetworkSharing2()  # 点击网络共享子页面
        time.sleep(1)
        self.driver.find_element_by_name('WANEnable').click()
        ftpSmaba.click_save()
        time.sleep(2)
        WANEnable = self.driver.find_element_by_name(
            'WANEnable').get_attribute('checked')
        self.assertEqual(WANEnable, 'true', msg='允许wan口访问 启用失败')
        #2) 更改pc 交换机接口与wan口/上联口通
        swconfig.test_LanToWan(self)
        # 重新获取地址 应获取到上层网关下发的地址
        pcaddr = str(socket.gethostbyname(socket.getfqdn(
            socket.gethostname())))
        # 调用bat脚本 IP地址释放
        os.system('%s' % (batpath + 'ipconfig_release.bat'))
        time.sleep(2)
        pcaddr1 = str(
            socket.gethostbyname(socket.getfqdn(socket.gethostname())))
        print(pcaddr1)
        if pcaddr1 != str(pcaddr):
            print('IP地址已释放')
        else:
            time.sleep(3)
        time.sleep(2)
        # 重新获取地址
        os.system('%s' % (batpath + 'ipconfig_renew.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
            print(pcaddr, n)
            if '192.168.' not in str(pcaddr):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功', n)
                break
        else:
            raise Exception('未获取到地址')
        time.sleep(2)
        # 3)ftp验证登陆
        try:
            ftp.connect(host=IP, port=Port, timeout=5)
        except socket.error or socket.gaierror:
            raise Exception("无法访问FTP服务")
        try:
            ftp.login(user='******')  # 相当于没有验证账号密码
        except ftplib.error_perm:
            raise Exception("FTP账号密码验证错误")
        ftpFile = ftp.nlst('1')  # 获取指定目录下的文件
        print('ftpFile', ftpFile)
        ftp.quit()

        self.driver.quit()
        logger.info('test_004_WanaAcess passed')
コード例 #26
0
    def tearDown(self):
        switchURL2 = gettelnet('switchURL2')
        p = pingTestIP()
        if p == 'N':
            # 调用bat脚本 地址修改为 192.168.34.39 网关192.168.34.1
            os.system('%s' % (batpath + 'changeStaticIP3_34duan.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr, n)
                if str(pcaddr) != '192.168.34.39':
                    time.sleep(2)
                    n += 1
                else:
                    print('地址已修改为地址 192.168.34.39', n)
                    time.sleep(2)
                    break
            else:
                raise Exception('地址修改为192.168.34.39 失败')
            time.sleep(2)

            # 更改pc 交换机接口与lan口通
            p = pingTestIP(switchURL2)
            if p == 'N':
                raise Exception(u'无法ping通交换机switchURL2地址')
            swconfig.test_WanToLan(self)
        # 将IP改回自动获取 应获取到被测设备下发的地址
        os.system('%s' % (batpath + 'changeDhcpIp.bat'))
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr_new = socket.gethostbyname(
                socket.getfqdn(socket.gethostname()))
            print(pcaddr_new, n)
            if '192.168.' not in str(pcaddr_new):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功', n)
                break
        else:
            raise Exception('未获取到地址')

        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        staticMapping = staticMappingPage(self.driver, self.url)
        # 配置映射
        staticMapping.click_NetworkConfig()
        time.sleep(0.5)
        staticMapping.click_portMapping()
        time.sleep(1)
        try:
            self.driver.implicitly_wait(2)
            staticMapping.find_delete1()
        except NoSuchElementException:
            pass
        else:
            time.sleep(1)
            staticMapping.click_ok()
            time.sleep(1)
            list_tips = staticMapping.getText_byXpath(staticMapping.list_tips)
            self.assertEqual(str(list_tips), ' ', msg='映射删除失败')
        self.driver.quit()

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
コード例 #27
0
ファイル: ConfigGuide.py プロジェクト: sanwzhou/SEWEB
    def test_003_pppoe(self):
        u'''配置向导 - PPPoE接入'''
        guide = ConfigGuidepage(self.driver, self.url)
        PPPoEline = getAssertText('PPPoEline')
        ConnectState = getAssertText('ConnectState')
        # 进入配置向导
        guide.click_configGuide()
        time.sleep(0.5)
        guide.click_next()
        time.sleep(1)
        connectionTypew = guide.selelement_byName(guide.connectionTypew)
        Select(connectionTypew).select_by_value('PPPOE')
        time.sleep(1)
        guide.input_pppoeUser('111')  #输入上层网关配置的PPPoE账号密码
        guide.input_pppoePass('111')
        self.driver.implicitly_wait(2)  # 无线设备会定位不到okey,这里让等待时间缩短一些
        try:
            guide.find_okey()
        except NoSuchElementException:
            print('设备支持无线')
            if support2 != '--':
                logger.info(u'参数支持2.4G')
                logger.info(u'支持2.4G,与参数表相符')
            else:
                CapPic(self.driver)
                logger.info(u'支持2.4G,与参数表不相符')
                raise Exception('支持2.4G,与参数表不相符')
            guide.click_next()
            time.sleep(1)
            guide.input_ssid('ssid_2.4G')
            try:
                guide.find_ssid_5g()
            except NoSuchElementException:
                if support5 != '--':
                    CapPic(self.driver)
                    logger.info(u'不支持5G,与参数表不相符')
                    raise Exception('不支持5G,与参数表不相符')
                else:
                    logger.info(u'不支持5G,与参数表相符')
            else:
                print('设备支持5G')
                if support5 != '--':
                    CapPic(self.driver)
                    logger.info(u'支持5G,与参数表相符')
                else:
                    CapPic(self.driver)
                    logger.info(u'支持5G,与参数表不相符')
                    raise Exception('支持5G,与参数表不相符')
                guide.input_ssid_5g('ssid_5G')
            guide.click_okey()
            time.sleep(8)
        else:
            print('设备不支持无线')
            if support2 != '--':
                CapPic(self.driver)
                logger.info(u'不支持2.4G,与参数表不相符')
                raise Exception('不支持2.4G,与参数表不相符')
            else:
                logger.info(u'不支持2.4G,与参数表相符')
        time.sleep(15)
        self.driver.implicitly_wait(10)
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        # 进入网络配置-外网配置
        wan_config.click_NetworkConfig()
        time.sleep(0.5)
        wan_config.click_WANconfig()
        time.sleep(1)
        # 断言
        list_lineType = wan_config.getText_byXpath(wan_config.line1Type)
        # print('list_lineType:',list_lineType)
        self.assertEqual(str(list_lineType), PPPoEline, msg='连接类型 不为 PPPoE接入')
        # PPPoE接入 拨号成功才会显示已连接
        i = 0
        while i < 21:
            wan_config.click_refresh()
            time.sleep(1)
            list_conState = wan_config.getText_byXpath(
                wan_config.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        i = 0
        while i < 21:
            # 判断联网 ,不能上网则报错
            # pingTestIP('114.114.114.114')
            p = pingTestIP('www.baidu.com')
            print(p, i)
            if p == 'N':
                i += 1
                time.sleep(3)
            else:
                break
        else:
            logger.info(u"connect failed")
            raise Exception('connect failed.')
        #
        # list_conState = guide.getText_byXpath(guide.list_connState)
        # print('list_connection_state:',str(list_conState))
        # if str(list_conState) != ConnectState:  # PPPoE接入 拨号成功才会显示已连接
        #     time.sleep(5)
        #     guide.click_refresh()
        #     time.sleep(0.5)
        #     list_conState = guide.getText_byXpath(guide.list_connState)
        #     if str(list_conState) != ConnectState:  # PPPoE接入 拨号成功才会显示已连接
        #         guide.click_list_connState()
        #         guide.click_dial()
        #         time.sleep(10)
        #         guide.click_refresh()
        #         time.sleep(0.5)
        #         list_conState = guide.getText_byXpath(guide.list_connState)
        #         if str(list_conState) != ConnectState:
        #             raise Exception('WAN1 未连接')
        #         else:  # 已连接
        #             time.sleep(3)
        #             pingTestIP('114.114.114.114')
        #             pingTestIP('www.baidu.com')
        #             p = pingTestIP('www.baidu.com')
        #             if p == 'N':
        #                 raise Exception('connect failed.')
        #     else:  # 已连接
        #         time.sleep(3)
        #         pingTestIP('114.114.114.114')
        #         pingTestIP('www.baidu.com')
        #         p = pingTestIP('www.baidu.com')
        #         if p == 'N':
        #             raise Exception('connect failed.')
        # else:  # 已连接
        #     time.sleep(3)
        # pingTestIP('114.114.114.114')
        # pingTestIP('www.baidu.com')
        # p = pingTestIP('www.baidu.com')
        # if p == 'N':
        #     raise Exception('connect failed.')

        self.driver.quit()
        logger.info('test_003_pppoe passed')
コード例 #28
0
    def test_002_close(self):
        u'''关闭即插即用 错误的IP,无法上网'''
        plug = NetworkConfig_LANpage(self.driver, self.url)
        saveSucess = getAssertText('saveSucess')

        # 关闭UPNP
        plug.click_upnpClose()
        time.sleep(0.5)
        plug.click_save()
        time.sleep(1)
        # 断言 开启提示信息是否有误
        tips = str(plug.getText_byClass(plug.tips))
        time.sleep(1)
        self.assertEqual(tips, saveSucess, msg='即插即用 开启出错')
        print('即插即用 已关闭')

        #判断联网 ,关闭即插即用后 错误IP用户应该不能上网
        pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
        if pcaddr != '192.168.189.39':
            # 调用bat脚本 地址修改为 192.168.189.39 网关192.168.198.1
            os.system('%s' % (batpath + 'changeStaticIP.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr, n)
                if str(pcaddr) != '192.168.198.39':
                    time.sleep(2)
                    n += 1
                else:
                    print('地址已修改为地址 192.168.198.39', n)
                    break
            else:
                raise Exception('地址修改为192.168.198.39 失败')
        time.sleep(3)
        pingTestIP('114.114.114.114')  #避免失误
        pingTestIP()  #避免失误

        p = pingTestIP('114.114.114.114')
        if p == 'Y':
            raise Exception('错误IP用户依旧可以上网')
        p = pingTestIP()
        if p == 'Y':
            raise Exception('错误IP用户依旧可以访问路由器')
        time.sleep(1)

        #将IP改回自动获取
        os.system('%s' % batpath + 'changeDhcpIp.bat')
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr1 = socket.gethostbyname(socket.getfqdn(
                socket.gethostname()))
            print(pcaddr1, n)
            if '192.168.' not in str(pcaddr1):
                time.sleep(2)
                n += 1
            else:
                print('IP地址已自动获取成功', n)
                break
        else:
            raise Exception('未获取到地址')

        # 判断联网 ,不能上网则报错
        pingTestIP('www.163.com')  # 避免失误
        p = pingTestIP('www.163.com')
        if p == 'N':
            raise Exception('connect failed.')

        self.driver.quit()
        logger.info('test_002_close passed')
コード例 #29
0
ファイル: all_MaxSet.py プロジェクト: sanwzhou/SEWEB
        from common.ReadConfig import getweb, getParameter
        from common.pingTest import pingTestIP
        from common.GetRouteCPU import getCPUmodel
        from common.swconfig import swconfig
        from common.swconfig import test_initSwPortNext
        from common.initTestPC import initTestPC
        from common.GetWanNum import getWanNum
        # from common.ParametersFileU import parametersFile
        from common.SoftwareReplace import softwareReplac
        if testCount > 1:
            #判断切换到下一个型号对应的wan/lan口 并初始化交换机
            test_initSwPortNext()
            time.sleep(2)
            p = 0  #更换板子后要等arp更新
            while p < 30:
                ping = pingTestIP()
                print('ping:', ping)
                if ping != 'Y':
                    time.sleep(1)
                    p += 1
                else:
                    break
            else:
                raise Exception('切换交换机端口后 无法ping通下一个测试主机')

            ReplaceVersion = 'ReplaceVersion' + str(testCount - 1)
            print('更换到的版本号:', getweb(ReplaceVersion))
            softwareReplac(getweb(ReplaceVersion))  # telnet更换路由器软件

        #1、性能参数
        from test_case import Parameter_010_DefaultInfo  #出厂信息(包含了恢复出厂)
コード例 #30
0
ファイル: ConfigGuide.py プロジェクト: sanwzhou/SEWEB
    def test_001_dhcp(self):
        u'''配置向导 - 动态接入'''
        guide = ConfigGuidepage(self.driver, self.url)
        linetype = getAssertText('DHCPline')
        ConnectState = getAssertText('ConnectState')
        # 进入配置向导
        guide.click_configGuide()
        time.sleep(0.5)
        guide.click_next()
        time.sleep(1)
        connectionTypew = guide.selelement_byName(guide.connectionTypew)
        Select(connectionTypew).select_by_value('DHCP')
        try:
            self.driver.implicitly_wait(2)
            guide.find_okey()
        except NoSuchElementException:
            print('设备支持无线')
            if support2 != '--':
                logger.info(u'参数支持2.4G')
                logger.info(u'支持2.4G,与参数表相符')
            else:
                CapPic(self.driver)
                logger.info(u'支持2.4G,与参数表不相符')
                raise Exception('支持2.4G,与参数表不相符')
            guide.click_next()
            time.sleep(1)
            guide.input_ssid('ssid_2.4G')
            try:
                guide.find_ssid_5g()
            except NoSuchElementException:
                if support5 != '--':
                    CapPic(self.driver)
                    logger.info(u'不支持5G,与参数表不相符')
                    raise Exception('不支持5G,与参数表不相符')
                else:
                    logger.info(u'不支持5G,与参数表相符')
            else:
                print('设备支持5G')
                if support5 != '--':
                    CapPic(self.driver)
                    logger.info(u'支持5G,与参数表相符')
                else:
                    CapPic(self.driver)
                    logger.info(u'支持5G,与参数表不相符')
                    raise Exception('支持5G,与参数表不相符')
                guide.input_ssid_5g('ssid_5G')
            guide.click_okey()
            time.sleep(8)
        else:
            print('设备不支持无线')
            if support2 != '--':
                CapPic(self.driver)
                logger.info(u'不支持2.4G,与参数表不相符')
                raise Exception('不支持2.4G,与参数表不相符')
            else:
                logger.info(u'不支持2.4G,与参数表相符')
        time.sleep(15)
        self.driver.implicitly_wait(10)
        wan_config = NetworkConfig_wanpage(self.driver, self.url)
        # 进入网络配置-外网配置
        wan_config.click_NetworkConfig()
        time.sleep(0.5)
        wan_config.click_WANconfig()
        time.sleep(1)
        # 断言
        list_lineType = wan_config.getText_byXpath(wan_config.line1Type)
        print('list_lineType:', list_lineType)
        self.assertEqual(str(list_lineType), linetype, msg='连接类型 不为 动态接入')
        # 判断联网状态
        i = 0
        while i < 21:
            wan_config.click_refresh()
            time.sleep(1)
            list_conState = wan_config.getText_byXpath(
                wan_config.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        i = 0
        while i < 21:
            # 判断联网 ,不能上网则报错
            # pingTestIP('114.114.114.114')
            p = pingTestIP('www.baidu.com')
            print(p, i)
            if p == 'N':
                time.sleep(3)
                i += 1
            else:
                break
        else:
            logger.info(u"connect failed")
            raise Exception('connect failed.')

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