def test_004_releaseIP(self):
        u'''PC2释放IP,客户端列表显示正确'''
        # 获取本机ip 默认有线地址,有线断开会显示无线
        pcaddr = str(socket.gethostbyname(socket.getfqdn(
            socket.gethostname())))

        # 调用bat脚本 MAC地址释放
        os.system('%s' % (batpath + 'ipconfig_release.bat'))
        time.sleep(2)
        # 获取本机ip 默认有线地址,有线断开会显示无线
        pcaddr1 = str(
            socket.gethostbyname(socket.getfqdn(socket.gethostname())))
        print(pcaddr1)
        if pcaddr1 != str(pcaddr):
            print('IP地址已释放')
        else:
            time.sleep(3)

        # 调用bat脚本 MAC地址修改回
        os.system('%s' % (batpath + 'changeMacToBack.bat'))
        time.sleep(5)
        n = 0
        while n < 30:
            # 获取本机ip 默认有线地址,有线断开会显示无线
            pcaddr2 = socket.gethostbyname(socket.getfqdn(
                socket.gethostname()))
            print(pcaddr2, n)
            if '192.168.' not in str(pcaddr2):
                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')

        #登陆页面查看DHCP客户端列表是否还有pc的ip
        login.loginWeb(self)  # admin账号登录
        self.driver.implicitly_wait(10)
        dhcpserver = DHCPserverpage(self.driver, self.url)
        # 打开网络配置 - 内网配置
        dhcpserver.click_NetworkConfig()
        time.sleep(0.5)
        dhcpserver.click_DHCPserver()
        time.sleep(1)
        dhcpserver.clicl_DHCPClientList()
        time.sleep(1)
        # #刷新时间改为手动
        # se1 = self.driver.find_element_by_xpath('//*[@id="btns"]/ul/li[1]/select')
        # time.sleep(1)
        # Select(se1).select_by_value('manual')
        # self.driver.find_element_by_xpath('//*[@id="add"and@data-local="刷新"]').click()
        # time.sleep(1)
        #输入pc的IP地址来过滤验证断言
        dhcpserver.input_search(pcaddr)
        dhcpserver.click_searchb()
        time.sleep(1)
        list_tips = dhcpserver.getText_byXpath(dhcpserver.list_tips)
        self.assertEqual(list_tips, nodata, msg='DHCP客户端列表不为空')
        self.driver.quit()
        logger.info('test_004_releaseIP passed')
Esempio n. 2
0
    def test_001_AllocationAddress(self):
        u'''动态分配地址、静态地址分配'''
        MinutesA = getAssertText('MinutesA')
        dhcpserver = DHCPserverpage(self.driver, self.url)
        # 获取本机ip 默认有线地址,有线断开会显示无线
        pcaddr = str(socket.gethostbyname(socket.getfqdn(socket.gethostname())))
        # 调用bat脚本 改为DHCP
        os.system('%s' % (batpath + 'changeDhcpIp.bat'))
        time.sleep(5)

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

        dhcpserver.clicl_DHCPClientList()
        time.sleep(3)
        #刷新改为手动
        selrefreshtime = dhcpserver.selelement_byXpath(dhcpserver.selrefreshtime)
        Select(selrefreshtime).select_by_value('manual')
        dhcpserver.click_Refresh()
        time.sleep(0.5)

        # 定义页面显示元素变量
        listIP = str(dhcpserver.getText_byXpath(dhcpserver.listIP))
        listmask = str(dhcpserver.getText_byXpath(dhcpserver.listmask))
        listmac = str(dhcpserver.getText_byXpath(dhcpserver.listmac))
        listLeaseTime = str(dhcpserver.getText_byXpath(dhcpserver.listLeaseTime))
        self.assertIn('192.168.', listIP, msg='IP 出错')  # lan口地址段
        print('DHCP客户端列表 - IP 验证成功')
        self.assertIn('255.255.255.0', listmask, msg='IP 出错')  # 掩码
        print('DHCP客户端列表 - 掩码 验证成功')
        self.assertEqual(len(listmac), 17, msg='mac 出错')  # 判断mac地址长度
        print('DHCP客户端列表 - mac 验证成功')
        self.assertIn(MinutesA, listLeaseTime, msg='IP 出错')  # 租期时间
        print('DHCP客户端列表 - 租期时间 验证成功')
        print('动态分配地址 验证通过')

        # 任意绑定一个地址
        dhcpserver.click_StaticDHCP()
        time.sleep(1)
        dhcpserver.click_add()
        time.sleep(1)
        dhcpserver.input_UserName('oneself')
        dhcpserver.input_IP('123.1.1.1')
        dhcpserver.input_MAC('1')
        print('静态地址分配 验证通过')
        self.driver.quit()
        logger.info('test_001_AllocationAddress passed')