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')
def setUp(self): logger.info('setUp start') login.loginWeb(self) self.driver.implicitly_wait(10) dhcpserver = DHCPserverpage(self.driver,self.url) dhcpserver.click_NetworkConfig() time.sleep(0.5) dhcpserver.click_DHCPserver() time.sleep(1)
def test_005_dnsProxy(self): u'''dns代理可以上网''' baidutitle = getAssertText('baidutitle') # 开dns代理 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.click_GlobalConfig() time.sleep(1) dhcpserver.click_dnspEn() dhcpserver.click_save() time.sleep(1) # 断言 开启提示信息是否有误 tips = str(dhcpserver.getText_byClass(dhcpserver.tips)) time.sleep(1) self.assertEqual(tips, saveSucess, msg='"DNS代理" 开启出错') print('DNS代理 已开启') # 将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('未获取到地址') pingTestIP('www.baidu.com') #避免失误 self.driver.get('http://www.baidu.com') time.sleep(2) title3 = self.driver.title print(title3) self.assertEqual(title3, baidutitle, msg='dns代理 无法打开网页') self.driver.quit() logger.info('test_005_dnsProxy passed')
def test_001_ServerStatus(self): u'''DHCP服务器功能默认开启''' host = gettelnet('host') #即插即用中修改了IP 这里加一个判断联网 pingTestIP() #避免失误 p = pingTestIP() if p == 'N': # 将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: logger.info(u'IP地址已自动获取成功') break else: raise Exception('未获取到地址') pcaddr = socket.gethostbyname(socket.getfqdn(socket.gethostname())) logger.info(u'IP地址为:%s' % pcaddr) login.loginWeb(self) self.driver.implicitly_wait(10) dhcpserver = DHCPserverpage(self.driver, self.url) # 打开网络配置 - 内网配置 dhcpserver.click_NetworkConfig() time.sleep(0.5) dhcpserver.click_DHCPserver() time.sleep(1) #确认 DHCP服务器功能 是否 默认开启 dhcp_status = dhcpserver.getAttribute_byXpath(dhcpserver.dhcpEn, 'checked') self.assertEqual(str(dhcp_status), 'true', msg='DHCP服务器功能默认未开启') self.driver.quit() logger.info('test_001_ServerStatus passed')
def test_002_DNSProxy(self): u'''DNS Proxy代理、酒店即插即用''' dhcpserver = DHCPserverpage(self.driver, self.url) dhcpserver.click_NetworkConfig() time.sleep(0.5) dhcpserver.click_DHCPserver() time.sleep(1) dhcpserver.click_GlobalConfig() time.sleep(1) switch = str( dhcpserver.getAttribute_byXpath(dhcpserver.dnspEns, 'checked')) self.assertEqual(switch, 'true', msg='dns代理 默认未开启') # 酒店即插即用 lanpage = NetworkConfig_LANpage(self.driver, self.url) lanpage.click_LANconfig() time.sleep(1) lanpage.click_globalconfig() time.sleep(1) switch2 = str( lanpage.getAttribute_byXpath(lanpage.upnpCloseS, 'checked')) self.assertEqual(switch2, 'true', msg='UPNP 默认开启') print('DNS Proxy代理、酒店即插即用 验证通过') # 静态路由 routeconfig = RouteConfigPage(self.driver, self.url) routeconfig.click_Routeconfig() time.sleep(1) routeconfig.click_add() time.sleep(1) routeconfig.click_modalhide() time.sleep(0.5) # #策略路由 # routeconfig.click_PolicyRoute() # time.sleep(1) # routeconfig.click_addPolicy() # time.sleep(1) # routeconfig.click_modalhide() # time.sleep(0.5) self.driver.quit() logger.info('test_002_DNSProxy passed')
def tearDown(self): #删除 dhcpserver = DHCPserverpage(self.driver, self.url) dhcpserver.click_NetworkConfig() time.sleep(0.5) dhcpserver.click_DHCPserver() time.sleep(1) dhcpserver.click_list_delpool2() time.sleep(1) dhcpserver.click_ok() time.sleep(1) lanpage = NetworkConfig_LANpage(self.driver, self.url) lanpage.click_LANconfig() time.sleep(1) lanpage.click_allsel() time.sleep(1) lanpage.click_delete() time.sleep(1) lanpage.click_ok() time.sleep(1) self.driver.quit() logger.info('tearDown over') logger.info('%s' % ('=' * 50))
def test_002_SSIDconfig(self): u'''网络名称设置&加密方式''' APnumP = getParameter('APnumP') Support = getExcelValue(APnumP) login.loginWeb(self) self.driver.implicitly_wait(10) if str(Support).isdigit(): #判断字符串是否为数字 logger.info(u'参数支持AP管理') wirelessTipsA = getAssertText('wirelessTipsA') vlanPortP = getParameter('vlanPortP') Support = getExcelValue(vlanPortP) if Support == '√': # 支持vlan接口 logger.info(u'参数表支持vlan接口') # 进入网络配置-内网配置 配置vlan接口 lanpage = NetworkConfig_LANpage(self.driver, self.url) lanpage.click_NetworkConfig() time.sleep(0.5) lanpage.click_LANconfig() time.sleep(1) #vlan 1000 lanpage.click_add() time.sleep(1) lanpage.input_lanIpName('1000') lanpage.input_lanIp('192.168.10.1') lanpage.input_lanNetmask('255.255.255.0') selsxjk = lanpage.selelement_byName(lanpage.selsxjk) Select(selsxjk).select_by_value('vlanid') time.sleep(1) lanpage.input_dhcpVid('1000') lanpage.click_save() time.sleep(1) # vlan 1999 lanpage.click_add() time.sleep(1) lanpage.input_lanIpName('1999') lanpage.input_lanIp('192.168.100.1') lanpage.input_lanNetmask('255.255.255.0') selsxjk = lanpage.selelement_byName(lanpage.selsxjk) Select(selsxjk).select_by_value('vlanid') time.sleep(1) lanpage.input_dhcpVid('1999') lanpage.click_save() time.sleep(1) #断言 list_name2 = str(lanpage.getText_byXpath(lanpage.list_name2)) list_name3 = str(lanpage.getText_byXpath(lanpage.list_name3)) list_ip2 = str(lanpage.getText_byXpath(lanpage.list_ip2)) list_ip3 = str(lanpage.getText_byXpath(lanpage.list_ip3)) list_vlanid2 = str( lanpage.getText_byXpath(lanpage.list_vlanid2)) list_vlanid3 = str( lanpage.getText_byXpath(lanpage.list_vlanid3)) self.assertEqual(list_name2, '1000', msg='vlan1000名称与设置的不一致') self.assertEqual(list_name3, '1999', msg='vlan1999名称与设置的不一致') self.assertEqual(list_ip2, '192.168.10.1', msg='vlan1000IP与设置的不一致') self.assertEqual(list_ip3, '192.168.100.1', msg='vlan1000IP与设置的不一致') self.assertEqual(list_vlanid2, '1000', msg='vlan1000 ID与设置的不一致') self.assertEqual(list_vlanid3, '1999', msg='vlan1000 ID与设置的不一致') #配置dhcp dhcppage = DHCPserverpage(self.driver, self.url) #1000 dhcppage.click_DHCPserver() time.sleep(1) dhcppage.click_addpool() time.sleep(1) dhcppage.input_poolName('1000') seldhcppool = dhcppage.selelement_byName(dhcppage.poolVid) Select(seldhcppool).select_by_value('VIF1000') time.sleep(1) dhcppage.click_save() time.sleep(1) # 1999 dhcppage.click_DHCPserver() time.sleep(1) dhcppage.click_addpool() time.sleep(1) dhcppage.input_poolName('1999') seldhcppool = dhcppage.selelement_byName(dhcppage.poolVid) Select(seldhcppool).select_by_value('VIF1999') time.sleep(1) dhcppage.click_save() time.sleep(1) # 断言 list_name2 = str(dhcppage.getText_byXpath(dhcppage.list_name2)) list_name3 = str(dhcppage.getText_byXpath(dhcppage.list_name3)) list_int2 = str(dhcppage.getText_byXpath(dhcppage.list_int2)) list_int3 = str(dhcppage.getText_byXpath(dhcppage.list_int3)) self.assertEqual(list_name2, '1000', msg='pool1000名称与设置的不一致') self.assertEqual(list_name3, '1999', msg='pool1999名称与设置的不一致') self.assertEqual(list_int2, '1000', msg='pool1000IP与设置的不一致') self.assertEqual(list_int3, '1999', msg='pool1000IP与设置的不一致') # 配置网络名称 netname = netNamePage(self.driver, self.url) try: self.driver.implicitly_wait(2) netname.click_wirelessExtension() time.sleep(0.5) #网络名称页面的提示 netname.click_netName() except AttributeError or NoSuchElementException: CapPic(self.driver) logger.info(u'软件不支持无线扩展/网络名称,与参数表不符') raise Exception(u'软件不支持无线扩展/网络名称,与参数表不符') else: self.driver.implicitly_wait(10) time.sleep(1) checkOpen = str( netname.getAttribute_byId(netname.checkOpens, 'checktype')) if checkOpen == '0': # 0为关闭,1打开 tips = netname.getText_byClass(netname.u_cfm_boxT) time.sleep(1) self.assertIn(wirelessTipsA, tips, msg='提示信息有误') netname.click_ok() # 点确认开启 time.sleep(3) else: raise Exception('无线扩展默认未关闭') # 断言 开关打开 checkOpen = str( netname.getAttribute_byId(netname.checkOpens, 'checktype')) self.assertEqual(checkOpen, '1', msg='无线扩展默认未关闭') # 0关闭,1打开 # 确认兼容模式按钮默认关闭 ManageProtocols = str( netname.getAttribute_byId(netname.ManageProtocolss, 'checktype')) self.assertEqual(ManageProtocols, '0', msg='兼容模式默认未关闭') # 0关闭,1打开 # 打开兼容模式 netname.click_ManageProtocols() time.sleep(5) ManageProtocols = str( netname.getAttribute_byId(netname.ManageProtocolss, 'checktype')) self.assertEqual(ManageProtocols, '1', msg='兼容模式未打开') # 0关闭,1打开 #判断自动下发是否开启 Auto = str( netname.getAttribute_byXpath(netname.list_autosend1, 'checked')) self.assertEqual(str(Auto), 'true', msg='默认自动下发未开启') # 编辑默认ssid netname.click_list_edit1() time.sleep(1) netname.input_ssid('ssid_1中') netname.click_next_tab() time.sleep(1) selencryType = netname.selelement_byName(netname.encryType) Select(selencryType).select_by_value( '1') # 0不加密 3 WPA-PSK/WPA2-PSK time.sleep(0.3) Select(selencryType).select_by_value('0') time.sleep(0.3) Select(selencryType).select_by_value('2') time.sleep(0.3) Select(selencryType).select_by_value('3') time.sleep(0.5) netname.input_pskPsswd('12345678') netname.click_next_tab() time.sleep(0.5) netname.click_sharelimit() # 共享 netname.input_txBand('1000') netname.input_rxBand('1000') netname.click_save() time.sleep(1) list_ssid1 = str(netname.getText_byXpath(netname.list_ssid1)) self.assertEqual(list_ssid1, 'ssid_1中', msg='ssid1 与设置不一致') # 新增2Gssid netname.click_add() time.sleep(1) netname.input_zoneName('2G') netname.input_ssid('2.4Gz中') netname.click_cli_5g() # 默认全选,点5G=勾掉,剩下2.4G if Support == '√': # 支持vlan接口 selvlanId = netname.selelement_byName( netname.vlanId) # 选vlan接口 Select(selvlanId).select_by_value('1000') time.sleep(1) netname.click_gjxx() # 点开高级选项 time.sleep(0.5) netname.click_broadcastEn() # 隐藏ssid netname.click_isolateEn() # 无线客户端隔离 time.sleep(0.5) netname.click_next_tab() time.sleep(1) selencryType = netname.selelement_byName(netname.encryType) Select(selencryType).select_by_value( '3') # 0不加密 3 WPA-PSK/WPA2-PSK time.sleep(1) netname.input_pskPsswd('12345678') netname.click_next_tab() time.sleep(0.5) netname.input_txBand('1000') netname.input_rxBand('1000') netname.click_save() time.sleep(2) # 断言 开关打开 list_ssid2 = str(netname.getText_byXpath(netname.list_ssid2)) self.assertEqual(list_ssid2, '2.4Gz中', msg='ssid2 与设置不一致') # 新增5Gssid netname.click_add() time.sleep(1) netname.input_zoneName('5G') netname.input_ssid('5Gz中') selSSIDmode = netname.selelement_byName(netname.encodeType) Select(selSSIDmode).select_by_value('0') #0电脑优先 1手机优先 time.sleep(1) netname.click_cli_2g() # 默认全选,点2G=勾掉,剩下5G if Support == '√': # 支持vlan接口 selvlanId = netname.selelement_byName( netname.vlanId) # 选vlan接口 Select(selvlanId).select_by_value('1999') time.sleep(1) netname.click_gjxx() # 点开高级选项 time.sleep(0.5) netname.click_broadcastEn() # 隐藏ssid netname.click_isolateEn() # 无线客户端隔离 time.sleep(0.5) netname.click_next_tab() time.sleep(1) selencryType = netname.selelement_byName(netname.encryType) Select(selencryType).select_by_value( '3') # 0不加密 3 WPA-PSK/WPA2-PSK time.sleep(1) netname.input_pskPsswd('12345678') netname.click_next_tab() time.sleep(0.5) netname.input_txBand('1000') netname.input_rxBand('1000') netname.click_save() time.sleep(1) list_ssid3 = str(netname.getText_byXpath(netname.list_ssid3)) self.assertEqual(list_ssid3, '5Gz中', msg='ssid3 与设置不一致') # 新增默认接口ssid netname.click_add() time.sleep(1) netname.input_zoneName('all') netname.input_ssid('ssid_all中') netname.click_next_tab() time.sleep(0.5) netname.click_next_tab() time.sleep(0.5) netname.click_save() time.sleep(1) # 断言 list_ssid4 = str(netname.getText_byXpath(netname.list_ssid4)) self.assertEqual(list_ssid4, 'ssid_all中', msg='ssid4 与设置不一致') #再新建提示保存成功(ssid数量后续版本做了调整) netname.click_add() time.sleep(1) netname.input_zoneName('5') netname.input_ssid('5') netname.click_next_tab() time.sleep(0.5) netname.click_next_tab() time.sleep(0.5) netname.click_save() time.sleep(1) # 断言 开关打开 list_ssid5 = str(netname.getText_byXpath(netname.list_ssid5)) self.assertEqual(list_ssid5, '5', msg='ssid5 与设置不一致') print('网络名称设置 验证通过') #删除ssid netname.click_selall() time.sleep(0.2) netname.click_sellist1() time.sleep(0.2) netname.click_delete() time.sleep(2) netname.click_ok() time.sleep(1) if Support == '√': # 支持vlan接口 # 删除dhcp dhcppage = DHCPserverpage(self.driver, self.url) dhcppage.click_NetworkConfig() time.sleep(0.5) dhcppage.click_DHCPserver() time.sleep(0.5) dhcppage.click_DHCPserver() time.sleep(1) dhcppage.click_list_delpool2() time.sleep(1) dhcppage.click_ok() time.sleep(1) dhcppage.click_list_delpool2() time.sleep(1) dhcppage.click_ok() time.sleep(1) # 删除vlan接口 lanpage = NetworkConfig_LANpage(self.driver, self.url) lanpage.click_LANconfig() time.sleep(1) lanpage.click_allsel() time.sleep(1) lanpage.click_delete() time.sleep(1) lanpage.click_ok() time.sleep(1) else: logger.info(u'参数不支持AP管理') try: netname = netNamePage(self.driver, self.url) self.driver.implicitly_wait(2) netname.click_wirelessExtension() time.sleep(0.5) netname.click_netName() time.sleep(1) except AttributeError or NoSuchElementException: logger.info(u'软件不支持无线扩展,与参数表相符') else: CapPic(self.driver) logger.info(u'软件支持无线扩展,与参数表不符') raise Exception(u'软件支持无线扩展,与参数表不符') self.driver.quit() logger.info('test_002_SSIDconfig passed')
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')