Beispiel #1
0
    def test_002_localDMZ(self):
        u'''验证局部DMZ'''
        # #获取本机地址
        # pcaddr=socket.gethostbyname(socket.gethostname())

        # 通过用户状态获取httpserver的IP地址
        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)
        status.input_search(serverPcMac)
        status.click_searchb()
        time.sleep(1)
        try:
            serverIP = status.getText_byXpath(status.list_IP1)
            # print(serverIP)
        except NoSuchElementException:
            raise Exception(u'用户状态中未找到server IP')

        #局部DMZ
        dmz = DMZPage(self.driver, self.url)
        dmz.click_NetworkConfig()
        time.sleep(0.5)
        dmz.click_portMapping()
        time.sleep(1)
        dmz.click_DMZ()
        time.sleep(1)
        dmz.click_DMZEn()
        dmz.input_GlobalDMZ('0.0.0.0')  #防止已经有过全局DMZ设置
        dmz.input_WAN1DMZ(serverIP)
        dmz.click_save()
        time.sleep(1)
        #断言
        dmz.click_DMZ()  #相当于刷新下界面,否则on依旧没有checked参数
        time.sleep(1)
        DMZ_status = str(dmz.getAttribute_byXpath(dmz.DMZEs, 'checked'))
        print(DMZ_status)
        self.assertEqual(DMZ_status, 'true', msg='DMZ 开启有问题')
        print('局部DMZ 已开启')

        # 从外网配置页面获取WAN1口地址
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_WANconfig()
        time.sleep(1)
        # WAN1 ip变量赋值,页面读取
        # 判断联网状态
        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 未连接')
        WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP))
        time.sleep(1)

        if CPUmodel == 'Qualcomm':
            # 部分型号,如高通1200Wv2,因为芯片问题必须关闭wan口mac学习功能,原mac未清除之前无法从wan口访问路由器
            # 这里需要设置计划任务2分钟后清空原pc的arp缓存
            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"uptime" + b"\n")
            # 输出结果,判断
            time.sleep(1)
            result = str(tn.read_very_eager())  # 只会存最后一条命令的结果
            print('-------------------输出结果------------------------')
            # 命令执行结果
            print('result:', result)
            result1 = str(result.split(r'\r\n')[1]).split(r':')
            print(result1[1])
            tn.close()  # tn.write('exit\n')
            if int(result1[1]) + 2 < 60:
                hour = result1[0]
                min = int(result1[1]) + 2
            else:
                if int(result1[0]) + 1 < 24:
                    hour = int(result1[0]) + 1
                    min = '0' + str((int(result1[1]) + 2) - 60)
                else:
                    hour = '0' + str(int(result1[0]) + 1 - 24)
                    min = '0' + str((int(result1[1]) + 2) - 60)
            print(hour)
            print(min)
            pcaddr = str(
                socket.gethostbyname(socket.getfqdn(socket.gethostname())))
            cmd = "echo '%s %s * * * arp -d %s' > cmd " % (min, hour, pcaddr)
            print(cmd)
            cmd = bytes(cmd, encoding='utf8')
            tn = telnetlib.Telnet(host=hostip, port=port, timeout=10)
            tn.set_debuglevel(5)  # 级别越高输出的调试信息越多,并没有看出区别
            # 输入登录用户名
            tn.read_until(b'login:'******'Password:'******'#')
            tn.write(cmd + b"\n")
            tn.read_until(b'#')
            tn.write(b"cat cmd >> /var/spool/cron/crontabs/admin" + b"\n")
            tn.read_until(b'#')
            tn.write(b"killall crond" + b"\n")
            tn.read_until(b'#')
            tn.write(b"crond &" + b"\n")
            tn.read_until(b'#')
            tn.write(b"cat /var/spool/cron/crontabs/admin" + b"\n")
            # 输出结果,判断
            time.sleep(1)
            result = str(tn.read_very_eager())  # 只会存最后一条命令的结果
            print('-------------------输出结果------------------------')
            # 命令执行结果
            print('result:', result)
            if 'adp -d' in result:
                print('计划任务已写入')

        # 更改pc 交换机接口与wan口/上联口通
        swconfig.test_LanToWan(self)
        if CPUmodel == 'Qualcomm':
            time.sleep(120)  # 等待计划任务执行
        # 重新获取地址 应获取到上层网关下发的地址
        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)
        # 将IP改回自动获取(设置dns为自动获取)
        # 调用bat脚本
        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('未获取到地址')

        try:
            telnetlib.Telnet(str(WAN1_ip), port=3389, timeout=10)
            print('局部DMZ 验证成功')
        except socket.timeout:
            logger.info(u'局部DMZ 验证失败')
            raise Exception(u'局部DMZ 验证失败')
        self.driver.quit()
        logger.info('test_002_localDMZ passed')
    def test_Keywordfilter(self):
        u'''关键字过滤 “通知”,在200.200.200.134搜索通知文档不成功'''
        OAurl = getAssertText('OAurl')
        OAadmin = getAssertText('OAadmin')
        OApasswd = getAssertText('OApasswd')

        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('Keywordfilter')
        selFilterTypes = firewall.selelement_byName(firewall.selFilterTypes)
        time.sleep(1)
        Select(selFilterTypes).select_by_value('3') #关键字过滤
        firewall.input_glnrKeyword('通知')
        firewall.click_save()
        time.sleep(20)
        # 开启访问控制
        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 , '通知', msg='过滤内容不为"www.163.com"')
        checkTrafficS=firewall.getAttribute_byId(firewall.checkTrafficS,'checktype') #checktype 0未开启,1开启
        self.assertEqual(checkTrafficS,'1',msg='访问控制 未开启')
        self.driver.quit()
        #
        # # 访问OA
        time.sleep(5)
        self.driver = webdriver.Chrome()
        self.driver.set_page_load_timeout(10)  # selenium超时设置/等待时间过长自动停止 配合去情形1
        # self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        self.driver.get(OAurl)
        firewall = AccessControlPage(self.driver, self.url)
        firewall.input_OAloginid(OAadmin)
        firewall.input_OApassword(OApasswd)
        firewall.click_OAlogin()
        time.sleep(2)
        # 切换成文档搜索 输入关键字

        #
        # try:
        #     self.driver.implicitly_wait(2)
        #     firewall.click_notice()
        #     time.sleep(2)
        # except NoSuchElementException:
        #     pass

        firewall.click_OAsearcn()
        time.sleep(1)
        firewall.click_OAsearcnWD()
        time.sleep(1)
        firewall.input_OAsearchvalue('通知')
        time.sleep(1)
        #不同chrome 点击确定后的情况不同
        # 情况1:
        # 因为被过滤,在点击后不会有返回结果,命令执行后会一直处于命令执行中,最后报超时错误,默认超时300s
        # selenium.common.exceptions.TimeoutException: Message: timeout
        # 配合上文 set_page_load_timeout(10)设置等待超时时间,这里等待10s,判断报超时错误则正常,否则失败
        # 情况2
        # 点击的命令有返回,这时候就通过 不能定位到HeaderForXtalbe状态栏确定

        firewall.find_OAsearchbt()
        time.sleep(5)
        try:
            firewall.find_OAsearchbt()
            # self.driver.find_element_by_id('searchbt').click()
        except TimeoutException:
            print('关键字过滤 验证通过')
        else:
            try:
                firewall.find_HeaderForXtalbe()
            except NoSuchElementException:
                print('关键字过滤 验证通过2')
            else:
                raise Exception('关键字过滤失败')

        # 退出OA
        firewall.click_OAlogout()
        time.sleep(1)
        firewall.click_OAsubmit()
        self.driver.quit()

        logger.info('test_Keywordfilter passed')
Beispiel #3
0
    def test_004_DMZpriority(self):
        u'''验证 映射和DMZ的优先级'''

        #将3389端口映射给一个不存在的主机
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        staticMapping = staticMappingPage(self.driver, self.url)
        # 配置映射
        staticMapping.click_NetworkConfig()
        time.sleep(0.5)
        staticMapping.click_portMapping()
        time.sleep(1)
        staticMapping.click_add()
        time.sleep(1)
        staticMapping.input_IDs('statictest')
        staticMapping.input_IPs('1.2.3.4')
        staticMapping.input_inS('3389')
        staticMapping.input_inE('3389')
        staticMapping.input_outS('3389')
        staticMapping.input_outE('3389')
        staticMapping.click_save()
        time.sleep(1)
        #断言
        list_port = str(
            self.driver.find_element_by_xpath(
                '//*[@id="1"]/div/div/div[1]/table/tbody/tr[2]/td[6]/span').
            text)
        print(list_port)
        self.assertEqual(list_port, '3389~3389:3389~3389', msg='端口对应关系不一致')
        print('tcp21映射 已添加')

        # 从外网配置页面获取WAN1口地址
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_WANconfig()
        time.sleep(1)
        # WAN1 ip变量赋值,页面读取
        # 判断联网状态
        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 未连接')
        WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP))
        time.sleep(1)
        self.driver.quit()

        # 更改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)
        # 将IP改回自动获取(设置dns为自动获取)
        # 调用bat脚本
        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('未获取到地址')

        try:
            telnetlib.Telnet(str(WAN1_ip), port=3389, timeout=10)
            raise Exception('映射优先级高于DMZ 验证失败')  #如果通则报错
        except socket.timeout:
            print('映射优先级高于DMZ 验证成功')  #如果不通(timeout报错)则正常

        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)
                time.sleep(2)
                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('未获取到地址')

        #删除映射
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        staticMapping = staticMappingPage(self.driver, self.url)
        staticMapping.click_NetworkConfig()
        time.sleep(0.5)
        staticMapping.click_portMapping()
        time.sleep(1)
        staticMapping.click_delete1()
        time.sleep(1)
        staticMapping.click_ok()
        time.sleep(1)
        list_tips = staticMapping.getText_byXpath(staticMapping.list_tips)
        self.assertEqual(str(list_tips), ' ', msg='映射删除失败')
        #关闭DMZ
        dmz = DMZPage(self.driver, self.url)
        dmz.click_DMZ()
        time.sleep(1)
        dmz.click_DMZC()
        dmz.input_GlobalDMZ('0.0.0.0')
        time.sleep(1)
        dmz.click_save()
        time.sleep(1)
        # 断言
        dmz.click_DMZ()  # 相当于刷新下界面,否则off依旧没有checked参数
        time.sleep(1)
        DMZ_status = str(dmz.getAttribute_byXpath(dmz.DMZCs, 'checked'))
        print(DMZ_status)
        self.assertEqual(DMZ_status, 'true', msg='DMZ 关闭异常')
        print('全局DMZ 已关闭')

        self.driver.quit()
        logger.info('test_003_DMZpriority passed')
Beispiel #4
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')
Beispiel #5
0
    def test_UPNP(self):
        u'''UPnP自动添加映射'''
        # Thunderpath = str(getpath('Thunderpath'))
        # print('13',Thunderpath)
        # Thunderpath1 = '%s' % Thunderpath
        #关闭 迅雷进程
        os.system('taskkill /im "Thunder.exe" /F')
        time.sleep(2)

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        upnp = UPNPpage(self.driver, self.url)
        upnp.click_NetworkConfig()
        time.sleep(0.5)
        upnp.click_portMapping()
        time.sleep(1)
        upnp.click_UPnP()
        time.sleep(1)
        # 开启UPNP
        switch0 = upnp.getAttribute_byId(upnp.checkOn,
                                         'checktype')  # checktype 0未开启,1开启
        if switch0 == '0':
            upnp.click_checkOnc()
            time.sleep(2)
        print('UPnP 已开启')

        # 打开迅雷
        handle = win32process.CreateProcess(
            'D:\\Program Files (x86)\\Thunder Network\\Thunder\\Program\\Thunder.exe',
            '', None, None, 0, win32process.CREATE_NO_WINDOW, None, None,
            win32process.STARTUPINFO())  # 打开迅雷,获得其句柄

        #断言
        time.sleep(5)
        i = 0
        while i < 30:
            upnp.click_refreshTable()
            time.sleep(1)
            try:
                list_tips1 = upnp.getText_byXpath(upnp.list_tips1)
                print('list_1protocol:', list_tips1)
            except NoSuchElementException:
                time.sleep(1)
                i += 1
            else:
                if "TCP" or 'UDP' in str(list_tips1):
                    print("UPnP自动添加映射 验证通过 %s" % i)
                else:  # 未有规则生成
                    raise Exception('UPnP自动添加映射 验证失败')
                break

        # 关闭UPNP
        switch1 = upnp.getAttribute_byId(upnp.checkOn,
                                         'checktype')  # checktype 0未开启,1开启
        if switch1 == '1':
            upnp.click_checkOnc()
            time.sleep(2)
        print('UPnP 已关闭')

        self.driver.quit()

        win32process.TerminateProcess(handle[0], 0)  #关闭迅雷
        logger.info('test_UPNP passed')
    def test_003_AuthNotice(self):
        u'''账号到期通告'''
        messages = getAssertText('PPPoENotice')

        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)
        pppoeauth.click_account()
        time.sleep(1)
        # 新增已过期账号
        pppoeauth.click_addUser()
        time.sleep(1)
        pppoeauth.input_name('BeOverdue')
        selauthType = pppoeauth.selelement_byName('authType')
        Select(selauthType).select_by_value('PPPoE')
        time.sleep(1)
        pppoeauth.input_authAccount('BeOverdue')
        pppoeauth.input_authPassword('BeOverdue')
        pppoeauth.click_accountBillEn()
        time.sleep(1)
        #设置账号日期
        pppoeauth.click_accountOpenDater()
        pppoeauth.click_bnpreMonth()  #向前一个月
        pppoeauth.click_day1()  #任意选择
        pppoeauth.click_accountStopDate()
        pppoeauth.click_bnpreMonth()  # 向前一个月
        pppoeauth.click_day2()
        pppoeauth.click_save()
        time.sleep(2)
        # 断言 添加的账号 认证方式和认证账号 是否正常(第二行)
        list_authtype2 = pppoeauth.getText_byXpath(pppoeauth.list_authtype2)
        list_authAcc2 = pppoeauth.getText_byXpath(pppoeauth.list_authAcc2)
        self.assertEqual(str(list_authtype2), 'PPPoE', msg='认证方式显示不为“PPPoE”')
        self.assertEqual(str(list_authAcc2),
                         'BeOverdue',
                         msg='认证账号不为“BeOverdue”')
        print('认证账号 - 新增已过期账号 成功')

        # 新增将过期账号
        pppoeauth.click_addUser()
        time.sleep(1)
        pppoeauth.input_name('Overdue')
        selauthType = pppoeauth.selelement_byName('authType')
        Select(selauthType).select_by_value('PPPoE')
        time.sleep(1)
        pppoeauth.input_authAccount('Overdue')
        pppoeauth.input_authPassword('Overdue')
        pppoeauth.click_accountBillEn()
        time.sleep(1)
        # 设置账号日期
        pppoeauth.click_accountOpenDater()
        pppoeauth.click_bnpreMonth()  # 向前一个月
        pppoeauth.click_day1()  # 任意选择
        pppoeauth.click_accountStopDate()
        pppoeauth.click_bnpostMonth()  # 向后一个月
        pppoeauth.click_day3()
        pppoeauth.click_save()
        time.sleep(2)
        # 断言 添加的账号 认证方式和认证账号 是否正常(第三行)
        list_authtype3 = pppoeauth.getText_byXpath(pppoeauth.list_authtype3)
        list_authAcc3 = pppoeauth.getText_byXpath(pppoeauth.list_authAcc3)
        self.assertEqual(str(list_authtype3), 'PPPoE', msg='认证方式显示不为“PPPoE”')
        self.assertEqual(str(list_authAcc3),
                         'Overdue',
                         msg='认证账号不为“BeOverdue”')
        print('认证账号 - 新增将过期账号 成功')
        self.driver.quit()

        #开始验证账号到期通告
        # 已过期账号验证
        #开始拨号
        Adsl.connect(self,
                     name='adsl',
                     username='******',
                     password='******')
        # 通过断言IP地址网段,判断是否可以拨号成功
        pcaddr_connectAdsl = socket.gethostbyname(
            socket.getfqdn(socket.gethostname()))
        # print(pcaddr_connectAdsl)
        self.assertIn('10.10.10.', str(pcaddr_connectAdsl), msg='PPPoE拨号失败')
        time.sleep(2)
        # 打开网页测试,测试上网
        self.driver = webdriver.Chrome()
        # self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        self.driver.get('http://www.utt.com.cn')
        time.sleep(2)
        title1 = self.driver.title
        print(title1)
        self.assertEqual(title1, messages, msg='通告未显示')
        time.sleep(1)
        # 拨号挂断,通过断言IP地址网段,判断是否挂断
        Adsl.disconnect(self)
        pcaddr_disconnectAdsl = socket.gethostbyname(
            socket.getfqdn(socket.gethostname()))
        print(pcaddr_disconnectAdsl)
        self.assertIn('192.168.', str(pcaddr_disconnectAdsl), msg='PPPoE挂断失败')
        self.driver.quit()
        print('已过期账号 到期通告 - 验证成功')

        # 将期账号验证
        # 开始拨号
        Adsl.connect(self, name='adsl', username='******', password='******')
        # 通过断言IP地址网段,判断是否可以拨号成功
        pcaddr_connectAdsl = socket.gethostbyname(
            socket.getfqdn(socket.gethostname()))
        # print(pcaddr_connectAdsl)
        self.assertIn('10.10.10.', str(pcaddr_connectAdsl), msg='PPPoE拨号失败')
        # 打开网页测试,测试上网
        self.driver = webdriver.Chrome()
        # self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        self.driver.get('http://www.utt.com.cn')
        time.sleep(2)
        title1 = self.driver.title
        print(title1)
        self.assertEqual(title1, messages, msg='通告未显示')
        time.sleep(1)
        self.driver.get('http://www.baidu.com')
        time.sleep(2)
        title1 = self.driver.title
        print(title1)
        self.assertEqual(title1, baidutitle, msg='第二次打开网页异常')
        time.sleep(1)
        # 拨号挂断,通过断言IP地址网段,判断是否挂断
        Adsl.disconnect(self)
        pcaddr_disconnectAdsl = socket.gethostbyname(
            socket.getfqdn(socket.gethostname()))
        print(pcaddr_disconnectAdsl)
        self.assertIn('192.168.', str(pcaddr_disconnectAdsl), msg='PPPoE挂断失败')
        self.driver.quit()
        print('将过期账号 到期通告 - 验证成功')

        print('账号到期通告 - 验证成功')
        #删除组织架构组(组内的pppoe账号也会一并删掉)
        organization_group.group_delete(self)

        # 关闭pppoe server
        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)
        pppoeauth.click_pppoeAuthC()
        time.sleep(1)
        # 断言 开启提示信息是否有误
        status = str(
            pppoeauth.getAttribute_byXpath(pppoeauth.pppoeAuthCs, 'checked'))
        time.sleep(1)
        self.assertEqual(status, 'true', msg='PPPoE认证关闭出错')
        print('PPPoE认证关闭 验证成功')

        self.driver.quit()
        logger.info('test_003_AuthNotice passed')
Beispiel #7
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')
    def test_002_changeRateLAN(self):
        u'''lan1端口协商速率修改 '''
        # # 进入-系统监控-系统状态 获取型号判断是否支持千M
        # sysmonitor = sysStaticPage(self.driver, self.url)
        # sysmonitor.click_systemWatch()
        # time.sleep(0.5)
        # sysmonitor.click_sysStatic()
        # time.sleep(1)
        # Model = str(sysmonitor.getText_byXpath(sysmonitor.Model))
        # print(Model)
        #Lan口速率修改
        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)
        LanMode = lanpage.selelement_byXpath(lanpage.sellanRate)
        # 0-10M全双工 1-100M全双工 2-1000M全双工 3-自动 4-10M半双工 5-100M半双工
        #改为10M
        try:
            Select(LanMode).select_by_value('0')
            time.sleep(0.5)
        except ElementNotVisibleException:
            CapPic(self.driver)
            logger.info(u'lan口不支持修改为10M全双工')
            raise Exception(u'lan口不支持修改为10M全双工')
        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()
        i = 0
        while i < 30:
            swRate = swconfig.test_getLANSpeed(self)
            print(swRate)
            if swRate != 'speed10M':
                time.sleep(1)
                i += 1
            else:
                break
        else:
            logger.info(u'交换机端口速率为: %s' % swRate)
            logger.info(u'交换机协商速率 不为10M')
            raise Exception(u'交换机协商速率 不为10M')
        # 改为100M
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        time.sleep(2)  #谨防10M页面卡住
        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)
        LanMode = lanpage.selelement_byXpath(lanpage.sellanRate)
        Select(LanMode).select_by_value('1')
        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()
        i = 0
        while i < 30:
            swRate = swconfig.test_getLANSpeed(self)
            print(swRate)
            if swRate != 'speed100M':
                time.sleep(1)
                i += 1
            else:
                break
        else:
            logger.info(u'交换机端口速率为: %s' % swRate)
            logger.info(u'交换机协商速率 不为100M')
            raise Exception(u'交换机协商速率 不为100M')
        # 改为1000M
        support = getExcelValue(portTateLANp)
        # print('support:',support)
        if '千' in str(support):
            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)
            LanMode = lanpage.selelement_byXpath(lanpage.sellanRate)
            try:
                Select(LanMode).select_by_value('2')
                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()
                i = 0
                while i < 30:
                    swRate = swconfig.test_getWAN1Speed(self)
                    print(swRate)
                    if swRate != 'speed1000M':
                        time.sleep(1)
                        i += 1
                    else:
                        break
                else:
                    logger.info(u'交换机端口速率为: %s' % swRate)
                    logger.info(u'交换机协商速率 不为1000M')
                    raise Exception(u'交换机协商速率 不为1000M')
            except NoSuchElementException:
                raise Exception('WAN口不支持千M协商速率')
        # 改为auto
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        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)
        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()
        swRate = swconfig.test_getWAN1Speed(self)
        print(swRate)
        if '千' in str(support):
            i = 0
            while i < 30:
                swRate = swconfig.test_getWAN1Speed(self)
                print(swRate)
                if swRate != 'speed1000M':
                    time.sleep(1)
                    i += 1
                else:
                    break
            else:
                logger.info(u'交换机端口速率为: %s' % swRate)
                logger.info(u'交换机协商速率 不为1000M')
                raise Exception(u'交换机协商速率 不为1000M')
        else:
            i = 0
            while i < 30:
                swRate = swconfig.test_getLANSpeed(self)
                print(swRate)
                if swRate != 'speed100M':
                    time.sleep(1)
                    i += 1
                else:
                    break
            else:
                logger.info(u'交换机端口速率为: %s' % swRate)
                logger.info(u'交换机协商速率 不为100M')
                raise Exception(u'交换机协商速率 不为100M')

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

        logger.info('test_001_changePortRateWAN passed')
Beispiel #10
0
    def tearDown(self):
        nodata = getAssertText('nodata')

        #删除VPN
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        pptpl2tp = pptpL2tpPage(self.driver, self.url)
        pptpl2tp.click_VPNConfig()
        time.sleep(0.5)
        pptpl2tp.click_pptpL2tp()
        time.sleep(1)
        pptpl2tp.click_selall()
        time.sleep(0.2)
        pptpl2tp.click_delall()
        time.sleep(1)
        pptpl2tp.click_ok()
        time.sleep(2)
        list_nodata = pptpl2tp.getText_byXpath(pptpl2tp.list_nodata)
        if list_nodata == nodata:
            logger.info(u'R1 VPN 已删除')
        else:
            CapPic(self.driver)
            logger.info(u'R1 VPN删除失败')
            raise Exception(u'R1 VPN删除失败')

        pptpl2tp.click_PPTPGlobalSet()
        time.sleep(0.5)
        pptpl2tp.click_pptpserverC()
        pptpl2tp.click_save()
        time.sleep(1)
        pptpl2tp.click_PPTPGlobalSet()
        time.sleep(0.5)
        pptpSs = pptpl2tp.getAttribute_byXpath(pptpl2tp.pptpserverCs,
                                               'checked')
        if pptpSs == 'true':
            logger.info(u'pptpserver已关闭')
        else:
            CapPic(self.driver)
            logger.info(u'pptpserver未关闭')
            return Exception(u'pptpserver未关闭')
        pptpl2tp.click_l2tpGlobalSet()
        time.sleep(0.5)
        pptpl2tp.click_L2tpserverC()
        pptpl2tp.click_saveSl2tp()
        time.sleep(1)
        pptpl2tp.click_l2tpGlobalSet()
        time.sleep(0.5)
        l2tpSs = pptpl2tp.getAttribute_byXpath(pptpl2tp.L2tpserverCs,
                                               'checked')
        if l2tpSs == 'true':
            logger.info(u'L2tpserver已关闭')
        else:
            CapPic(self.driver)
            logger.info(u'L2tpserver未关闭')
            return Exception(u'L2tpserver未关闭')
        self.driver.quit()

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

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
    def test_syslog(self):
        u'''日志服务器'''
        pcNetworkID = getweb('pcNetworkID')
        wiresharkpath = getpath('wiresharkpath')
        host = gettelnet('host')

        #0、清理tmp下的syslog.pcapng\log文件
        call_Firefox.del_syslog_log(self)
        #1、开启syslog server
        pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        syslog = syslogPage(self.driver, self.url)
        syslog.click_sysConfig()
        time.sleep(0.5)
        syslog.click_Syslog()
        time.sleep(1)
        syslog.click_SyslogServer()
        time.sleep(1)
        syslog.click_syslogEn()
        syslog.input_ServerIp(pcaddr)
        syslog.input_ServerPort('514')
        syslog.click_save()
        time.sleep(1)
        syslogEs = syslog.getAttribute_byXpath(syslog.syslogEs, 'checked')
        self.assertEqual(syslogEs, 'true', msg='syslog服务器启用失败')

        #2、wan口改为dhcp 使生成syslog
        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(0.5)

        # 3、调用wireshark 开启抓包,必须要抓到包之后才会进行下一步,因此放在设置vpn之后,通过抓下一次的log
        packetfile = tmppath + 'syslogtest.pcapng'
        dir = wiresharkpath[0:2]
        getpacket = ('tshark -i%s -f "udp port 514" -w %s -c 2' %
                     (pcNetworkID, packetfile))
        os.system('%s && cd %s && %s' % (dir, wiresharkpath, getpacket))

        #4、读取抓包显示 并存为log文件
        logfile = tmppath + 'syslogtest.log'
        savepacket = (
            'tshark -r %s -T fields -e "ip.src" -e ip.dst -Y "syslog" > %s ' %
            (packetfile, logfile))
        os.system('%s && cd %s && %s' % (dir, wiresharkpath, savepacket))

        #5、读取判断syslog生效
        with open(logfile, 'r') as file_to_read:
            while True:
                lines = file_to_read.readline()  # 整行读取数据
                print(lines)
                if not lines:
                    break
                if host + pcaddr in lines:
                    print(u'验证通过')

        self.driver.quit()
        logger.info('test_reboot1 passed')
Beispiel #12
0
    def test_004_L2tpclient(self):
        u'''L2tpclient'''

        vpnRouteLan = getweb('vpnRouteLan')
        host = gettelnet('host')
        StateVPN2 = getAssertText('StateVPN2')
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        pptpl2tp = pptpL2tpPage(self.driver, self.url)
        pptpl2tp.click_VPNConfig()
        time.sleep(0.5)
        pptpl2tp.click_pptpL2tp()
        time.sleep(1)
        # 操作删除 以访已有规则
        pptpl2tp.click_selall()
        time.sleep(0.2)
        pptpl2tp.click_delall()
        time.sleep(2)
        try:
            self.driver.implicitly_wait(2)
            pptpl2tp.find_ok()
        except NoSuchElementException:
            try:
                pptpl2tp.find_tipsshowin()
                time.sleep(1)
            except NoSuchElementException:
                pass
        else:
            time.sleep(1)
            print('VPN隧道列表为空')

        pptpl2tp.click_add()
        time.sleep(2)
        pptpl2tp.click_workMode2()
        pptpl2tp.click_workModel2tp()
        pptpl2tp.input_TunNames('testC')
        pptpl2tp.input_TunNamesIP(vpnRouteWan)
        pptpl2tp.input_userNames('test')
        pptpl2tp.input_password('test')
        pptpl2tp.input_remoteInIp(vpnRouteLan)
        pptpl2tp.input_remoteInIPMask('255.255.255.0')
        pptpl2tp.click_save()
        time.sleep(2)
        self.driver.quit()

        # 另外一台路由器 配置pptp Server
        login.test_enableLoginWeb(self, url=vpnRouteUrl)
        pptpl2tp = pptpL2tpPage(self.driver, self.url)
        pptpl2tp.click_VPNConfig()
        time.sleep(0.5)
        pptpl2tp.click_pptpL2tp()
        time.sleep(1)
        # 操作删除 以访已有规则
        pptpl2tp.click_selall()
        time.sleep(0.2)
        pptpl2tp.click_delall()
        time.sleep(2)
        try:
            self.driver.implicitly_wait(2)
            pptpl2tp.find_ok()
        except NoSuchElementException:
            try:
                pptpl2tp.find_tipsshowin()
                time.sleep(1)
            except NoSuchElementException:
                pass
        else:
            time.sleep(1)
            print('VPN隧道列表为空')

        pptpl2tp.click_l2tpGlobalSet()  #语言问题待修改成xpath
        time.sleep(0.5)
        pptpl2tp.click_L2tpserverEn()
        pptpl2tp.input_priDns('114.114.114.114')
        pptpl2tp.click_save()
        time.sleep(1)
        pptpl2tp.click_l2tpGlobalSet()
        time.sleep(0.5)
        l2tpSs = pptpl2tp.getAttribute_byXpath(pptpl2tp.L2tpserverEs,
                                               'checked')
        if l2tpSs == 'true':
            logger.info(u'L2tpserver已开启')
        else:
            CapPic(self.driver)
            logger.info(u'L2tpserver未开启')
            return Exception(u'L2tpserver未开启')

        pptpl2tp.click_Tunnellist()
        time.sleep(0.5)
        pptpl2tp.click_add()
        time.sleep(1)
        pptpl2tp.click_workMode1()
        pptpl2tp.click_workModel2tp()
        pptpl2tp.input_TunNames('testC')
        seluserType = pptpl2tp.selelement_byName(pptpl2tp.seluserType)
        Select(seluserType).select_by_value('lantolan')
        pptpl2tp.input_userNames('test')
        pptpl2tp.input_password('test')
        pptpl2tp.input_remoteInIp(host)
        pptpl2tp.input_remoteInIPMask('255.255.255.0')
        pptpl2tp.click_saveS()
        time.sleep(2)

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

        logger.info('test_004_L2tpclient passed')
Beispiel #13
0
    def test_001_PPTPserver(self):
        u'''PPTPserver'''

        vpnRouteLan = getweb('vpnRouteLan')
        host = gettelnet('host')
        StateVPN2 = getAssertText('StateVPN2')
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        pptpl2tp = pptpL2tpPage(self.driver, self.url)
        pptpl2tp.click_VPNConfig()
        time.sleep(0.5)
        pptpl2tp.click_pptpL2tp()
        time.sleep(1)
        # 操作删除 以访已有规则
        pptpl2tp.click_selall()
        time.sleep(0.2)
        pptpl2tp.click_delall()
        time.sleep(2)
        try:
            self.driver.implicitly_wait(2)
            pptpl2tp.find_ok()
        except NoSuchElementException:
            try:
                pptpl2tp.find_tipsshowin()
                time.sleep(1)
            except NoSuchElementException:
                pass
        else:
            time.sleep(1)
            print('VPN隧道列表为空')

        pptpl2tp.click_PPTPGlobalSet()
        time.sleep(0.5)
        pptpl2tp.click_pptpserverEn()
        pptpl2tp.input_priDns('114.114.114.114')
        pptpl2tp.click_save()
        time.sleep(1)
        pptpSs = pptpl2tp.getAttribute_byXpath(pptpl2tp.pptpserverEs,
                                               'checked')
        if pptpSs == 'true':
            logger.info(u'pptpserver已开启')
        else:
            CapPic(self.driver)
            logger.info(u'pptpserver未开启')
            return Exception(u'pptpserver未开启')

        pptpl2tp.click_add()
        time.sleep(1)
        pptpl2tp.click_workMode1()
        pptpl2tp.click_workModepptp()
        pptpl2tp.input_TunNames('testS')
        seluserType = pptpl2tp.selelement_byName(pptpl2tp.seluserType)
        Select(seluserType).select_by_value('lantolan')
        pptpl2tp.input_userNames('test')
        pptpl2tp.input_password('test')
        pptpl2tp.input_remoteInIp(vpnRouteLan)
        pptpl2tp.input_remoteInIPMask('255.255.255.0')
        pptpl2tp.click_saveS()
        time.sleep(2)

        # 从外网配置页面获取WAN1口地址
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_NetworkConfig()
        time.sleep(0.5)
        wanpage.click_WANconfig()
        time.sleep(1)
        # WAN1 ip变量赋值,页面读取
        # 判断联网状态
        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 未连接')
        WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP))
        # print('WAN1_ip=',WAN1_ip)
        time.sleep(1)
        self.driver.quit()

        # 另外一台路由器 配置pptp Client
        login.test_enableLoginWeb(self, url=vpnRouteUrl)
        pptpl2tp = pptpL2tpPage(self.driver, self.url)
        pptpl2tp.click_VPNConfig()
        time.sleep(0.5)
        pptpl2tp.click_pptpL2tp()
        time.sleep(1)
        # 操作删除 以访已有规则
        pptpl2tp.click_selall()
        time.sleep(0.2)
        pptpl2tp.click_delall()
        time.sleep(2)
        try:
            self.driver.implicitly_wait(2)
            pptpl2tp.find_ok()
        except NoSuchElementException:
            try:
                pptpl2tp.find_tipsshowin()
                time.sleep(1)
            except NoSuchElementException:
                pass
        else:
            time.sleep(1)
            print('VPN隧道列表为空')

        pptpl2tp.click_add()
        time.sleep(2)
        pptpl2tp.click_workMode2()
        pptpl2tp.click_workModepptp()
        pptpl2tp.input_TunNames('testS')
        pptpl2tp.input_TunNamesIP(WAN1_ip)
        pptpl2tp.input_userNames('test')
        pptpl2tp.input_password('test')
        pptpl2tp.input_remoteInIp(host)
        pptpl2tp.input_remoteInIPMask('255.255.255.0')
        pptpl2tp.click_save()
        time.sleep(2)

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

        logger.info('test_001_PPTPserver passed')
Beispiel #14
0
    def test_004_hairDown(self):
        u'''自动下发功能(重启后也能生效)'''
        OnlineA = getAssertText('OnlineA')

        netname = netNamePage(self.driver, self.url)
        netname.click_wirelessExtension()
        time.sleep(0.5)
        netname.click_netName()
        time.sleep(1)
        #取消掉第1个ssid的自动下发功能
        list_autosend1 = str(netname.getAttribute_byXpath(netname.list_autosend1, 'checked'))
        if list_autosend1 == 'true': #如果ssid1 自动下发打开(性能参数和002中已经核对默认自动下发是否已打开)
            netname.click_list_autosend1c()
            time.sleep(1)
            list_autosend1 = str(netname.getAttribute_byXpath(netname.list_autosend1, 'checked'))
            self.assertEqual(list_autosend1, 'None', msg='ssid1自动下发 未取消')
        #勾选第四个ssid的自动下发
        list_sutosend4 = str(netname.getAttribute_byXpath(netname.list_sutosend4, 'checked'))
        if list_sutosend4 == 'None':
            netname.click_list_sutosend4c()
            time.sleep(1)
            list_sutosend4 = str(netname.getAttribute_byXpath(netname.list_sutosend4, 'checked'))
            self.assertEqual(list_sutosend4, 'true', msg='ssid4自动下发 未开启')
        self.driver.quit()

        #1、先重启路由器
        Reboot.test_reboot1(self)
        time.sleep(40) #刚重启好 操作AP恢复出厂 可能会引起配置未删除的问题,这里等待一下
        print('重启后 稍等一下 。。。')
        #2、确认AP均上线
        login.loginWeb(self)
        self.driver.implicitly_wait(10)
        device = deviceMgmtPage(self.driver, self.url)
        device.click_wirelessExtension()
        time.sleep(0.5)
        device.click_deviceMgmt()
        time.sleep(45)
        # 先确认AP均上线
        x = 0
        while x < 100:
            device.click_refreshtable()
            time.sleep(1)
            list_status1 = device.getText_byXpath(device.list_status1)
            list_status2 = device.getText_byXpath(device.list_status2)
            list_status3 = device.getText_byXpath(device.list_status3)
            list_status4 = device.getText_byXpath(device.list_status4)
            print(list_status1, list_status2, list_status3, list_status4, x)
            if list_status1 == OnlineA and list_status2 == OnlineA and list_status3 == OnlineA and list_status4 == OnlineA:
                print('4台AP均在线', x)
                channel1 = str(device.getAttribute_byXpath(device.list_channel1, 'data-local'))
                channel2 = str(device.getAttribute_byXpath(device.list_channel2, 'data-local'))
                channel3 = str(device.getAttribute_byXpath(device.list_channel3, 'data-local'))
                channel4 = str(device.getAttribute_byXpath(device.list_channel4, 'data-local'))
                print('channel1=', channel1, 'channel2=', channel2, 'channel3=', channel3, 'channel4=', channel4, x)
                if channel1 != '' and channel2 != '' and channel3 != '' and channel4 != '':
                    print('4台AP2.4G无线接口已同步', x)
                    break
                else:
                    time.sleep(3)
            else:
                time.sleep(3)
            x = x + 1
        else:
            CapPic(self.driver)
            logger.info(u'AP  未能同步2.4G无线接口')
            raise Exception('AP  未能同步2.4G无线接口')

        # 3、设备管理恢复AP验证自动下发功能
        APmanagement.test_006_resertAP(self)

        logger.info('test_004_hairDown passed')
Beispiel #15
0
 def setUp(self):
     logger.info('setUp start')
     login.loginWeb(self)  # admin账号登录
     self.driver.implicitly_wait(10)
Beispiel #16
0
    def test_001_easyIP(self):
        u'''验证 easyIP,后台telnet验证iptables规则'''
        #新增
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        natRule = natRulePage(self.driver, self.url)
        # 配置映射
        natRule.click_NetworkConfig()
        time.sleep(0.5)
        natRule.click_portMapping()
        time.sleep(1)
        natRule.click_natRule()
        time.sleep(1)
        natRule.click_add()
        time.sleep(1)
        natRule.input_RuleIDs('easyIPtest')
        natRule.input_InFromIPs(host2 + '200')
        natRule.input_InEndIPs(host2 + '202')
        natRule.input_OutIPs('192.169.122.250')
        time.sleep(1)
        natRule.click_save()
        time.sleep(1)
        #断言
        InFromIPs = str(natRule.getText_byXpath(natRule.list_InFromIPs))
        self.assertEqual(InFromIPs, host2 + '200', msg='内网起始IP地址 与设置的不一致')
        InEndIPs = str(natRule.getText_byXpath(natRule.list_InEndIPs))
        self.assertEqual(InEndIPs, host2 + '202', msg='内网结束IP地址 与设置的不一致')
        OutIPs = str(natRule.getText_byXpath(natRule.list_OutIPs))
        self.assertEqual(OutIPs, '192.169.122.250', msg='外网起始IP地址 与设置的不一致')
        print('easyIP规则 已添加')

        # 连接Telnet服务器
        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'iptables -t nat  -L wan1_nat_rule_loop' + b'\n')
        # 输出结果,判断
        time.sleep(1)
        result = str(tn.read_very_eager())  # 只会存最后一条命令的结果
        print('-------------------输出结果------------------------')
        # 命令执行结果
        print('result:', result)
        #后台实际应有的结果
        result1='SNAT       all  --  anywhere             anywhere            source IP range %s200-%s202 to:192.169.122.250' \
                % (host2,host2)
        # 判断
        if result1 in result:
            print('easyIP规则 验证成功')
        else:
            raise Exception('easyIP规则 验证失败')  # 如果没有则报错
        tn.close()  # tn.write('exit\n')

        self.driver.quit()
        logger.info('test_001_easyIP passed')
Beispiel #17
0
    def test_002_userstatus(self):
        u'''PPPoE拨号挂断&&查看拨号信息&&同网段通信'''

        #将有线地址改为不同网段的地址,以验证同网段通信
        # 调用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 失败')

        # 开始拨号
        Adsl.connect(self)
        # 通过断言IP地址网段,判断是否可以拨号成功
        pcaddr_connectAdsl = socket.gethostbyname(
            socket.getfqdn(socket.gethostname()))
        # print(pcaddr_connectAdsl)
        self.assertIn('10.10.10.', str(pcaddr_connectAdsl), msg='PPPoE拨号失败')
        # 打开网页测试,测试上网
        self.driver = webdriver.Chrome()
        # self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        self.driver.get('http://www.baidu.com')
        time.sleep(2)
        title1 = self.driver.title
        print(title1)
        self.assertEqual(title1, baidutitle, msg='网页打开异常')
        time.sleep(1)
        #打开路由器页面测试同网段访问
        self.driver.get(RouteUrl)
        time.sleep(2)
        url = self.driver.current_url
        print(url)
        self.assertIn('login.html', url, msg='无法访问路由器')
        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)
        #通过过滤IP地址验证是否显示拨号用户信息
        status.input_search(str(pcaddr_connectAdsl))
        status.click_searchb()
        list_IP1 = str(status.getText_byXpath(status.list_IP1))
        self.assertIsNotNone(list_IP1, msg='pppoe列表 未显示拨号用户信息')
        self.driver.quit()

        #拨号挂断,通过断言IP地址网段,判断是否挂断
        Adsl.disconnect(self)
        pcaddr_disconnectAdsl = socket.gethostbyname(
            socket.getfqdn(socket.gethostname()))
        print(pcaddr_disconnectAdsl)
        self.assertIn('192.168.', str(pcaddr_disconnectAdsl), msg='PPPoE挂断失败')

        # 将IP改回自动获取
        # 调用bat脚本
        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('test_002_userstatus passed')
Beispiel #18
0
    def test_001_IPMACBinding(self):
        u'''仅IP/MAC绑定用户 上网'''
        organization_group.import_empty_template(self)  # 判断是否有组织架构,有则清空

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

        #先创建用户组
        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.click_addBtnNewTree1()
        time.sleep(1)
        group.input_groupName('bangdingTest')
        group.click_save()
        time.sleep(2)
        group.click_userGroup()
        time.sleep(1)
        list_groupName1 = str(group.getText_byID(group.list_groupName1))
        self.assertEqual(list_groupName1, 'bangdingTest', msg='新增组出错')
        print('组织架构 - 新增组完成')

        group.click_addUser()
        time.sleep(1)
        group.input_UserName('bangdingTest')
        group.click_IPMACb()
        time.sleep(1)
        group.input_normalIPMac_IP(pcaddr)
        group.input_normalIPMac_Mac(PcMac)
        group.click_save()
        time.sleep(2)
        group.click_list_groupName_c()
        time.sleep(1)
        listAddIP = group.getText_byXpath(group.listAddIP)
        self.assertEqual(listAddIP, pcaddr, msg='新增 用户IP出错')
        listAddMAC = group.getText_byXpath(group.listAddMAC)
        self.assertEqual(listAddMAC, PcMac, msg='新增 用户MAC出错')
        print('组织架构 - 新增用户完成')

        # 判断联网 ,不能上网则报错
        p = pingTestIP('223.5.5.5')
        if p == 'N':
            raise Exception('connect failed.')

        #开启"仅IP/MAC绑定用户能上网"
        group.click_globalconfig()
        time.sleep(1)
        group.click_IPMACb_E()
        time.sleep(0.5)
        group.click_saveAllSetting()
        time.sleep(1)
        # 断言 开启提示信息是否有误
        tips = str(group.getText_byClass(group.tips))
        time.sleep(1)
        self.assertEqual(tips, savesucess, msg='"仅IP/MAC绑定用户能上网" 开启出错')
        print('"仅IP/MAC绑定用户能上网" 开启')
        # 判断联网 ,不能上网则报错
        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地址已自动获取成功', 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')

        # 判断联网 ,测试该项改完mac之后前几个包有可能可以ping通,为避免判断失误,加一个缓冲
        pingTestIP('www.baidu.com')  #避免失误
        pingTestIP('www.163.com')  #避免失误

        #判断联网 ,非绑定用户应该不能上网
        time.sleep(3)
        p = pingTestIP('114.114.114.114')
        if p == 'Y':
            raise Exception('非绑定用户依旧可以上网')
        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('未获取到地址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')
        # 判断联网 ,不能上网则报错
        pingTestIP('www.baidu.com')  #避免失误
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            raise Exception('connect failed.')
        logger.info('test_001_IPMACBinding passed')
Beispiel #19
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')
    def test_002_one2one(self):
        u'''验证 one2one,后台telnet验证iptables规则'''
        nodata = getAssertText('nodata')
        #修改上一条规则
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        natRule = natRulePage(self.driver, self.url)
        # 配置映射
        natRule.click_NetworkConfig()
        time.sleep(0.5)
        natRule.click_portMapping()
        time.sleep(1)
        natRule.click_natRule()
        time.sleep(1)
        natRule.click_edit()
        time.sleep(1)
        natRule.input_RuleIDs('one2onetest')
        natRule.click_typeOne2one()
        natRule.input_InFromIPs('192.168.1.200')
        natRule.input_InEndIPs('192.168.1.201')
        natRule.input_OutIPs('192.169.122.250')
        time.sleep(1)
        natRule.click_save()
        time.sleep(1)
        #断言
        InFromIPs = str(natRule.getText_byXpath(natRule.list_InFromIPs))
        self.assertEqual(InFromIPs, '192.168.1.200', msg='内网起始IP地址 与设置的不一致')
        InEndIPs = str(natRule.getText_byXpath(natRule.list_InEndIPs))
        self.assertEqual(InEndIPs, '192.168.1.201', msg='内网结束IP地址 与设置的不一致')
        OutIPs = str(natRule.getText_byXpath(natRule.list_OutIPs))
        self.assertEqual(OutIPs, '192.169.122.250', msg='外网起始IP地址 与设置的不一致')
        print('easyIP规则 已添加')

        # 连接Telnet服务器
        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)
        tn.set_debuglevel(5)  # 级别越高输出的调试信息越多,并没有看出区别
        # 输入登录用户名
        tn.read_until(b'login:'******'Password:'******'#')
        tn.write(b'iptables -t nat  -L wan1_nat_rule_loop' + b'\n')
        # 输出结果,判断
        time.sleep(1)
        result = str(tn.read_very_eager())  # 只会存最后一条命令执行结果
        print('-------------------输出结果------------------------')
        # 命令执行结果
        print('result:', result)
        # 后台实际应有的结果
        result1 = 'SNAT       all  --  anywhere             192.168.1.200       UTTDEV match --is-lan-in to:192.168.1.1'
        result2 = 'SNAT       all  --  192.168.1.200        anywhere            to:192.169.122.250'
        result3 = 'SNAT       all  --  anywhere             192.168.1.201       UTTDEV match --is-lan-in to:192.168.1.1'
        result4 = 'SNAT       all  --  192.168.1.201        anywhere            to:192.169.122.251'
        result_list=[result1,result2,result3,result4]
        # 判断
        if all(t in result for t in result_list):
            print('one2one规则 验证成功')
        else:
            raise Exception('one2one规则 验证失败')  # 如果没有则报错
        tn.close()  # tn.write('exit\n')

        #删除NAT规则
        natRule.click_delete()
        time.sleep(1)
        natRule.click_ok()
        time.sleep(1)
        listtips=str(natRule.getText_byXpath(natRule.listtips))
        self.assertEqual(listtips,nodata,msg='删除规则有误')

        self.driver.quit()
        logger.info('test_002_one2one passed')
Beispiel #21
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')
    def test_001_easyIP(self):
        u'''验证 easyIP,后台telnet验证iptables规则'''

        # 通过用户状态获取httpserver的IP地址
        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)
        status.input_search(serverPcMac)
        status.click_searchb()
        time.sleep(1)
        try:
            serverIP = status.getText_byXpath(status.list_IP1)
        except NoSuchElementException:
            raise Exception(u'用户状态中未找到server IP')
            # print(serverIP)

        # 从外网配置页面获取WAN1口地址
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_NetworkConfig()
        time.sleep(0.5)
        wanpage.click_WANconfig()
        time.sleep(1)
        # WAN1 ip变量赋值,页面读取
        # 判断联网状态
        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 未连接')
        WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP))
        print('WAN1_ip=',WAN1_ip)
        time.sleep(1)

        #判断IP
        serverIPadd = str(serverIP).split(r'.')[-1]
        print(serverIPadd)
        if (int(serverIPadd) - 1 > 1) and (int(serverIPadd) + 2 <= 255):
            serverIPadd_1 = str(serverIP).split(r'.')[:-1] + str(int(serverIPadd) - 1)
            serverIPadd1 = str(serverIP).split(r'.')[:-1] + str(int(serverIPadd) + 1)
            serverIPadd2 = str(serverIP).split(r'.')[:-1] + str(int(serverIPadd) + 2)
        else:
            serverIPadd_1 = str(serverIP).split(r'.')[:-1] + str(int(serverIPadd) + 1)
            serverIPadd1 = str(serverIP).split(r'.')[:-1] + str(int(serverIPadd) - 2)
            serverIPadd2 = str(serverIP).split(r'.')[:-1] + str(int(serverIPadd) - 1)

        WAN1_ipadd = str(WAN1_ip).split(r'.')[-1]
        if int(WAN1_ipadd) + 1 <= 255:
            WAN1_ipadd1 = str(WAN1_ip).split(r'.')[:-1] + str(int(WAN1_ipadd) + 1)
        else:
            WAN1_ipadd1 = str(int(WAN1_ipadd) - 1)

        #新增
        natRule = natRulePage(self.driver, self.url)
        #1 包含 边界
        natRule.click_NetworkConfig()
        time.sleep(0.5)
        natRule.click_portMapping()
        time.sleep(1)
        natRule.click_natRule()
        time.sleep(1)
        natRule.click_add()
        time.sleep(1)
        natRule.input_RuleIDs('easyIPtest')
        natRule.input_InFromIPs(serverIP)
        natRule.input_InEndIPs(serverIPadd2)
        natRule.input_OutIPs(WAN1_ipadd1)
        time.sleep(1)
        natRule.click_save()
        time.sleep(1)
        #断言
        InFromIPs = str(natRule.getText_byXpath(natRule.list_InFromIPs))
        self.assertEqual(InFromIPs,serverIP, msg='内网起始IP地址 与设置的不一致')
        InEndIPs = str(natRule.getText_byXpath(natRule.list_InEndIPs))
        self.assertEqual(InEndIPs, serverIPadd2, msg='内网结束IP地址 与设置的不一致')
        OutIPs = str(natRule.getText_byXpath(natRule.list_OutIPs))
        self.assertEqual(OutIPs, WAN1_ipadd1, msg='外网起始IP地址 与设置的不一致')
        print('easyIP规则 已添加')

        # 3、调用wireshark 开启抓包,必须要抓到包之后才会进行下一步,因此放在设置vpn之后,通过抓下一次的log
        packetfile = tmppath + 'syslogtest.pcapng'
        dir = wiresharkpath[0:2]
        getpacket = ('tshark -i%s -f "icmp" -w %s -c 2' % (pcNetworkID, packetfile))
        os.system('%s && cd %s && %s' % (dir, wiresharkpath, getpacket))

        # 4、读取抓包显示 并存为log文件
        logfile = tmppath + 'syslogtest.log'
        savepacket = ('tshark -r %s -T fields -e "ip.src" -e ip.dst -Y "syslog" > %s ' % (packetfile, logfile))
        os.system('%s && cd %s && %s' % (dir, wiresharkpath, savepacket))

        # 5、读取判断syslog生效
        with open(logfile, 'r') as file_to_read:
            while True:
                lines = file_to_read.readline()  # 整行读取数据
                print(lines)
                if not lines:
                    break
                if host + pcaddr in lines:
                    print(u'验证通过')



        # # 连接Telnet服务器
        # 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)
        # tn.set_debuglevel(5)  # 级别越高输出的调试信息越多,并没有看出区别
        # # 输入登录用户名
        # tn.read_until(b'login:'******'Password:'******'#')
        # tn.write(b'iptables -t nat  -L wan1_nat_rule_loop' + b'\n')
        # # 输出结果,判断
        # time.sleep(1)
        # result = str(tn.read_very_eager())  # 只会存最后一条命令的结果
        # print('-------------------输出结果------------------------')
        # # 命令执行结果
        # print('result:', result)
        # #后台实际应有的结果
        # result1='SNAT       all  --  anywhere             anywhere            source IP range 192.168.1.200-192.168.1.202 to:192.169.122.250'
        # # 判断
        # if result1 in result:
        #     print('easyIP规则 验证成功')
        # else:
        #     raise Exception('easyIP规则 验证失败')  # 如果没有则报错
        # tn.close()  # tn.write('exit\n')

        self.driver.quit()
        logger.info('test_001_easyIP passed')
Beispiel #23
0
    def test_newSoftware3(self, newversion3=getweb('SoftVersion3')):
        u'''软件升级 - 更新新正常版本'''
        # newversion = getweb('SoftVersion1')
        UploadingTips = getAssertText('UploadingTips')
        WillReboottips = getAssertText('WillReboottips')

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

        # 版本上传
        newSoftware = (str(tmppath) + str(newversion3) + '.bin')

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

        # 判断是否升级成功
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        software = MaintenancePage(self.driver, self.url)
        # 进入系统配置-系统维护-系统升级
        software.click_sysConfig()
        time.sleep(0.5)
        software.click_Maintenance()
        time.sleep(1)
        now_Version = str(software.getText_byXpath(software.version))
        if Expect_Version != now_Version:
            CapPic(self.driver)
            logger.info(u"升级新版本 升级后版本号与升级版本号不一致")
            raise Exception('升级新版本 升级后版本号与升级版本号不一致')
        else:
            print('升级新版本 验证通过')
        self.driver.quit()
Beispiel #24
0
    def test_002_webAuthTest(self):
        u'''web认证测试'''
        if Support == '√':
            logger.info(u'参数支持本地认证')
            webauthpage = getAssertText('webauthpage')
            webauthsucess = getAssertText('webauthsucess')
            # 新增用户组及认证账号
            # 调用新增组 “SelfComputerTest”
            organization_group.group_add(self)
            time.sleep(1)
            #
            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)
            webauth.click_account()
            time.sleep(1)
            webauth.click_addUser()
            time.sleep(1)
            webauth.input_name('webtest1')
            # 仅有一个用户组,这里省略
            select = webauth.selelement_byName(webauth.authType)
            Select(select).select_by_value('Web')
            time.sleep(1)
            webauth.input_authAccount('webtest1')
            webauth.input_authPassword('webtest1')
            webauth.click_save()
            time.sleep(2)
            # 断言 添加的账号 认证方式和认证账号 是否正常
            list_authtype = webauth.getText_byXpath(webauth.list_authtype)
            list_authAcc = webauth.getText_byXpath(webauth.list_authAcc)
            self.assertEqual(str(list_authtype), 'Web', msg='认证方式显示不为“Web”')
            self.assertEqual(str(list_authAcc), 'webtest1', msg='认证账号不为“webtest1”')
            self.driver.quit()

            self.driver = webdriver.Chrome()
            # self.driver.maximize_window()
            self.driver.implicitly_wait(10)
            #打开网页测试
            self.driver.get('http://www.utt.com.cn')
            time.sleep(2)
            title1=self.driver.title
            print(title1)
            self.assertEqual(title1, webauthpage, msg='认证页面跳转不正常')

            webauth = Organization_userAuthPage(self.driver, self.url)
            webauth.input_userName('webtest1')
            webauth.input_userPasswd('webtest1')
            webauth.click_loginbtn()
            time.sleep(2)
            title2 = self.driver.title
            print(title2)
            self.assertEqual(title2, webauthsucess, msg='不能认证成功')

            self.driver.get('http://www.baidu.com')
            time.sleep(2)
            title3 = self.driver.title
            print(title3)
            self.assertEqual(title3, '百度一下,你就知道', msg='认证后 不能打开网页')
            self.driver.quit()
        elif Support == '×':
            logger.info(u'参数不支持本地认证')
        logger.info('test_002_webAuthTest passed')