Esempio n. 1
0
    def test_001_groupAdd(self):
        u'''组织架构 - 新增组'''
        organization_group.import_empty_template(self)#判断是否有组织架构,有则清空

        organization_group.group_add(self)  # 新增组

        logger.info('test_001_groupAdd passed')
    def test_002_StaticList(self):
        u'''静态列表显示'''
        organization_group.import_empty_template(self)  # 判断组织架构是否有其他组 有则清空
        #新增一个组
        organization_group.group_add(self)
        # 获取本机ip 默认有线地址,有线断开会显示无线
        pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
        if pcaddr == batSameIP:
            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)
                    if pcaddr == batSameIP:
                        raise Exception(u'IP地址已经为1.39')
                    break
            else:
                raise Exception('未获取到地址')

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        dhcpserver = DHCPserverpage(self.driver, self.url)
        # 打开网络配置 - DHCP服务
        dhcpserver.click_NetworkConfig()
        time.sleep(0.5)
        dhcpserver.click_DHCPserver()
        time.sleep(1)
        # 对当前PC 进行静态绑定
        dhcpserver.click_StaticDHCP()
        time.sleep(1)
        #新增(注意add会有多个元素被识别到 这里用绝对路径)
        dhcpserver.click_add()
        time.sleep(1)
        dhcpserver.input_UserName('oneself')
        dhcpserver.input_IP(pcaddr)
        dhcpserver.input_MAC(PcMac)  #如更换PC 注意修改config.ini中mac地址
        dhcpserver.click_save()
        time.sleep(1)

        #静态列表显示变量赋值
        list_username = dhcpserver.getText_byXpath(dhcpserver.list_username)
        list_poolname = dhcpserver.getText_byXpath(dhcpserver.list_poolname)
        list_IP = dhcpserver.getText_byXpath(dhcpserver.list_IP)
        list_MAC = dhcpserver.getText_byXpath(dhcpserver.list_MAC)
        #断言 判断列表显示是否正常
        self.assertEqual(list_username, 'oneself', msg='列表中用户名显示不一致')
        self.assertEqual(list_poolname, 'default',
                         msg='列表中 地址池名称 不为default')  #默认地址池名称
        self.assertEqual(list_IP, pcaddr, msg='列表中IP地址 显示不一致')
        self.assertEqual(list_MAC, PcMac, msg='列表中MAC地址池显示不一致')
        self.driver.quit()
        logger.info('test_002_StaticList passed')
Esempio n. 3
0
    def test_001_openRemoteAuth(self):
        u'''开启远程认证'''
        if Support == '√':
            logger.info(u'参数支持远程认证')
            organization_group.import_empty_template(self)  # 判断组织架构是否有其他组 有则清空

            # 打开用户管理 - 用户认证
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            remoteauth = Organization_userAuthPage(self.driver, self.url)
            remoteauth.click_UserManage()
            time.sleep(0.3)
            remoteauth.click_userAuth()
            time.sleep(1)
            # 开启远程认证
            remoteauth.click_remoteAuthEn()
            time.sleep(0.5)
            # 断言 提示信息是否有误
            status = str(
                remoteauth.getAttribute_byXpath(remoteauth.remoteAuthEs,
                                                'checked'))
            self.assertEqual(status, 'true', msg='远程认证开启出错')
            time.sleep(1)
            self.driver.quit()
            print('远程认证 开启成功')

            # 新增用户组及PC的组织架构
            organization_group.add_user(self)
            time.sleep(1)
        elif Support == '×':
            logger.info(u'参数不支持远程认证')
        logger.info('test_001_openRemoteAuth passed')
Esempio n. 4
0
    def test_003_closeWebAuth(self):
        u'''关闭web认证'''
        if Support == '√':
            logger.info(u'参数支持本地认证')
            # 打开用户管理 - 用户认证
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            webauth = Organization_userAuthPage(self.driver, self.url)
            # 打开用户管理 - 用户认证
            webauth.click_UserManage()
            time.sleep(0.5)
            webauth.click_userAuth()
            time.sleep(1)
             # 开启web认证
            webauth.click_WebAuthC()
            time.sleep(1)
            # 断言 提示信息是否有误
            status = str(webauth.getAttribute_byXpath(webauth.WebAuthCs,'checked'))
            time.sleep(1)
            self.assertEqual(status, 'true', msg='web认证关闭出错')
            self.driver.quit()
            print('web认证关闭 验证成功')

            # 清空组织架构组
            organization_group.import_empty_template(self)  # 判断组织架构是否有其他组 有则清空
            print('删除组织架构组 完成')
        elif Support == '×':
            logger.info(u'参数不支持本地认证')
        logger.info('test_003_closeWebAuth passed')
Esempio n. 5
0
    def test_001_openWebAuth(self):
        u'''web认证开启'''
        host = gettelnet('host').split(r'.')
        host1 = host[0] + '.' + host[1] + '.' + host[2] +'.'
        # 006中设置了指定IP,这里增加一个判断联网
        pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
        print(pcaddr)
        pingTestIP()  # 避免判断失误

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

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

            # 打开用户管理 - 用户认证
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            webauth = Organization_userAuthPage(self.driver, self.url)
            # 打开用户管理 - 用户认证
            webauth.click_UserManage()
            time.sleep(0.5)
            webauth.click_userAuth()
            time.sleep(1)
            #开启web认证
            webauth.click_WebAuthEn()
            time.sleep(1)
            # 断言 提示信息是否有误
            status = str(webauth.getAttribute_byXpath(webauth.WebAuthEs,'checked'))
            time.sleep(1)
            self.assertEqual(status,'true',msg='web认证开启出错')
            self.driver.quit()
        elif Support == '×':
            logger.info(u'参数不支持本地认证')
        logger.info('test_001_openWebAuth passed')
Esempio n. 6
0
    def test_001_addWebAccNumber(self):
        u'''认证账号 - web账号'''
        AccountingType = getAssertText('AccountingType')
        organization_group.import_empty_template(self)  # 判断组织架构是否有其他组 有则清空
        # 调用新增组 “SelfComputerTest”
        organization_group.group_add(self)

        # 新增web认证账号
        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”')
        print('认证账号 - 新增web账号 验证成功')

        # 修改web账号的计费方式为日期计费
        time.sleep(1)
        webauth.click_listedit1()
        time.sleep(1)
        webauth.click_accountBillEn()
        time.sleep(0.5)
        webauth.click_save()
        time.sleep(1)
        # 断言 编辑的账号 计费方式是否已开启
        list_AccountingType = str(webauth.getText_byXpath(webauth.list_AccountingType))
        self.assertEqual(list_AccountingType, AccountingType, msg='web认证账号 修改成功')
        self.driver.quit()
        logger.info('test_001_addWebAccNumber passed')
Esempio n. 7
0
    def test_002_MovetoOther(self):
        u'''用户 :移动到其他组'''
        organization_group.import_empty_template(self)  # 判断是否有组织架构,有则清空

        #新建组
        organization_group.group_add(self)

        #切回用户状态列表
        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)
        #移动 列表中第一个 到 新建组'SelfComputerTest' 中
        #获取列表中第一个被移动的用户的IP
        list_IP1 = str(status.getText_byXpath(status.list_IP1))
        status.click_checkbox1()
        time.sleep(0.5)
        status.click_move()
        time.sleep(1)
        status.click_save()
        time.sleep(2)
        # 断言
        group = OrganizationMembersPage(self.driver, self.url)
        group.click_userGroup()
        time.sleep(1)
        group.click_list_groupName_c()
        time.sleep(2)
        listIP = str(group.getText_byXpath(group.listAddIP))
        self.assertEqual(listIP, list_IP1, msg='移动出错 IP不一致')
        authgroup = str(group.getText_byXpath(group.list_authgroup2))
        self.assertEqual(authgroup, 'SelfComputerTest', msg='移动出错 所属组 不一致')
        self.driver.quit()
        print('移动到其他组 验证成功')

        # 删除新建组'SelfComputerTest',使在线用户回到临时用户组
        time.sleep(1)
        organization_group.group_delete(self)
        logger.info('test_002_MovetoOther passed')
Esempio n. 8
0
    def test_003_closeRemoteAuth(self):
        u'''关闭远程认证'''
        if Support == '√':
            logger.info(u'参数支持远程认证')
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            remoteauth = Organization_userAuthPage(self.driver, self.url)
            remoteauth.click_UserManage()
            time.sleep(0.3)
            remoteauth.click_userAuth()
            time.sleep(1)
            # 关闭web认证
            remoteauth.click_remoteAuthC()
            time.sleep(1)
            # 断言 提示信息是否有误
            status = str(
                remoteauth.getAttribute_byXpath(remoteauth.remoteAuthCs,
                                                'checked'))
            self.assertEqual(status, 'true', msg='远程认证关闭出错')
            print('远程认证关闭')
            # 免认证选择 全部用户,然后关闭免认证
            remoteauth.click_noConfig()
            time.sleep(1)
            remoteauth.click_alluser()
            time.sleep(0.5)
            remoteauth.click_save()
            time.sleep(1)
            remoteauth.click_FreeAuthC()
            time.sleep(2)
            # 断言 提示信息是否有误
            status2 = str(
                remoteauth.getAttribute_byXpath(remoteauth.FreeAuthCs,
                                                'checked'))
            self.assertEqual(status2, 'true', msg='免认证关闭出错')
            print('免认证关闭')
            self.driver.quit()

            # 清空组织架构组
            organization_group.import_empty_template(self)  # 判断组织架构是否有其他组 有则清空
            print('删除组织架构组 完成')
        elif Support == '×':
            logger.info(u'参数不支持远程认证')
        logger.info('test_003_closeRemoteAuth passed')
Esempio n. 9
0
    def test_001_FreeAuthgroup(self):
        u'''免认证 - 组织成员'''
        self.driver.quit()

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

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        freeauth = Organization_userAuthPage(self.driver, self.url)
        # 打开用户管理 - 用户认证
        freeauth.click_UserManage()
        time.sleep(0.5)
        freeauth.click_userAuth()
        time.sleep(1)
        #免认证选择组织架构
        freeauth.click_noConfig()
        time.sleep(1)
        freeauth.click_usergroup()
        time.sleep(1)
        # 组织架构,这里选择的是ROOT 所有
        freeauth.click_Root()
        time.sleep(0.5)
        freeauth.click_save()
        time.sleep(1)
        self.driver.quit()

        # 新增用户组及普通IP用户
        organization_group.add_user(self)

        #打开网页验证 断言
        self.driver = webdriver.Chrome()
        self.driver.implicitly_wait(10)
        self.driver.get('http://www.baidu.com')
        time.sleep(2)
        title1 = self.driver.title
        # print(title1)
        self.assertEqual(title1, '百度一下,你就知道', msg='免认证-组织架构 出错')
        self.driver.quit()
        print('免认证 - 组织成员 验证成功')

        #导入空组织架构 以 清空
        organization_group.import_empty_template(self)
        logger.info('test_001_FreeAuthgroup passed')
Esempio n. 10
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')
Esempio n. 11
0
    def test_005_import_emptyTemplate(self): #清空组织架构
        u'''组织架构 - 判断组织架构不为空则导入空组织架构模板(清空组织架构)'''
        organization_group.import_empty_template(self)  # 调用判断 有组织架构清空

        logger.info('test_005_import_emptyTemplate passed')
Esempio n. 12
0
    def test_001_add_user(self):
        u'''组织架构 - 新增成员'''
        organization_group.import_empty_template(self)  # 调用判断 有组织架构清空

        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)

        #普通用户
        # 获取本机ip 默认有线地址,有线断开会显示无线
        pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname()))
        # 新增用户 仅IP 设置的为本机IP
        group.click_addBtnNewTree1()
        time.sleep(1)
        group.input_groupName('SelfComputerTest')
        group.click_save()
        time.sleep(1)
        group.click_addUser()
        time.sleep(1)
        group.input_UserName('SelfComputer1')
        group.input_normalIP(pcaddr)
        group.click_save()
        time.sleep(2)

        # 断言 增加的IP与实际IP相同:代表验证通过
        group.click_userGroup()
        group.click_list_groupName_c()
        time.sleep(1)
        listAddIP = str(group.getText_byXpath(group.listAddIP))
        self.assertEqual(listAddIP, pcaddr, msg='新增 普通用户出错')
        print('组织架构 - 新增普通用户 验证成功')

        # 再新建一个组
        time.sleep(1)
        group.click_addBtnNewTree1()
        time.sleep(1)
        group.input_groupName('SelfComputerTest2')
        group.click_save()
        time.sleep(2)

        #用户认证页面 判断是否支持web认证
        webauth = 1  #预设web和pppoe认证为1,支持
        PPPoEAuth = 1
        auth = Organization_userAuthPage(self.driver, self.url)
        auth.click_userAuth()
        time.sleep(1)
        try:
            self.driver.implicitly_wait(2)
            auth.find_WebAuthC()
        except ElementNotVisibleException:
            webauth = 0
        try:
            auth.find_pppoeAuthC()
        except ElementNotVisibleException:
            PPPoEAuth = 0

        self.driver.implicitly_wait(10)
        group.click_userGroup()
        time.sleep(1)
        if webauth == 1:
            # 新增web认证用户(部分型号不支持web认证)
            group.click_addUser()
            time.sleep(1)
            group.input_UserName('webtest1')
            group.click_authuser()
            time.sleep(1)
            sel = group.selelement_byName(group.authType)
            Select(sel).select_by_value('Web')
            time.sleep(1)
            group.input_authAccount('webtest1')
            group.input_authPassword('webtest1')
            group.click_save()
            time.sleep(2)
            # 断言 添加的账号 认证方式和认证账号 是否正常
            group.click_list_groupName_c()
            time.sleep(1)
            list_authType = group.getText_byXpath(group.list_authType)
            list_authAccount = group.getText_byXpath(group.list_authAccount)
            self.assertEqual(str(list_authType), 'Web', msg='认证方式显示不为“Web”')
            self.assertEqual(str(list_authAccount),
                             'webtest1',
                             msg='认证账号不为“webtest1”')

        if PPPoEAuth == 1:
            #新增pppoe用户(部分型号不支持PPPoE server,目前支持web认证的都支持pppoe server)
            group.click_addUser()
            time.sleep(1)
            group.input_UserName('zpppoetest1')
            group.click_authuser()
            time.sleep(1)
            sel = group.selelement_byName(group.authType)
            Select(sel).select_by_value('PPPoE')
            time.sleep(0.5)
            group.input_authAccount('pppoetest1')
            group.input_authPassword('pppoetest1')
            group.click_save()
            time.sleep(2)
            #断言
            group.click_list_groupName_c()
            time.sleep(1)
            #pppoe账号排序默认在web账号之前的第二行,这里还是判断第二行的信息
            list_authType = group.getText_byXpath(group.list_authType)
            list_authAccount = group.getText_byXpath(group.list_authAccount)
            self.assertEqual(str(list_authType),
                             'PPPoE',
                             msg='认证方式显示不为“PPPoE”')
            self.assertEqual(str(list_authAccount),
                             'pppoetest1',
                             msg='认证账号不为“pppoetest1”')
            print('组织架构 - 新增PPPoE用户 验证成功')

        self.driver.quit()
        logger.info('test_001_add_user passed')
Esempio n. 13
0
    def test_003_import_export(self):
        u'''组织架构 - 导入导出'''
        organization_csv = getAssertText('organization_csv')
        organization_csv3 = getAssertText('organization_csv3')
        tempUser = getAssertText('tempUser')
        batpath = os.path.dirname(os.path.abspath('.')) + '/script/'
        #先删除组织成员路径中 "组织成员20""织成员3333"开头的 csv文件
        call_Firefox.del_organization_csv(self)
        #调用Firefox 导出组织架构
        call_Firefox.Firefox_login_web(self)
        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_outload()
        time.sleep(1)

        # 进行配置文件命名修改
        path = os.path.dirname(os.path.abspath('.')) + '/tmp/'  #配置文件存放(下载)路径
        sys.path.append(r'%s' % path)
        files = os.listdir(r'%s' %
                           path)  #os.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表
        #通过文件名称判断 修改为指定的文件名
        for filename in files:
            portion = os.path.splitext(filename)  #splitext()用于返回 文件名和扩展名 元组
            # print(portion2)
            if organization_csv in str(portion[0]):  #如果文件名种包含"组织成员20"
                if portion[1] == '.csv':  #如果后缀是 .xml
                    newname = organization_csv3 + '.csv'
                    #重新组合文件名和后缀名,直接修改名称的话 程序和文件必须在一个目录下
                    filenamedir = (r'%s' % path) + filename
                    newnamedir = (r'%s' % path) + newname
                    #修改文件名称(与autoIt上传脚本中上传的文件名称一致)
                    os.rename(filenamedir, newnamedir)
        print('组织架构 - 导出 验证成功')

        #更改下组织架构
        time.sleep(1)
        group.click_addBtnNewTree1()
        time.sleep(1)
        group.input_groupName('SelfComputerTest3')
        time.sleep(0.5)
        group.click_save()
        time.sleep(2)
        self.driver.quit()

        #导入 刚导出的 修改配置之前 的组织架构
        login.loginWeb2(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_download()
        time.sleep(1)
        group.click_chooseFile()
        time.sleep(1)
        # 调用autoIt脚本上传组的cvs文件
        if organization_csv == '组织成员20':
            autoItScript = batpath + 'SE_organizationalimport_groupNewCn.exe'
        if organization_csv == 'Groupmembers20':
            autoItScript = batpath + 'SE_organizationalimport_groupNewEn.exe'
        os.system('%s' % autoItScript)
        time.sleep(2)
        group.click_save()
        time.sleep(5)
        # 断言 组只有4个:代表验证通过
        time.sleep(1)
        groupId = str(group.getText_byID(group.list_groupName3))
        print(groupId)
        self.assertEqual(groupId, tempUser, msg='"临时用户组"id 不为4,导入组织架构有误')

        #删除 组织成员3333.csv 文件
        call_Firefox.del_organization_csv(self)
        self.driver.quit()
        print('组织架构 - 导入 验证成功')

        #导入空组织架构 以 清空
        organization_group.import_empty_template(self)  # 判断是否有组织架构,有则清空

        logger.info('test_003_import_export passed')
Esempio n. 14
0
    def test_IPfilter(self):
        u'''IP地址过滤tcp80 控制组织架构成员,生效时间内无法访问http网页'''
        organization_group.import_empty_template(self)  # 判断组织架构是否有其他组 有则清空
        organization_group.add_user(self)  #将自身IP增加到组织架构中

        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        timePlan = timePlanPage(self.driver, self.url)
        # 创建时间计划 为当天
        timePlan.click_sysObj()
        time.sleep(0.5)
        timePlan.click_timePlan()
        time.sleep(1)
        # 操作删除 以访已有规则
        timePlan.click_selall()
        time.sleep(0.2)
        timePlan.click_delall()
        time.sleep(1)
        try:
            self.driver.implicitly_wait(2)
            timePlan.find_ok()
        except NoSuchElementException:
            try:
                timePlan.find_tipsshowin()
                time.sleep(1)
            except NoSuchElementException:
                pass
        else:
            time.sleep(1)
            print('时间计划列表已删除')
        timePlan.click_add()
        time.sleep(1)
        timePlan.input_TimeRangeName('TimePlan')
        timePlan.click_save()
        time.sleep(1)
        # 断言 开启提示信息是否有误
        list_name = str(timePlan.getText_byXpath(timePlan.listName))
        time.sleep(1)
        self.assertEqual(list_name, 'TimePlan', msg='时间段名 与配置的不一致')
        print('时间计划已添加')

        #配置防火墙
        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('IPfilter')
        firewall.click_sourceIP()
        time.sleep(1)
        firewall.click_usergroup()
        time.sleep(1)
        # 组织架构,这里选择的是ROOT 所有
        firewall.click_Root()
        firewall.click_saveW1()
        time.sleep(1)
        seltime = firewall.selelement_byName('timeGrpName')
        time.sleep(1)
        Select(seltime).select_by_value('TimePlan')
        # #默认就是IP过滤、TCP 可省略
        # FilterTypessel = self.driver.find_element_by_name('FilterTypes')
        # time.sleep(1)
        # Select(FilterTypessel).select_by_value('1') #IP过滤
        # Protocol = self.driver.find_element_by_name('Protocol')
        # time.sleep(1)
        # Select(Protocol).select_by_value('2') #TCP
        selservice = firewall.selelement_byName('cyfw')
        time.sleep(1)
        Select(selservice).select_by_value('80')  #80(web)
        firewall.click_save()
        time.sleep(1)
        firewall.click_checkTraffic()
        time.sleep(2)
        print('访问控制策略 已添加')
        #断言
        list_dstport = str(firewall.getText_byXpath(firewall.list_dstport))
        self.assertEqual(list_dstport, '80-80', msg='策略目的端口不为"80-80"')
        checkTrafficS = firewall.getAttribute_byId(
            firewall.checkTrafficS, 'checktype')  #checktype 0未开启,1开启
        self.assertEqual(checkTrafficS, '1', msg='访问控制 未开启')
        self.driver.quit()

        #访问官网,使用打不开网页的 title做断言
        time.sleep(8)
        self.driver = webdriver.Chrome()
        # self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        self.driver.get('http://' + httpWebUrl + '/')
        title = str(self.driver.title)
        # print(title)
        self.assertEqual(title, httpWebUrl, msg='TCP80 禁止失败')
        self.driver.quit()
        logger.info('test_IPfilter passed')
Esempio n. 15
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')
Esempio n. 16
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')