Ejemplo n.º 1
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')
Ejemplo n.º 2
0
    def import_empty_template(self):  #主要用于为其他引用组织架构时候清空组织架构
        u'''组织架构 - 判断组织架构不为空则导入空组织架构模板(清空组织架构)'''
        nodata = getAssertText('nodata')
        tempUser = getAssertText('tempUser')
        batpath = os.path.dirname(os.path.abspath('.')) + '/script/'
        login.loginWeb2(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        organization = OrganizationMembersPage(self.driver, self.url)
        # 打开用户管理 - 组织成员
        organization.click_UserManage()
        time.sleep(0.5)
        organization.click_userGroup()
        time.sleep(1)
        #先确认 仅ip/mac绑定、仅mac绑定 关闭
        organization.click_globalconfig()
        time.sleep(1)
        IPMACb_Cs = str(
            organization.getAttribute_byXpath(organization.IPMACb_Cs,
                                              'checked'))
        Macb_Cs = str(
            organization.getAttribute_byXpath(organization.MACb_Cs, 'checked'))
        if IPMACb_Cs != 'true' or Macb_Cs != 'true':
            organization.click_IPMACb_C()
            time.sleep(0.5)
            organization.click_MACb_C()
            time.sleep(0.5)
            organization.click_saveAllSetting()
            time.sleep(3)
        IPMACb_Cs = str(
            organization.getAttribute_byXpath(organization.IPMACb_Cs,
                                              'checked'))
        self.assertEqual(IPMACb_Cs, 'true', msg='"仅IP/MAC绑定用户能上网" 关闭出错')
        print('"仅IP/MAC绑定用户能上网" 关闭')
        Macb_Cs = str(
            organization.getAttribute_byXpath(organization.MACb_Cs, 'checked'))
        self.assertEqual(Macb_Cs, 'true', msg='"仅MAC绑定用户能上网" 关闭出错')
        print('"仅MAC绑定用户能上网" 关闭')

        organization.click_list_Rootgroup_c()
        time.sleep(1)
        groupID = organization.getAttribute_byLink(organization.groupID,
                                                   attribute='id')

        # groupID = self.driver.find_element_by_link_text('临时用户').get_attribute('id')
        print('groupID:', groupID)  #空则为 “newTree_32_a”

        if str(groupID) == 'newTree_2_a':
            print('组织架构为空')
        else:
            organization.click_download()
            time.sleep(1)
            organization.click_chooseFile()
            if nodata == '暂无数据':
                filepath = batpath + 'SE_organizationalImport_emptyCn.exe'
            elif nodata == 'No data':
                filepath = batpath + 'SE_organizationalImport_emptyEn.exe'
            elif nodata == '暫無數據':
                filepath = batpath + 'SE_organizationalImport_emptyT.exe'
            #调用autoIt脚本上传组的cvs文件
            os.system(filepath)  # 注意脚本所在路径不要太复杂,比如下划线;autoIt内没关系
            time.sleep(2)
            organization.click_save()
            time.sleep(5)

            # 断言 成员列表中"暂无数据":代表Root组中没有组
            organization.click_list_Rootgroup_c()
            time.sleep(1)
            listTips = organization.getText_byXpath(organization.listTips)
            self.assertEqual(str(listTips), nodata, msg='删除成功')

            # 断言 newTree_2_span id为临时用户:代表没有其他组
            groupText = str(
                organization.getText_byID(organization.list_groupName1))
            print('groupText:', groupText)
            self.assertEqual(groupText, tempUser, msg='"临时用户组"id 不为2')
            time.sleep(1)
        self.driver.quit()
        print('组织架构为空/导入空组织架构 成功')
Ejemplo n.º 3
0
 def group_delete(self):
     u'''组织架构 - 删除组'''
     nodata = getAssertText('nodata')
     login.loginWeb(self)  # admin账号登录
     self.driver.implicitly_wait(10)
     organization = OrganizationMembersPage(self.driver, self.url)
     # 打开用户管理 - 组织成员
     organization.click_UserManage()
     time.sleep(0.5)
     organization.click_userGroup()
     time.sleep(1)
     organization.click_list_groupName_c()
     organization.click_delBtnNewTree1()
     time.sleep(1)
     organization.click_ok()
     time.sleep(2)
     # 断言 成员列表中"暂无数据":代表验证通过
     time.sleep(1)
     organization.click_list_Rootgroup_c()
     time.sleep(1)
     tips = str(organization.getText_byXpath(organization.listTips))
     self.assertEqual(tips, nodata, msg='删除组出错')
     self.driver.quit()
     print('组织架构 - 删除组 验证成功')
Ejemplo n.º 4
0
 def group_add(self):
     u'''组织架构 - 新增组'''
     login.loginWeb(self)  # admin账号登录
     self.driver.implicitly_wait(10)
     organization = OrganizationMembersPage(self.driver, self.url)
     # 打开用户管理 - 组织成员
     organization.click_UserManage()
     time.sleep(0.5)
     organization.click_userGroup()
     time.sleep(1)
     organization.click_addBtnNewTree1()
     time.sleep(1)
     organization.input_groupName('SelfComputerTest')
     organization.click_save()
     time.sleep(2)
     # 断言 增加的组名称是否相同:相同代表验证通过
     organization.click_userGroup()  #再点击下“组织成员”,架构树会展开
     time.sleep(1)
     add_group_name = str(
         organization.getText_byID(organization.list_groupName1))
     self.assertEqual(add_group_name, 'SelfComputerTest', msg='新增组出错')
     self.driver.quit()
     print('组织架构 - 新增组 验证成功')
Ejemplo n.º 5
0
    def add_user(self):
        u'''新增组织架构组 及 当前PC的用户'''
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        organization = OrganizationMembersPage(self.driver, self.url)

        # 打开用户管理 - 组织成员
        organization.click_UserManage()
        time.sleep(0.5)
        organization.click_userGroup()
        time.sleep(1)

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

        # 断言 增加的IP与实际IP相同:代表验证通过
        organization.click_userGroup()  #再点击下“组织成员”,架构树会展开
        time.sleep(0.5)
        organization.click_list_groupName_c()
        time.sleep(1)
        listAddIP = str(organization.getText_byXpath(organization.listAddIP))
        self.assertEqual(listAddIP, pcaddr, msg='新增 普通用户出错')
        self.driver.quit()
        print('组织架构 - 新增普通用户 成功')
Ejemplo n.º 6
0
    def test_004_group_importMAXgroup(self):
        u'''组织架构 - 最大组'''
        tempUser = getAssertText('tempUser')
        batpath = os.path.dirname(os.path.abspath('.')) + '/script/'
        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 tempUser == '临时用户':
            autoItScript = batpath + 'SE_organizationalimport_groupCn.exe'
        elif tempUser == 'Temp':
            autoItScript = batpath + 'SE_organizationalimport_groupEn.exe'
        os.system(autoItScript)  # 注意脚本所在路径不要太复杂,比如下划线;autoIt内没关系
        time.sleep(2)
        group.click_save()
        time.sleep(5)

        # # 断言 通过临时用户的ID,D525和j1800是128,510G是64,可能还有32
        # self.dr.find_element_by_link_text('临时用户').click()

        groupID = group.getAttribute_byLink(tempUser,'id')
        print(groupID)

        logger.info('最大组ID为%s' % groupID)
        Num=['newTree_32_a','newTree_64_a','newTree_128_a']
        self.assertIn(groupID,Num,msg='临时用户组 ID不对,导入组出错')
        self.driver.quit()
        logger.info('test_004_group_importMAXgroup passed')
Ejemplo n.º 7
0
 def test_002_groupEdit(self):
     u'''组织架构 - 编辑组'''
     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_list_groupName_c()
     time.sleep(0.5)
     group.click_editBtnnewTree1()
     time.sleep(1)
     group.input_groupName('changed')
     group.click_save()
     time.sleep(2)
     # 断言 增加的组名称是否相同:相同代表验证通过
     group.click_userGroup()  # 再点击下“组织成员”,架构树会展开
     time.sleep(1)
     add_groupName = str(group.getText_byID(group.list_groupName1))
     self.assertEqual(add_groupName, 'changed', msg='编辑组出错')
     self.driver.quit()
     logger.info('test_002_groupEdit passed')
Ejemplo n.º 8
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')
Ejemplo n.º 9
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')
Ejemplo n.º 10
0
    def test_002_operation_member(self):
        u'''对成员进行操作:移动、编辑、删除'''
        nodata = getAssertText('nodata')
        ScanTipsA = getAssertText('ScanTipsA')

        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)

        #移动 上一个def中的账号到 新建组 SelfComputerTest2 中
        group.click_list_groupName_c()
        time.sleep(2)
        group.input_search('SelfComputer1')
        time.sleep(0.5)
        group.click_searchB()
        time.sleep(1)
        group.click_checklist()
        time.sleep(0.5)
        group.click_moveUserTo()
        time.sleep(1)
        selgroup = group.selelement_byName(group.selmoveUserTo)
        Select(selgroup).select_by_value('3')  #组中的值是数字,这里选择'SelfComputerTest2'
        group.click_save()
        time.sleep(1)
        # 断言 添加的账号 名称和组 是否正常
        group.click_list_groupName2()
        time.sleep(2)
        list_authAccount2 = group.getText_byXpath(group.list_authAccount2)
        self.assertEqual(str(list_authAccount2),
                         'SelfComputer1',
                         msg='账号不为“SelfComputer”')
        list_authgroup2 = group.getText_byXpath(group.list_authgroup2)
        self.assertEqual(str(list_authgroup2),
                         'SelfComputerTest2',
                         msg='SelfComputer 账号移动失败')

        #编辑 成员
        # 修改SelfComputer账号用户名为 ‘SelfComputer2’
        group.click_list_groupName2()
        time.sleep(2)
        group.click_edituser1()
        time.sleep(1)
        group.input_UserName('SelfComputer2')
        group.click_save()
        time.sleep(1)
        # 断言 编辑的账号 用户名是否为 ‘webtest2’
        group.click_list_groupName2()
        time.sleep(1)
        changedusername = group.getText_byXpath(group.changedusername)
        self.assertEqual(str(changedusername), 'SelfComputer2', msg='用户名 修改失败')

        # 删除 成员账号
        group.click_list_groupName2()
        time.sleep(2)
        group.click_deluser1()
        time.sleep(1)
        group.click_ok()
        time.sleep(1)
        # 断言 删除后 列表显示“暂无数据”
        group.click_list_groupName2()
        time.sleep(1)
        listtips = group.getText_byXpath(group.listTips)
        self.assertEqual(str(listtips), nodata, msg='删除失败')

        # 扫描
        group.click_allScan()
        time.sleep(1)
        group.click_allScan1()
        time.sleep(2)
        ScanTips = group.getText_byClass(group.ScanTips)
        self.assertEqual(str(ScanTips), ScanTipsA, msg='扫描出错')
        time.sleep(20)
        Scanlist = group.getText_byXpath(group.Scanlist)
        self.assertIsNotNone(Scanlist, msg='扫描出错')
        self.driver.quit()
        logger.info('test_002_operation_member passed')
Ejemplo n.º 11
0
    def test_001_userList(self):
        u'''用户状态 列表'''
        tempUser = getAssertText('tempUser')
        Minute = getAssertText('minute')
        Ban = getAssertText('Ban')
        #003中设置了ip/mac绑定上网,这里增加一个判断联网
        pingTestIP()  # 避免判断失误
        p = pingTestIP()
        if p == 'N':  # 如果不通
            # 1、改回DHCP, 调用bat脚本
            os.system('%s' % (batpath + 'changeDhcpIp.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, n)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                raise Exception('未获取到地址')
        pingTestIP('www.baidu.com')  #避免判断失误
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            # 1、将mac改回, 调用bat脚本
            os.system('%s' % (batpath + 'changeMacToBack.bat'))
            time.sleep(5)
            n = 0
            while n < 30:
                # 获取本机ip 默认有线地址,有线断开会显示无线
                pcaddr_new = socket.gethostbyname(
                    socket.getfqdn(socket.gethostname()))
                print(pcaddr_new, n)
                if '192.168.' not in str(pcaddr_new):
                    time.sleep(2)
                    n += 1
                else:
                    print('IP地址已自动获取成功', n)
                    break
            else:
                # raise Exception('未获取到地址1')
                # 开启绑定情况下 仅更改mac 可能会获取不到地址
                os.system('%s' % (batpath + 'ipconfig_release.bat'))
                time.sleep(5)
                os.system('%s' % (batpath + 'ipconfig_renew.bat'))
                time.sleep(5)
                i = 0
                while i < 30:
                    # 获取本机ip 默认有线地址,有线断开会显示无线
                    pcaddr_new = socket.gethostbyname(
                        socket.getfqdn(socket.gethostname()))
                    print(pcaddr_new, i)
                    if '192.168.' not in str(pcaddr_new):
                        time.sleep(2)
                        i += 1
                    else:
                        print('IP地址已自动获取成功2', i)
                        break
                else:
                    raise Exception('未获取到地址2')
            #3、关闭"仅MAC绑定用户能上网" 关闭ip/mac绑定 以访003出错
            login.loginWeb(self)  # admin账号登录
            self.driver.implicitly_wait(10)
            group = OrganizationMembersPage(self.driver, self.url)
            # 打开用户管理 - 组织成员
            group.click_UserManage()
            time.sleep(0.5)
            group.click_userGroup()
            time.sleep(1)
            group = OrganizationMembersPage(self.driver, self.url)
            group.click_globalconfig()
            time.sleep(1)
            group.click_IPMACb_C()
            group.click_MACb_C()
            time.sleep(0.5)
            group.click_saveAllSetting()
            time.sleep(1)
            IPMACb_Cs = str(
                group.getAttribute_byXpath(group.IPMACb_Cs, 'checked'))
            self.assertEqual(IPMACb_Cs, 'true', msg='"仅IP/MAC绑定用户能上网" 关闭出错')
            print('"仅IP/MAC绑定用户能上网" 关闭')
            Macb_Cs = str(group.getAttribute_byXpath(group.MACb_Cs, 'checked'))
            self.assertEqual(Macb_Cs, 'true', msg='"仅MAC绑定用户能上网" 关闭出错')
            print('"仅MAC绑定用户能上网" 关闭')
            self.driver.quit()

        # 打开用户管理 - 用户状态
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        status = Organization_userStatusPage(self.driver, self.url)
        status.click_UserManage()
        time.sleep(0.5)
        status.click_userstatus()
        time.sleep(1)
        # 将页面刷新按钮改成“手动”
        sel = status.selelement_byXpath(status.selmanual)
        Select(sel).select_by_value('manual')
        time.sleep(1)
        status.click_refreshtable()
        time.sleep(1)
        #定义页面显示元素变量
        ID = str(status.getText_byXpath(status.ID))
        username = str(status.getText_byXpath(status.username))
        group = str(status.getText_byXpath(status.group))
        VlanID = str(status.getText_byXpath(status.VlanID))
        IP = str(status.getText_byXpath(status.IP))
        mac = str(status.getText_byXpath(status.mac))
        authmode = str(status.getText_byXpath(status.authmode))
        online_time_length = str(
            status.getText_byXpath(status.online_time_length))
        Uploading_data = str(status.getText_byXpath(status.Uploading_data))
        Downing_data = str(status.getText_byXpath(status.Downing_data))
        Uploading_speed = str(status.getText_byXpath(status.Uploading_speed))
        Downing_speed = str(status.getText_byXpath(status.Downing_speed))
        edit = str(status.getText_byXpath(status.edit))

        # 断言 用户列表是否显示有误
        time.sleep(1)
        self.assertEqual(ID, '1', msg='ID出错')
        print('用户状态 - ID 验证成功')
        self.assertIsNotNone(username, msg='用户名 出错')
        print('用户状态 - 用户名 验证成功')
        self.assertEqual(group, tempUser,
                         msg='所属组 出错')  #脚本在最后会清空组织架构,所以脚本在一开始新建组,用户都是 临时用户
        print('用户状态 - 所属组 验证成功')
        self.assertIsNotNone(VlanID, msg='VLANID 出错')
        print('用户状态 - VLANID 验证成功')
        self.assertIn('192.168.', IP, msg='IP 出错')  #lan口地址段
        print('用户状态 - IP 验证成功')
        self.assertEqual(len(mac), 17, msg='mac 出错')  #判断mac地址长度
        print('用户状态 - mac 验证成功')
        self.assertIsNotNone(authmode, msg='认证方式 出错')
        print('用户状态 - 认证方式 验证成功')
        self.assertIn(Minute, online_time_length, msg='在线时长 出错')  # 在线时长是否包含“分”
        print('用户状态 - 在线时长 验证成功')
        self.assertIsNotNone(Uploading_data, msg='上传数据 出错')
        print('用户状态 - 上传数据 验证成功')
        self.assertIsNotNone(Downing_data, msg='下载数据 出错')
        print('用户状态 - 下载数据 验证成功')
        self.assertIsNotNone(Uploading_speed, msg='上传速度 出错')
        print('用户状态 - 上传速度 验证成功')
        self.assertIsNotNone(Downing_speed, msg='下载速度 出错')
        print('用户状态 - 下载速度 验证成功')
        self.assertEqual(edit, Ban, msg='拉黑菜单显示 出错')
        print('用户状态 - 拉黑菜单显示 验证成功')
        self.driver.quit()
        logger.info('test_001_userList passed')
Ejemplo n.º 12
0
    def test_002_binding(self):
        u'''IP/MAC地址绑定'''
        member = OrganizationMembersPage(self.driver, self.url)
        member.click_userGroup()
        time.sleep(1)
        member.click_globalconfig()
        time.sleep(1)
        #仅IP/MAC绑定用户能上网
        member.click_IPMACb_E()
        member.click_IPMACb_C()
        # 仅MAC绑定用户能上网
        member.click_MACb_E()
        member.click_MACb_C()

        self.driver.quit()
        logger.info('test_002_binding passed')
Ejemplo n.º 13
0
    def tearDown(self):
        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')
        time.sleep(2)
        # 判断联网 ,不能上网则报错
        pingTestIP('www.baidu.com')  #避免失误
        p = pingTestIP('www.baidu.com')
        if p == 'N':
            raise Exception('connect failed.')
        nodata = getAssertText('nodata')
        # 关闭"IP/MAC绑定用户能上网"
        group = OrganizationMembersPage(self.driver, self.url)
        group.click_globalconfig()
        time.sleep(1)
        group.click_IPMACb_C()
        time.sleep(0.5)
        group.click_MACb_C()
        time.sleep(0.5)
        group.click_saveAllSetting()
        time.sleep(2)
        IPMACb_Cs = str(group.getAttribute_byXpath(group.IPMACb_Cs, 'checked'))
        self.assertEqual(IPMACb_Cs, 'true', msg='"仅IP/MAC绑定用户能上网" 关闭出错')
        print('"仅IP/MAC绑定用户能上网" 关闭')
        Macb_Cs = str(group.getAttribute_byXpath(group.MACb_Cs, 'checked'))
        self.assertEqual(Macb_Cs, 'true', msg='"仅MAC绑定用户能上网" 关闭出错')
        print('"仅MAC绑定用户能上网" 关闭')
        # 删除用户组
        group.click_list_groupName_c()
        time.sleep(1)
        group.click_delBtnNewTree1()
        time.sleep(1)
        group.click_ok()
        time.sleep(1)
        # 断言 成员列表中"暂无数据":代表Root组中没有组
        group.click_list_Rootgroup_c()
        time.sleep(1)
        listtips = group.getText_byXpath(group.listTips)
        self.assertEqual(str(listtips), nodata, msg='删除成功')
        print('已删除用户组及绑定用户')
        self.driver.quit()

        logger.info('tearDown over')
        logger.info('%s' % ('=' * 50))
Ejemplo n.º 14
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')