Beispiel #1
0
 def test_001_language(self):  #待后续调整,目前只有一个
     u'''网管策略 语言管理'''
     languageA = getAssertText('languageA')
     language = ManagementPolicyPage(self.driver, self.url)
     #判断语言 显示
     languageText = str(language.getText_byXpath(language.languageText))
     self.assertEqual(languageText, languageA, msg='语言 显示字符异常')
     self.driver.quit()
     logger.info('test_001_language passed')
    def test_002_passwdErrNum(self, passwdErrNum='3', loginSpan='1'):
        u'''修改最大错误登录次数&超出最大次数惩罚时间'''
        #修改最大错误登录次数&超出最大次数惩罚时间
        accessStrategy = ManagementPolicyPage(self.driver, self.url)
        accessStrategy.input_passwdErrNum(passwdErrNum)
        accessStrategy.input_loginSpan(loginSpan)
        accessStrategy.click_save()
        time.sleep(1)
        self.driver.quit()

        #使用错误密码多次登录以达到最大错误登录次数
        while int(passwdErrNum) > 0:
            passwdErrNum = int(passwdErrNum) - 1
            login.test_unableLoginWeb(self, password='******')
            # print(self.driver.find_element_by_id('warning-msg').text)
            time.sleep(1)
            if int(passwdErrNum) > 0:
                self.driver.quit()
        #停留60s
        print('超过错误次数,等待60s')
        time.sleep(60)
        self.driver.quit()
        #使用正确账号密码测试登录
        login.loginWeb(self)  #admin账号登录
        self.driver.quit()
        logger.info('test_002_passwdErrNum passed')
 def test_003_WEBUI(self):
     u'''WEB UI超时/登录错误次数/惩罚时间'''
     sessionLifep = getParameter('sessionLifep')
     passwdErrNumP = getParameter('passwdErrNumP')
     loginSpanP = getParameter('loginSpanP')
     print(getExcelValue(sessionLifep))
     sessionLifep = getExcelValue(sessionLifep)[:2]
     passwdErrNumP = str(getExcelValue(passwdErrNumP))[:2]
     loginSpanP = getExcelValue(loginSpanP)[:2]
     accessStrategy = ManagementPolicyPage(self.driver, self.url)
     accessStrategy.click_AccessPolicy()
     time.sleep(1)
     sessionLife = str(
         accessStrategy.getAttribute_byName(accessStrategy.sessionLife1,
                                            'value'))
     passwdErrNum = str(
         accessStrategy.getAttribute_byName(accessStrategy.passwdErrNum1,
                                            'value'))
     loginSpan = str(
         accessStrategy.getAttribute_byName(accessStrategy.loginSpan1,
                                            'value'))
     self.assertEqual(sessionLife, sessionLifep, msg='WEBUI超时默认值与参数不符')
     self.assertEqual(passwdErrNum, passwdErrNumP, msg='登录错误次数值与参数不符')
     self.assertEqual(loginSpan, loginSpanP, msg='惩罚时间默认值与参数不符')
     self.driver.quit()
     logger.info('test_003_WEBUI passed')
 def setUp(self):
     logger.info('setUp start')
     login.loginWeb(self)  #admin账号登录
     self.driver.implicitly_wait(10)
     accessStrategy = ManagementPolicyPage(self.driver, self.url)
     #进入系统配置-网管策略-网管访问策略
     accessStrategy.click_sysConfig()
     time.sleep(0.5)
     accessStrategy.click_ManagementPolicy()
     time.sleep(1)
     accessStrategy.click_AccessPolicy()
     time.sleep(1)
Beispiel #5
0
 def setUp(self):
     logger.info('setUp start')
     login.loginWeb(self) #admin账号登录
     self.driver.implicitly_wait(10)
     accesscontrol = ManagementPolicyPage(self.driver,self.url)
     #进入系统配置-网管策略-内网访问控制
     accesscontrol.click_sysConfig()
     time.sleep(0.5)
     accesscontrol.click_ManagementPolicy()
     time.sleep(1)
     accesscontrol.click_lanAccessControl()
     time.sleep(1)
Beispiel #6
0
 def setUp(self):
     logger.info('setUp start')
     login.loginWeb(self)  # admin账号登录
     self.driver.implicitly_wait(10)
     remoteManage = ManagementPolicyPage(self.driver, self.url)
     # 进入系统配置-网管策略-远程管理
     remoteManage.click_sysConfig()
     time.sleep(0.5)
     remoteManage.click_ManagementPolicy()
     time.sleep(1)
     remoteManage.click_RemoteManagement()
     time.sleep(1)
    def test_004_accesscontrol_Language(self):
        u'''设备访问控制/WEB语言'''
        accesscontrol = ManagementPolicyPage(self.driver, self.url)
        accesscontrol.click_lanAccessControl()
        time.sleep(1)
        switch = str(
            accesscontrol.getAttribute_byXpath(
                accesscontrol.innerAccessControlCs, 'checked'))
        self.assertEqual(switch, 'true', msg='内网访问控制默认未关闭')

        languageA = getAssertText('languageA')
        language = ManagementPolicyPage(self.driver, self.url)
        language.click_Language()
        time.sleep(1)
        languageText = str(language.getText_byXpath(language.languageText))
        self.assertEqual(languageText, languageA, msg='语言 显示字符异常')

        self.driver.quit()
        logger.info('test_004_accesscontrol_Language passed')
Beispiel #8
0
 def setUp(self):
     logger.info('setUp start')
     login.loginWeb(self)  #admin账号登录
     language = ManagementPolicyPage(self.driver, self.url)
     self.driver.implicitly_wait(10)
     #进入系统配置-网管策略-语言选择
     language.click_sysConfig()
     time.sleep(0.5)
     language.click_ManagementPolicy()
     time.sleep(1)
     language.click_Language()
     time.sleep(1)
Beispiel #9
0
 def test_006_RemoteManagement(self):
     u'''远程管理'''
     management = ManagementPolicyPage(self.driver, self.url)
     management.click_ManagementPolicy()
     time.sleep(1)
     management.click_RemoteManagement()
     time.sleep(0.5)
     switch = str(
         management.getAttribute_byXpath(management.httpCs, 'checked'))
     port = str(management.getAttribute_byName(management.OutPort1,
                                               'value'))
     self.assertEqual(switch, 'true', msg='远程管理默认关闭 有误')
     self.assertEqual(port, '8081', msg='远程管理端口 默认不为8081')
     self.driver.quit()
     logger.info('test_006_RemoteManagement passed')
 def test_001_WEB_login(self):
     u'''WEB登录:HTTP/HTTPS'''
     accessStrategy = ManagementPolicyPage(self.driver, self.url)
     accessStrategy.click_AccessPolicy()
     time.sleep(1)
     login_mode1 = accessStrategy.getAttribute_byXpath(
         accessStrategy.httpwebEns, 'data-control-src')
     login_mode2 = accessStrategy.getAttribute_byXpath(
         accessStrategy.httpswebEns, 'data-control-src')
     self.assertEqual(login_mode1, 'HTTP', msg='模式不为"HTTP"')
     self.assertEqual(login_mode2, 'HTTPS', msg='模式不为"HTTPs"')
     self.driver.quit()
     logger.info('test_001_WEB_login passed')
Beispiel #11
0
    def test_002_usergroup(self):
        u'''内网访问控制 - 组织架构'''
        self.driver.quit()
        RouteUrl = getweb('RouteUrl')
        #增加组织架构用户
        organization_group.import_empty_template(self)
        organization_group.add_user(self)

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        accesscontrol = ManagementPolicyPage(self.driver, self.url)
        # 进入系统配置-网管策略-内网访问控制
        accesscontrol.click_sysConfig()
        time.sleep(0.5)
        accesscontrol.click_ManagementPolicy()
        time.sleep(1)
        accesscontrol.click_lanAccessControl()
        time.sleep(1)
        accesscontrol.click_choosePeople()
        time.sleep(1)
        accesscontrol.click_usergroup()
        #组织架构,这里选择的是ROOT 所有
        time.sleep(1)
        accesscontrol.click_Root()
        #弹窗中的保存
        accesscontrol.click_saveW1()
        time.sleep(1)
        accesscontrol.click_innerAccessControlEn()
        accesscontrol.click_save()
        time.sleep(1)
        self.driver.quit()

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

        # 判断登录 切换IP后应该不能登录设备
        self.driver = webdriver.Chrome()
        # self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        self.driver.get(RouteUrl)
        title=self.driver.title
        if 'Error: Forbidden' in title:
            print('非组织架构用户无法登录设备 验证通过')
        else:
            CapPic(self.driver)
            logger.info('非组织架构用户依旧可以登录设备')
            raise Exception('非组织架构用户依旧可以登录设备')
        self.driver.quit()

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

        # 验证是否可以登录 并删除添加的组织架构
        #先关闭访问控制 否则删除组织架构后 无法登录
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        accesscontrol = ManagementPolicyPage(self.driver, self.url)
        # 进入系统配置-网管策略-内网访问控制
        accesscontrol.click_sysConfig()
        time.sleep(0.5)
        accesscontrol.click_ManagementPolicy()
        time.sleep(1)
        accesscontrol.click_lanAccessControl()
        time.sleep(1)
        accesscontrol.click_innerAccessControlC()
        accesscontrol.click_save()
        time.sleep(1)
        self.driver.quit()
        #删除添加的组织架构
        organization_group.group_delete(self)
        print('访问控制 选择组织架构  验证通过')
        logger.info('test_002_usergroup passed')
Beispiel #12
0
    def test_001_openRemote(self):
        u'''开启远程管理'''
        # 开启远程管理
        remoteManage = ManagementPolicyPage(self.driver, self.url)
        remoteManage.click_httpEn()
        time.sleep(0.5)
        remoteManage.click_save()
        time.sleep(1)

        #检查admin的映射是否开启
        staticMapping = staticMappingPage(self.driver, self.url)
        staticMapping.click_NetworkConfig()
        time.sleep(0.5)
        staticMapping.click_portMapping()
        time.sleep(1)
        list_Ens = staticMapping.getAttribute_byXpath(staticMapping.list1_Ens,
                                                      'checked')
        if list_Ens != 'true':
            CapPic(self.driver)
            logger.info(u'开启远程管理 静态映射未打开')
            raise Exception(u'远程管理 静态映射未打开')

        # 从外网配置页面获取WAN1口地址
        wanpage = NetworkConfig_wanpage(self.driver, self.url)
        wanpage.click_WANconfig()
        time.sleep(1)
        # 判断联网状态
        i = 0
        while i < 21:
            wanpage.click_refresh()
            time.sleep(1)
            list_conState = wanpage.getText_byXpath(wanpage.connectState1)
            print(str(list_conState), i)
            if str(list_conState) != ConnectState:
                time.sleep(3)
                i += 1
            else:
                break
        else:
            CapPic(self.driver)
            logger.info(u"WAN口未连接")
            raise Exception('WAN1 未连接')
        WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP))
        time.sleep(1)
        self.driver.quit()

        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(110)  # 等待计划任务执行
        #重新获取地址 应获取到上层网关下发的地址
        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 < 60:
            # 获取本机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('未获取到地址')
        n = 0
        while n < 30:
            ping = pingTestIP(WAN1_ip)
            if ping != "Y":
                time.sleep(1)
                n += 1
            else:
                break
        else:
            logger.info(u'切换IP后wan口方向 无法ping通wan口')
            logger.info(u'pcIP地址为 %s' % pcaddr)
            raise Exception(u'切换IP后wan口方向 无法ping通wan口')
        logger.info(u'pcIP地址为 %s' % pcaddr)
        WANURL = str('http://' + str(WAN1_ip) + ':8081')
        #使用页面获取的WAN1 ip验证登录
        login.test_enableLoginWeb(self, url=WANURL)
        self.driver.quit()

        #改回lan口方向
        # 调用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口通
        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('未获取到地址')

        logger.info('test_001_openRemote passed')
Beispiel #13
0
    def test_001_userall(self):
        u'''内网访问控制 - 全部用户'''
        # 适用用户 选择 全部用户
        accesscontrol = ManagementPolicyPage(self.driver, self.url)
        accesscontrol.click_choosePeople()
        time.sleep(1)
        accesscontrol.click_userall()
        accesscontrol.click_saveW1()
        time.sleep(1)
        accesscontrol.click_innerAccessControlEn()
        accesscontrol.click_save()
        time.sleep(1)
        self.driver.quit()

        #验证是否可以登录
        login.loginWeb(self) #admin账号登录
        self.driver.quit()
        logger.info('test_001_userall passed')
Beispiel #14
0
    def test_003_userip(self):
        u'''内网访问控制 - IP地址'''
        RouteUrl = getweb('RouteUrl')
        # 使用用户 选择 IP地址
        #获取本机ip 默认有线地址,有线断开会显示无线
        pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))

        accesscontrol = ManagementPolicyPage(self.driver, self.url)
        # 进入系统配置-网管策略-内网访问控制
        accesscontrol.click_choosePeople()
        time.sleep(1)
        accesscontrol.click_userip()
        time.sleep(1)
        accesscontrol.input_starip(pcaddr)
        accesscontrol.input_endip(pcaddr)
        accesscontrol.click_saveW1()
        time.sleep(1)
        accesscontrol.click_innerAccessControlEn()
        accesscontrol.click_save()
        time.sleep(1)
        self.driver.quit()

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

        # 判断登录 切换IP后应该不能登录设备
        self.driver = webdriver.Chrome()
        # self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        self.driver.get(RouteUrl)
        title = self.driver.title
        if 'Error: Forbidden' in title:
            print('非组织架构用户无法登录设备 验证通过')
        else:
            raise Exception('非组织架构用户依旧可以登录设备')
        self.driver.quit()

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

        #验证是否可以登录
        login.loginWeb(self) #admin账号登录
        self.driver.quit()
        logger.info('test_003_userip passed')
Beispiel #15
0
 def tearDown(self):
     host = gettelnet('host')
     port = gettelnet('port')
     try:
         telnetlib.Telnet(host, port= port, timeout=10)
     except socket.timeout:
         # 将IP改回自动获取(设置dns为自动获取)
         os.system('%s' % (batpath + 'changeDhcpIp.bat'))
         time.sleep(5)
         n = 0
         while n < 30:
             # 获取本机ip 默认有线地址,有线断开会显示无线
             pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
             print(pcaddr, n)
             if '192.168.' not in str(pcaddr):
                 time.sleep(2)
                 n += 1
             else:
                 print('IP地址已自动获取成功', n)
                 break
         else:
             raise Exception('未获取到地址')
     login.loginWeb(self)  # admin账号登录
     self.driver.implicitly_wait(10)
     accesscontrol = ManagementPolicyPage(self.driver, self.url)
     # 进入系统配置-网管策略-内网访问控制
     accesscontrol.click_sysConfig()
     time.sleep(0.5)
     accesscontrol.click_ManagementPolicy()
     time.sleep(1)
     accesscontrol.click_lanAccessControl()
     time.sleep(1)
     accesscontrol.click_innerAccessControlC()
     accesscontrol.click_save()
     time.sleep(1)
     self.driver.quit()
     logger.info('tearDown over')
     logger.info('%s' % ('=' * 50))
    def test_001_AccessMode(self):
        u'''https模式登录'''
        host = gettelnet('host')
        RouteUrls = 'https://' + host + '/'

        # 修改网管模式,端口切换到443,https模式下可登录设备
        accessStrategy = ManagementPolicyPage(self.driver, self.url)
        accessStrategy.click_httpswebEn()
        accessStrategy.click_save()
        # 加个判断 某些型号等待时间长(6550G)
        time.sleep(1)
        x = 0
        while x < 15:
            now_url = str(self.driver.current_url)
            print(now_url, x)
            if '/noAuth/login.html' not in now_url:  # 如果不同
                time.sleep(2)
            else:
                break
            x += 1
        self.driver.quit()

        #https模式下验证登录设备
        login.test_enableLoginWeb(self, url=RouteUrls)  #https登录
        accessStrategy = ManagementPolicyPage(self.driver, self.url)
        # 改回http 方式登录
        accessStrategy.click_sysConfig()
        time.sleep(0.5)
        accessStrategy.click_ManagementPolicy()
        time.sleep(1)
        accessStrategy.click_AccessPolicy()
        time.sleep(1)
        accessStrategy.click_httpwebEn()
        accessStrategy.click_save()
        time.sleep(1)
        i = 0
        while i < 30:
            url = self.driver.current_url
            if '/login.html' in url:
                break
            else:
                time.sleep(2)
            i += 1

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

        #删除后使用test1不可以登录
        login.test_unableLoginWeb(self, username='******', password='******')
        time.sleep(1)
        self.driver.quit()
        #使用admin/admin可以登陆
        login.test_enableLoginWeb(self, username='******', password='******')
        time.sleep(1)
        self.driver.quit()
        print('管理员账号测试 验证通过')
Beispiel #18
0
 def test_001_test1(self):
     u'''添加管理员账号'''
     roleA = getAssertText('roleA')
     # 添加管理员账号test/test,读写权限
     login.loginWeb(self)  #admin账号登录
     self.driver.implicitly_wait(10)
     administrator = ManagementPolicyPage(self.driver, self.url)
     #进入系统配置-网管策略-系统管理员
     administrator.click_sysConfig()
     time.sleep(0.5)
     administrator.click_ManagementPolicy()
     time.sleep(1)
     # 添加管理员账号test/test
     administrator.click_add()
     time.sleep(1)
     administrator.input_username('test')
     administrator.input_passwd1('test')
     administrator.input_passwd2('test')
     #设置权限变量,选择 读写 权限
     selrole = administrator.selelement_byName(administrator.role)
     Select(selrole).select_by_value('adm')
     administrator.click_save()
     time.sleep(1)
     # 断言 再点击编辑 确认元素不为空(账号确实是test):代表账号确实是test
     list_name1 = administrator.getText_byXpath(administrator.list_name1)
     list_role1 = administrator.getText_byXpath(administrator.list_role1)
     self.assertEqual(list_name1, 'test', msg='新建账号不为test')
     self.assertEqual(list_role1, roleA, msg='新建账号权限不为读写')
     #注销当前登录
     login.logoutWeb(self)
     time.sleep(1)
     self.driver.quit()
    def test_003_WEBtimeout(self, timeout='1'):  #因为字母顺序问题 该项会在最后执行
        u'''修改UI超时时间'''
        #修改UI超时时间
        accessStrategy = ManagementPolicyPage(self.driver, self.url)
        accessStrategy.input_sessionLife(timeout)
        accessStrategy.click_save()
        self.driver.quit()

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

        # 将超时时间改回默认值
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        accessStrategy = ManagementPolicyPage(self.driver, self.url)
        # 进入系统配置-网管策略-网管访问策略
        accessStrategy.click_sysConfig()
        time.sleep(0.5)
        accessStrategy.click_ManagementPolicy()
        time.sleep(1)
        accessStrategy.click_AccessPolicy()
        time.sleep(1)
        accessStrategy.input_sessionLife('10')
        accessStrategy.click_save()
        self.driver.quit()
        logger.info('test_003_WEBtimeout passed')
Beispiel #20
0
 def test_002_test2(self):
     u'''新增账号登录 修改权限'''
     RouteUrl = getweb('RouteUrl')
     self.url = RouteUrl
     #能使用test该账号登陆管理DUT
     login.test_enableLoginWeb(self, username='******', password='******')
     # self.url = RouteUrl
     self.driver.implicitly_wait(10)
     administrator = ManagementPolicyPage(self.driver, self.url)
     administrator.click_sysConfig()
     time.sleep(0.5)
     administrator.click_ManagementPolicy()
     time.sleep(1)
     #修改test/test为test1/test1,(测试:账号权限一起改 提交时候权限未改成功,这里分两步完成)
     administrator.click_listEdit1()
     time.sleep(1)
     administrator.input_username('test1')
     administrator.input_passwd1('test1')
     administrator.input_passwd2('test1')
     administrator.click_save()
     time.sleep(1)
     self.driver.quit()
     #重新登录--只为修改test1的权限(可以使用test1登录也验证了上一步修改成功)
     login.test_enableLoginWeb(self, username='******', password='******')
     self.driver.implicitly_wait(10)
     administrator = ManagementPolicyPage(self.driver, self.url)
     administrator.click_sysConfig()
     time.sleep(0.5)
     administrator.click_ManagementPolicy()
     time.sleep(1)
     #修改test1/test1,为只读权限。
     administrator.click_listEdit1()
     time.sleep(1)
     selrole = administrator.selelement_byName(administrator.role)
     Select(selrole).select_by_value('viewer')  #改为只读权限
     time.sleep(1)
     administrator.click_input_group()  #修改后点击下其他元素,避免没有保存成功
     time.sleep(1)
     administrator.click_save()
     time.sleep(1)
     self.driver.quit()
    def test_002_admin(self):
        u'''多级用户管理:读写/读'''
        roleA = getAssertText('roleA')
        User = getweb('User')
        administrator = ManagementPolicyPage(self.driver, self.url)
        default = str(administrator.getText_byXpath(administrator.defaultAcc))
        defaultRole = str(
            administrator.getText_byXpath(administrator.defaultRole))
        self.assertEqual(default, User, msg='账号不为"admin"')
        self.assertEqual(defaultRole, roleA, msg='admin权限不为"读写"')

        # 查看新增账号的权限
        administrator.click_add()
        time.sleep(1)
        administrator.input_username('test')
        administrator.input_passwd1('test')
        administrator.input_passwd2('test')
        # 设置权限变量,选择 读写 权限
        selrole = administrator.selelement_byName(administrator.role)
        Select(selrole).select_by_value('adm')
        Select(selrole).select_by_value('viewer')
        self.driver.quit()
        logger.info('test_002_admin passed')
Beispiel #22
0
    def test_003_test3(self):
        u'''已删除账号验证 只读权限验证'''
        pageTipWarnA = getAssertText('pageTipWarnA')
        #使用test账号不能登陆管理DUT
        login.test_unableLoginWeb(self, username='******', password='******')
        self.driver.implicitly_wait(10)
        self.driver.quit()

        #使用test1账号可以登陆管理DUT
        login.test_enableLoginWeb(self, username='******', password='******')
        self.driver.implicitly_wait(10)
        # 只读权限test1 尝试删除test1/test1账号,应该不成功
        administrator = ManagementPolicyPage(self.driver, self.url)
        administrator.click_sysConfig()
        time.sleep(0.5)
        administrator.click_ManagementPolicy()
        time.sleep(1)
        #尝试删除test1/test1账号,应该不成功
        administrator.click_listDelete1()
        time.sleep(1)
        administrator.click_ok()
        time.sleep(1)
        # 断言删除时候提示信息(logout_span)元素不为空:代表无法删除
        pageTip_warn = administrator.getText_byClass(
            administrator.pageTip_warn)
        if pageTip_warn != pageTipWarnA:
            CapPic(self.driver)
            logger.info(u'只读权限删除提示有误')
            raise Exception('只读权限删除提示有误')
        else:
            print('已删除账号验证、只读权限验证 通过')
        self.driver.quit()