def tearDown(self): #避免未改回 p = pingTestIP() if p == 'N': # 调用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口通 try: swconfig.test_WanToLan(self) except TimeoutError: logger.info(u'telnet不到交换机') pass # 将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('tearDown over') logger.info('%s' % ('=' * 50))
def test_005_WanAcessSmaba(self): u'''WAN口访问samba服务器(部分型号暂未支持)''' ftpSmaba = NetworkSharingPage(self.driver, self.url) #1、验证未打开 ‘wan口访问’ 无法从wan访问samba #1)验证未打开 WANEnable = str( self.driver.find_element_by_name('WANEnable').get_attribute( 'checked')) print(WANEnable) if WANEnable == 'true': self.driver.find_element_by_name('WANEnable').click() ftpSmaba.click_save() time.sleep(1) ftpSmaba.click_NetworkSharing2() # 点击网络共享子页面 time.sleep(1) WANEnable = str( self.driver.find_element_by_name('WANEnable').get_attribute( 'checked')) self.assertEqual(WANEnable, 'None', msg='允许wan口访问 关闭失败') #2)从外网配置页面获取WAN1口地址 wanpage = NetworkConfig_wanpage(self.driver, self.url) wanpage.click_WANconfig() time.sleep(1) # WAN1 ip变量赋值,页面读取 WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP)) time.sleep(1) #3) 更改pc 交换机接口与wan口/上联口通 swconfig.test_LanToWan(self) # 重新获取地址 应获取到上层网关下发的地址 pcaddr = str(socket.gethostbyname(socket.getfqdn( socket.gethostname()))) # 调用bat脚本 IP地址释放 os.system('%s' % (batpath + 'ipconfig_release.bat')) time.sleep(2) pcaddr1 = str( socket.gethostbyname(socket.getfqdn(socket.gethostname()))) print(pcaddr1) if pcaddr1 != str(pcaddr): print('IP地址已释放') else: time.sleep(3) time.sleep(2) # 重新获取地址 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('未获取到地址') time.sleep(2) #4)未开启验证无法登录 user_name = "anonymous" pass_word = "" my_name = "anyname" domain_name = "" remote_smb_IP = WAN1_ip smb = SMBConnection(user_name, pass_word, my_name, domain_name, use_ntlm_v2=True) try: smb.connect(remote_smb_IP, 139, timeout=3) except ConnectionRefusedError: print('未开启samba 无法访问 验证通过') # 5)改为lan口 并重新获取地址 switchURL2 = gettelnet('switchURL2') # 调用bat脚本 地址修改为 192.168.34.39 网关192.168.34.1 os.system('%s' % (batpath + 'changeStaticIP3_34duan.bat')) time.sleep(5) n = 0 while n < 30: # 获取本机ip 默认有线地址,有线断开会显示无线 pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname())) print(pcaddr, n) if str(pcaddr) != '192.168.34.39': time.sleep(2) n += 1 else: print('地址已修改为地址 192.168.34.39', n) break else: raise Exception('地址修改为192.168.34.39 失败') # 更改pc 交换机接口与lan口通 p1 = subprocess.Popen('ping -n 2 -w 2 %s' % switchURL2, shell=True, stdout=subprocess.PIPE) # print('错误IP联网状态(ping通为0 不通为1):', p1.wait()) # ping通为0 不通为1 ping = int(p1.wait()) if ping == 0: 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('未获取到地址') time.sleep(3) #2 验证打开 ‘wan口访问’ 可以从wan口访问smaba #1)打开 ftpSmaba = NetworkSharingPage(self.driver, self.url) ftpSmaba.click_NetworkSharing() time.sleep(1) ftpSmaba.click_NetworkSharing2() # 点击网络共享子页面 time.sleep(1) self.driver.find_element_by_name('WANEnable').click() ftpSmaba.click_save() time.sleep(1) WANEnable = self.driver.find_element_by_name( 'WANEnable').get_attribute('checked') self.assertEqual(WANEnable, 'true', msg='允许wan口访问 启用失败') #2) 更改pc 交换机接口与wan口/上联口通 swconfig.test_LanToWan(self) # 重新获取地址 应获取到上层网关下发的地址 pcaddr = str(socket.gethostbyname(socket.getfqdn( socket.gethostname()))) # 调用bat脚本 IP地址释放 os.system('%s' % (batpath + 'ipconfig_release.bat')) time.sleep(2) pcaddr1 = str( socket.gethostbyname(socket.getfqdn(socket.gethostname()))) print(pcaddr1) if pcaddr1 != str(pcaddr): print('IP地址已释放') else: time.sleep(3) time.sleep(2) # 重新获取地址 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('未获取到地址') time.sleep(2) # 3)samba验证登陆 try: smb.connect(remote_smb_IP, 139, timeout=3) except socket.timeout: raise Exception('samba服务无法访问') smb.close() self.driver.quit() logger.info('test_004_WanaAcess passed')
def test_004_WanAcessFTP(self): u'''WAN口访问FTP''' ftpSmaba = NetworkSharingPage(self.driver, self.url) #1、验证未打开 ‘wan口访问’ 无法从wan访问FTP #1)验证未打开 WANEnable = str( self.driver.find_element_by_name('WANEnable').get_attribute( 'checked')) print(WANEnable) if WANEnable == 'true': self.driver.find_element_by_name('WANEnable').click() ftpSmaba.click_save() time.sleep(1) ftpSmaba.click_NetworkSharing2() # 点击网络共享子页面 time.sleep(1) WANEnable = str( self.driver.find_element_by_name('WANEnable').get_attribute( 'checked')) self.assertEqual(WANEnable, 'None', msg='允许wan口访问 关闭失败') #2)从外网配置页面获取WAN1口地址 wanpage = NetworkConfig_wanpage(self.driver, self.url) wanpage.click_WANconfig() time.sleep(1) # WAN1 ip变量赋值,页面读取 WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP)) time.sleep(1) #3) 更改pc 交换机接口与wan口/上联口通 swconfig.test_LanToWan(self) # 重新获取地址 应获取到上层网关下发的地址 pcaddr = str(socket.gethostbyname(socket.getfqdn( socket.gethostname()))) # 调用bat脚本 IP地址释放 os.system('%s' % (batpath + 'ipconfig_release.bat')) time.sleep(2) pcaddr1 = str( socket.gethostbyname(socket.getfqdn(socket.gethostname()))) print(pcaddr1) if pcaddr1 != str(pcaddr): print('IP地址已释放') else: time.sleep(3) time.sleep(2) # 重新获取地址 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('未获取到地址') time.sleep(2) #4)尝试访问FTP # ftp验证登录 IP = WAN1_ip Port = 21 ftp = ftplib.FTP() ftp.encoding = 'utf-8' try: ftp.connect(host=IP, port=Port, timeout=5) ftp.login(user='******') # 相当于没有验证账号密码 except socket.error or socket.gaierror: print("未开启“WAN口访问开关”无法访问FTP服务 验证通过") except ftplib.error_perm: # 当前未开启wan口访问,wan口访问时候会弹出账号密码框,但输入会提示密码错误 print("未开启“WAN口访问开关”访问FTP服务会密码错误 验证通过") else: raise Exception("未开启“WAN口访问开关” 依旧可以访问FTP服务") ftp.quit() #5)改为lan口 并重新获取地址 switchURL2 = gettelnet('switchURL2') # 调用bat脚本 地址修改为 192.168.34.39 网关192.168.34.1 os.system('%s' % (batpath + 'changeStaticIP3_34duan.bat')) time.sleep(5) n = 0 while n < 30: # 获取本机ip 默认有线地址,有线断开会显示无线 pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname())) print(pcaddr, n) if str(pcaddr) != '192.168.34.39': time.sleep(2) n += 1 else: print('地址已修改为地址 192.168.34.39', n) break else: raise Exception('地址修改为192.168.34.39 失败') # 更改pc 交换机接口与lan口通 p = pingTestIP(switchURL2) if p == 'Y': swconfig.test_WanToLan(self) # 将IP改回自动获取 应获取到被测设备下发的地址 os.system('%s' % (batpath + 'changeDhcpIp.bat')) n = 0 while n < 30: # 获取本机ip 默认有线地址,有线断开会显示无线 pcaddr_new = socket.gethostbyname( socket.getfqdn(socket.gethostname())) print(pcaddr_new, n) if '192.168.' not in str(pcaddr_new): time.sleep(2) n += 1 else: print('IP地址已自动获取成功', n) break else: raise Exception('未获取到地址') time.sleep(3) #2 验证打开 ‘wan口访问’ 可以从wan口访问FTP #1)打开 ftpSmaba = NetworkSharingPage(self.driver, self.url) ftpSmaba.click_NetworkSharing() time.sleep(1) ftpSmaba.click_NetworkSharing2() # 点击网络共享子页面 time.sleep(1) self.driver.find_element_by_name('WANEnable').click() ftpSmaba.click_save() time.sleep(2) WANEnable = self.driver.find_element_by_name( 'WANEnable').get_attribute('checked') self.assertEqual(WANEnable, 'true', msg='允许wan口访问 启用失败') #2) 更改pc 交换机接口与wan口/上联口通 swconfig.test_LanToWan(self) # 重新获取地址 应获取到上层网关下发的地址 pcaddr = str(socket.gethostbyname(socket.getfqdn( socket.gethostname()))) # 调用bat脚本 IP地址释放 os.system('%s' % (batpath + 'ipconfig_release.bat')) time.sleep(2) pcaddr1 = str( socket.gethostbyname(socket.getfqdn(socket.gethostname()))) print(pcaddr1) if pcaddr1 != str(pcaddr): print('IP地址已释放') else: time.sleep(3) time.sleep(2) # 重新获取地址 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('未获取到地址') time.sleep(2) # 3)ftp验证登陆 try: ftp.connect(host=IP, port=Port, timeout=5) except socket.error or socket.gaierror: raise Exception("无法访问FTP服务") try: ftp.login(user='******') # 相当于没有验证账号密码 except ftplib.error_perm: raise Exception("FTP账号密码验证错误") ftpFile = ftp.nlst('1') # 获取指定目录下的文件 print('ftpFile', ftpFile) ftp.quit() self.driver.quit() logger.info('test_004_WanaAcess passed')
def tearDown(self): switchURL2 = gettelnet('switchURL2') p = pingTestIP() if p == 'N': # 调用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 失败') time.sleep(2) # 更改pc 交换机接口与lan口通 p = pingTestIP(switchURL2) if p == 'N': raise Exception(u'无法ping通交换机switchURL2地址') swconfig.test_WanToLan(self) # 将IP改回自动获取 应获取到被测设备下发的地址 os.system('%s' % (batpath + 'changeDhcpIp.bat')) n = 0 while n < 30: # 获取本机ip 默认有线地址,有线断开会显示无线 pcaddr_new = socket.gethostbyname( socket.getfqdn(socket.gethostname())) print(pcaddr_new, n) if '192.168.' not in str(pcaddr_new): time.sleep(2) n += 1 else: print('IP地址已自动获取成功', n) break else: raise Exception('未获取到地址') login.loginWeb(self) self.driver.implicitly_wait(10) staticMapping = staticMappingPage(self.driver, self.url) # 配置映射 staticMapping.click_NetworkConfig() time.sleep(0.5) staticMapping.click_portMapping() time.sleep(1) try: self.driver.implicitly_wait(2) staticMapping.find_delete1() except NoSuchElementException: pass else: time.sleep(1) staticMapping.click_ok() time.sleep(1) list_tips = staticMapping.getText_byXpath(staticMapping.list_tips) self.assertEqual(str(list_tips), ' ', msg='映射删除失败') self.driver.quit() logger.info('tearDown over') logger.info('%s' % ('=' * 50))
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')
def test_004_DMZpriority(self): u'''验证 映射和DMZ的优先级''' #将3389端口映射给一个不存在的主机 login.loginWeb(self) # admin账号登录 self.driver.implicitly_wait(10) staticMapping = staticMappingPage(self.driver, self.url) # 配置映射 staticMapping.click_NetworkConfig() time.sleep(0.5) staticMapping.click_portMapping() time.sleep(1) staticMapping.click_add() time.sleep(1) staticMapping.input_IDs('statictest') staticMapping.input_IPs('1.2.3.4') staticMapping.input_inS('3389') staticMapping.input_inE('3389') staticMapping.input_outS('3389') staticMapping.input_outE('3389') staticMapping.click_save() time.sleep(1) #断言 list_port = str( self.driver.find_element_by_xpath( '//*[@id="1"]/div/div/div[1]/table/tbody/tr[2]/td[6]/span'). text) print(list_port) self.assertEqual(list_port, '3389~3389:3389~3389', msg='端口对应关系不一致') print('tcp21映射 已添加') # 从外网配置页面获取WAN1口地址 wanpage = NetworkConfig_wanpage(self.driver, self.url) wanpage.click_WANconfig() time.sleep(1) # WAN1 ip变量赋值,页面读取 # 判断联网状态 i = 0 while i < 21: wanpage.click_refresh() time.sleep(1) list_conState = wanpage.getText_byXpath(wanpage.connectState1) print(str(list_conState), i) if str(list_conState) != ConnectState: time.sleep(3) i += 1 else: break else: CapPic(self.driver) logger.info(u"WAN口未连接") raise Exception('WAN1 未连接') WAN1_ip = str(wanpage.getText_byXpath(wanpage.line1IP)) time.sleep(1) self.driver.quit() # 更改pc 交换机接口与wan口/上联口通 swconfig.test_LanToWan(self) # 重新获取地址 应获取到上层网关下发的地址 pcaddr = str(socket.gethostbyname(socket.getfqdn( socket.gethostname()))) # 调用bat脚本 IP地址释放 os.system('%s' % (batpath + 'ipconfig_release.bat')) time.sleep(2) pcaddr1 = str( socket.gethostbyname(socket.getfqdn(socket.gethostname()))) print(pcaddr1) if pcaddr1 != str(pcaddr): print('IP地址已释放') else: time.sleep(3) time.sleep(2) # 将IP改回自动获取(设置dns为自动获取) # 调用bat脚本 os.system('%s' % (batpath + 'ipconfig_renew.bat')) time.sleep(5) n = 0 while n < 30: # 获取本机ip 默认有线地址,有线断开会显示无线 pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname())) print(pcaddr, n) if '192.168.' not in str(pcaddr): time.sleep(2) n += 1 else: print('IP地址已自动获取成功', n) break else: raise Exception('未获取到地址') try: telnetlib.Telnet(str(WAN1_ip), port=3389, timeout=10) raise Exception('映射优先级高于DMZ 验证失败') #如果通则报错 except socket.timeout: print('映射优先级高于DMZ 验证成功') #如果不通(timeout报错)则正常 switchURL2 = gettelnet('switchURL2') # 调用bat脚本 地址修改为 192.168.34.39 网关192.168.34.1 os.system('%s' % (batpath + 'changeStaticIP3_34duan.bat')) time.sleep(5) n = 0 while n < 30: # 获取本机ip 默认有线地址,有线断开会显示无线 pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname())) print(pcaddr, n) if str(pcaddr) != '192.168.34.39': time.sleep(2) n += 1 else: print('地址已修改为地址 192.168.34.39', n) time.sleep(2) break else: raise Exception('地址修改为192.168.34.39 失败') # 更改pc 交换机接口与lan口通 p = pingTestIP(switchURL2) if p == 'Y': swconfig.test_WanToLan(self) # 将IP改回自动获取 应获取到被测设备下发的地址 os.system('%s' % (batpath + 'changeDhcpIp.bat')) n = 0 while n < 30: # 获取本机ip 默认有线地址,有线断开会显示无线 pcaddr_new = socket.gethostbyname( socket.getfqdn(socket.gethostname())) print(pcaddr_new, n) if '192.168.' not in str(pcaddr_new): time.sleep(2) n += 1 else: print('IP地址已自动获取成功', n) break else: raise Exception('未获取到地址') #删除映射 login.loginWeb(self) # admin账号登录 self.driver.implicitly_wait(10) staticMapping = staticMappingPage(self.driver, self.url) staticMapping.click_NetworkConfig() time.sleep(0.5) staticMapping.click_portMapping() time.sleep(1) staticMapping.click_delete1() time.sleep(1) staticMapping.click_ok() time.sleep(1) list_tips = staticMapping.getText_byXpath(staticMapping.list_tips) self.assertEqual(str(list_tips), ' ', msg='映射删除失败') #关闭DMZ dmz = DMZPage(self.driver, self.url) dmz.click_DMZ() time.sleep(1) dmz.click_DMZC() dmz.input_GlobalDMZ('0.0.0.0') time.sleep(1) dmz.click_save() time.sleep(1) # 断言 dmz.click_DMZ() # 相当于刷新下界面,否则off依旧没有checked参数 time.sleep(1) DMZ_status = str(dmz.getAttribute_byXpath(dmz.DMZCs, 'checked')) print(DMZ_status) self.assertEqual(DMZ_status, 'true', msg='DMZ 关闭异常') print('全局DMZ 已关闭') self.driver.quit() logger.info('test_003_DMZpriority passed')