def test_026_check_reboot_confirm(self): u"""重启确认(testlink_ID:764)""" log.debug("026") tmp = UpgradeBusiness(self.driver) result = tmp.check_reboot_confirm() assert result, "check confirm tip after clicking reboot,test fail!" print "check confirm tip after clicking reboot,test fail!"
def test_031_check_reset_confirm(self): u"""恢复出厂确认(testlink_ID:769)""" log.debug('031') tmp = UpgradeBusiness(self.driver) result = tmp.check_reset_confirm() assert result, "check confirm tip after clicking reset,test fail!" print "check confirm tip after clicking reset,test fail!"
def test_032_check_cancel_reboot_confirm(self): u"""点击重置后取消(testlink_ID:770)""" log.debug('032') tmp = UpgradeBusiness(self.driver) result1, result2 = tmp.check_cancel_reset_confirm(data_basic["DUT_ip"]) assert (result1 == False) and (result2 == 0), "cancel reset,test fail!" print "cancel reset,test pass!"
def test_024_boot_upgrade(self): u"""测试勾上 upgrade on boot(testlink_ID:809_4)""" log.debug("024") tmp = UpgradeBusiness(self.driver) result = tmp.upgrade_boot(data_basic['DUT_ip'],data_basic['sshUser'],\ data_login['all'],data_basic['version'],data_basic['http_new_addr']) assert result, "after clicking upgrade on boot can upgrade,fail!" print "after clicking upgrade on boot can upgrade,pass!"
def test_021_boot_downgrade(self): u"""测试cancel downgrade on boot(testlink_ID:809_1)""" log.debug("021") tmp = UpgradeBusiness(self.driver) result = tmp.upgrade_boot(data_basic['DUT_ip'],data_basic['sshUser'],\ data_login['all'],data_basic['version'],data_basic['http_old_addr']) assert result, "after cancelling downgrade on boot can't downgrade,fail!" print "after cancelling downgrade on boot can't downgrade,pass!"
def System_Debug_menu(self): #点击系统设置菜单 tmp = UpgradeBusiness(self.driver) tmp.System_menu() #点击系统设置-调试 PingControl.Debug_menu(self) #点击Ping/路由跟踪 菜单 PingControl.Ping_menu(self)
def test_025_check_reboot_reset_button(self): u"""webUI检查(testlink_ID:762)""" log.debug("025") tmp = UpgradeBusiness(self.driver) result1, result2 = tmp.check_reboot_reset_button() assert result1 == (u"重启" or "Reboot") and \ result2 == (u"重置" or "Reset"),\ "check reboot and reset button,test fail!" print "check reboot and reset button,test pass!"
def test_019_tftp_upgrade(self): u"""测试tftp升级(testlink_ID:796_2)""" log.debug("019") tmp = UpgradeBusiness(self.driver) #在ap页面上执行tftp升级固件 result = tmp.upgrade_web(data_basic['DUT_ip'],data_basic['sshUser'],\ data_login['all'],data_basic['version'],data_basic['tftp_new_addr'],"TFTP") assert result, "test tftp upgrade,fail!" print "test tftp upgrade,pass!"
def test_017_https_upgrade(self): u"""测试https升级(testlink_ID:795_2)""" log.debug("017") tmp = UpgradeBusiness(self.driver) #在ap页面上执行https升级固件 result = tmp.upgrade_web(data_basic['DUT_ip'],data_basic['sshUser'],\ data_login['all'],data_basic['version'],data_basic['https_new_addr'],"HTTPS") assert result, "test https upgrade,fail!" print "test http upgrade,pass!"
def test_016_https_downgrade(self): u"""测试https降级(testlink_ID:795_1)""" log.debug("016") tmp = UpgradeBusiness(self.driver) #在ap页面上执行https降级固件 result = tmp.upgrade_web(data_basic['DUT_ip'],data_basic['sshUser'],\ data_login['all'],data_basic['old_version'],data_basic['https_old_addr'],"HTTPS") assert result, "test https downgrade,fail!" print "test https downgrade,pass!"
def test_028_check_ok_reboot_confirm(self): u"""点击重启后取消(testlink_ID:766)""" #只有默认时,搜索-配对-加入网络组 log.debug('028') tmp1 = APSBusiness(self.driver) tmp1.search_pair_add_default(data_AP['slave:mac2']) tmp = UpgradeBusiness(self.driver) result1, result2 = tmp.check_ok_reboot_confirm(data_basic["DUT_ip"]) assert (result1 != 0) and (result2 == 0), "confirm reboot,test fail!" print "confirm reboot,test pass!"
def close_mesh(self): tmp = UpgradeBusiness(self.driver) #点击系统设置 tmp.System_menu() #点击mesh菜单 MeshControl.Mesh_menu(self) #点击关闭mesh MeshControl.close_mesh(self) #保存 MeshControl.mesh_save(self) #点击弹出窗口中的应用 MeshControl.apply(self)
def test_033_check_ok_reset_confirm(self): u"""点击重置并确认(testlink_ID:771)""" log.debug('033') #只有默认时,搜索-配对-加入网络组 tmp = UpgradeBusiness(self.driver) result1, result2 = tmp.check_ok_reset_confirm(data_basic["DUT_ip"]) tmp1 = SSH(data_basic["DUT_ip"], data_basic["super_defalut_pwd"]) result3 = tmp1.ssh_cmd(data_basic['sshUser'], "uci show grandstream.general.admin_password") assert (result1 != 0) and (result2 == 0) and ( "='admin'" in result3), "confirm reset,test fail!" print "confirm reset,test pass!"
def check_time_zone(self): tmp = UpgradeBusiness(self.driver) result = [] fail_info = [] #点击系统设置 tmp.System_menu() #点击基本菜单 tmp.Basic_menu() timezone_list = data_timezone['timezone_list'] timezone_str = data_timezone['timezone_str'] for i in range(len(timezone_list)): #选择设置不同的时区 BasicControl.set_time_zone(self, timezone_list[i]) tmp.save() tmp.apply() print "change timezone: %s successfully!" % timezone_list[i] #登录AP后台判断字符串是否正确 ssh = SSH(data_basic['DUT_ip'], data_login["all"]) result1 = ssh.ssh_cmd(data_basic['sshUser'], "date -R") if timezone_str[i] in result1: result.append(True) else: timezone_fail_info = "%s\t\t\t%s\t\t\t%s" % ( timezone_list[i], result1, timezone_str[i]) fail_info.append(timezone_fail_info) result.append(False) #如果有fail信息,则打印 if fail_info != []: print "timezone\t\t\ttest result\t\t\tcorrect result" fail_info_str = "\n".join(fail_info) print fail_info_str return result
def check_pwd_default_disappear(self): tmp = UpgradeBusiness(self.driver) #点击系统设置菜单 tmp.System_menu() #点击访问菜单 tmp.Access_menu() #获取所有密码的类型 result1 = AccessControl.get_pass0_type(self) result2 = AccessControl.get_pass1_type(self) result3 = AccessControl.get_pass2_type(self) result4 = AccessControl.get_userpass1_type(self) result5 = AccessControl.get_userpass1_type(self) result = [result1, result2, result3, result4, result5] return result
def test_036_check_slave_ap(self): u"""Master AP恢复出厂对Slave AP的影响(testlink_ID:774)""" log.debug('036') #判断是否还有slave ap的mac tmp = SSH(data_basic["DUT_ip"], data_basic["super_defalut_pwd"]) result = tmp.ssh_cmd( data_basic['sshUser'], "ubus call controller.discovery get_paired_devices") #mac地址去冒号 tmp1 = UpgradeBusiness(self.driver) sm = data_AP["slave:mac2"].lower() m = tmp1.mac_drop(sm) assert m not in result, "check effect after rebooting master ap,test fail!" print "check effect after rebooting master ap,test pass!"
def test_055_reboot_failover_switching(self): u"""指定failover ap,并断开master ap后,10分钟内,重启failover ap(testlink_ID:2413)""" log.debug("055") tmp = APSBusiness(self.driver) #设置slave ap2为failover ap tmp.change_slave_to_failover(data_AP["slave:mac2"]) #master ap关闭controller tmp.close_master_controller(data_basic['DUT_ip'], data_basic['sshUser'], data_login['all']) #等待1分钟 time.sleep(60) #重启failover ap tmp.reboot_router(data_basic['slave_ip2'],data_basic['sshUser'], data_login['all']) #等待3分钟 time.sleep(180) #failover ap依然是slave ap模式 ssh = SSH(data_basic['slave_ip2'], data_login['all']) result = ssh.ssh_cmd(data_basic['sshUser'], "uci show controller.main.role") #等待10分钟 time.sleep(610) #slave ap 变为failover 模式 ssh = SSH(data_basic['slave_ip2'], data_login['all']) result1 = ssh.ssh_cmd(data_basic['sshUser'], "uci show controller.main.role") result2 = ssh.ssh_cmd(data_basic['sshUser'], "uci show controller.main.failover") #登录failover ap的web界面 tmp.login_failover_ap(data_basic['slave_web2'], "failover", data_login['all']) #设置failover ap为master ap tmp.change_failover_to_master() result3 = ssh.ssh_cmd(data_basic['sshUser'], "uci show controller.main.role") result4 = ssh.ssh_cmd(data_basic['sshUser'], "uci show controller.main.failover") #登录failover ap的web界面 tmp.login_failover_ap(data_basic['slave_web2'], data_basic['superUser'], data_login['all']) #该ap恢复出厂配置 tmp2 = UpgradeBusiness(self.driver) tmp2.web_factory_reset_backup(data_basic['slave_ip2']) #开启master ap的controller tmp.open_master_controller(data_basic['DUT_ip'], data_basic['sshUser'], data_login['all']) time.sleep(60) self.assertIn("master", result1) self.assertIn("1", result2) self.assertIn("master", result3) self.assertIn("Entry not found", result4) self.assertIn("slave", result), "reboot failover ap, test fail!" print "reboot failover ap, test pass!"
def test_044_failover_master_check_client_flow(self): u"""failover ap 切换到master ap模式后,当老的master ap回来,确认老master和现在master功能正常(testlink_ID:2403)""" log.debug("044") tmp = APSBusiness(self.driver) #登录failover ap的web界面 tmp.login_failover_ap(data_basic['slave_web2'], data_basic['superUser'], data_login['all']) #现在的master ap解除slave ap1的配对 tmp.unpair_special_slave_AP_backup(data_AP["slave:mac1"]) #开启master ap的controller tmp.open_master_controller(data_basic['DUT_ip'], data_basic['sshUser'], data_login['all']) time.sleep(60) #无线网卡连接现在的master ap result1 = tmp.connect_WPA_AP(data_ng['NG2_ssid'], data_wireless['short_wpa'], data_basic['wlan_pc']) #无线网卡连接老的master ap result2 = tmp.connect_WPA_AP(data_wireless['all_ssid'], data_wireless['short_wpa'], data_basic['wlan_pc']) #该ap恢复出厂配置 tmp2 = UpgradeBusiness(self.driver) tmp2.web_factory_reset_backup(data_basic['slave_ip2']) #删除7000新建的网络组 tmp2 = NGBusiness(self.driver) tmp2.mixed_7000_del_NG() self.assertIn(data_ng['NG2_ssid'], result1) self.assertIn(data_wireless['all_ssid'], result2), "after failover change to master check client traffic,test fail!" print "after failover change to master check client traffic,test pass!"
def test_042_check_reboot_dhcp_function(self): u"""验证重启后,dhcp功能正常(testlink_ID:2508)""" log.debug("042") #重启并重新登录master ap tmp1 = UpgradeBusiness(self.driver) tmp1.web_reboot(data_basic['DUT_ip']) #release,renew 有线网卡 tmp1.dhcp_release_wlan(data_basic['lan_pc']) tmp1.dhcp_wlan(data_basic['lan_pc']) #有线网卡得到ip result = tmp1.get_localIp(data_basic['lan_pc']) self.assertIn( "192.168.1", result), "check dhcp function after rebooting,,test fail!" print "check dhcp function after rebooting,test pass!"
def test_028_failover_master_can_discover_ap(self): u"""failover ap 切换到master ap模式后,能够发现未匹配的ap(testlink_ID:2377)""" log.debug("028") tmp = APSBusiness(self.driver) #登录failover ap的web界面 tmp.login_failover_ap(data_basic['slave_web2'], data_basic['superUser'], data_login['all']) #搜索AP并判断,是否正确--backup result1 = tmp.search_AP_backup(data_AP["slave:mac1"]) time.sleep(60) #搜索AP并配对并判断是否配对成功 result2 = tmp.check_search_pair_special_AP(data_basic['slave_ip2'], data_basic['sshUser'], data_login['all'], data_AP["slave:mac1"]) #该ap恢复出厂配置 tmp1 = UpgradeBusiness(self.driver) tmp1.web_factory_reset_backup(data_basic['slave_ip2']) self.assertTrue(result1) self.assertTrue(result2), "after failover change to master can discover and pair ap, test fail!" print "after failover change to master can discover pair ap, test pass!"
def check_reboot_refresh_time(self, web, username, pwd): #选择页面上的刷新时间间隔为5min tmp = NavbarControl(self.driver) tmp.refresh_menu() tmp.refresh_choose("5min") #重启路由 tmp1 = UpgradeBusiness(self.driver) tmp1.web_reboot(data_basic['DUT_ip']) #重新登录ap,获取刷新时间 self.driver.get(web) self.driver.implicitly_wait(10) #逻辑类对象,建一个实例 Lg = LoginBusiness(self.driver) Lg.login(username, pwd) #获取刷新时间 result = tmp.get_refresh_time() if result == "5min": return True else: return False
def test_056_check_fallback_IP_function(self): u"""disable/enable dhcp server when GWN76xx is in unpaired status,fallback IP works fine(testlink_ID:2335,2343)""" log.debug("056") #修改7000网络组的dhcp ipv4的租期时间为2分钟 tmp = NGBusiness(self.driver) tmp.wlan_disable(data_basic['wlan_pc']) tmp.mixed_7000_dhcp_lease_time("2m") #先退出7000的登录 tmp2 = NavbarBusiness(self.driver) tmp2.logout() #打开master ap的web页面 self.driver.get(data_basic['DUT_web']) self.driver.implicitly_wait(10) time.sleep(10) #在页面上把master AP恢复出厂设置 tmp1 = UpgradeBusiness(self.driver) tmp1.web_factory_reset_backup(data_basic['DUT_ip']) #disable/enable dhcp server when GWN76xx is in unpaired status,fallback IP works fine result1,result2 = tmp.check_fallback_IP_function("192.168.1.2", data_basic['DUT_ip'],data_basic['sshUser'],data_basic["super_defalut_pwd"]) #先退出7000的登录 tmp2.logout() #修改7000网络组的dhcp ipv4的租期时间为12h tmp.mixed_7000_dhcp_lease_time("12h") #pc有线网卡释放ip tmp.dhcp_release_wlan(data_basic['lan_pc']) #pc有线网卡重新获取ip tmp.dhcp_wlan(data_basic['lan_pc']) #测试完毕,禁用无线网卡,使pc能够上网 tmp.dhcp_release_wlan(data_basic['wlan_pc']) tmp.disconnect_ap() tmp.wlan_disable(data_basic['wlan_pc']) #rsyslog服务器完成工作 tmp.finish_rsyslog("Failover") self.assertTrue(result1) self.assertTrue(result2), "dis/enable dhcp server,check fallback ip,test fail!" print "dis/enable dhcp server,check fallback ip,test pass!"
def set_country(self, country_code): #点击系统设置菜单 tmp = UpgradeBusiness(self.driver) tmp.System_menu() #选择当前的国家代码 BasicControl.set_country_code(self, country_code) #点击保存 tmp.save() tmp.apply() time.sleep(80)
def test_020_check_reboot_ap_dhcp_config(self): u"""验证重启后,dhcp配置不会丢失(testlink_ID:2473)""" log.debug("020") #重启并重新登录master ap tmp1 = UpgradeBusiness(self.driver) tmp1.web_reboot(data_basic['DUT_ip']) self.driver.get(data_basic['DUT_web']) self.driver.implicitly_wait(10) #登录AP Lg = LoginBusiness(self.driver) Lg.login(data_basic['superUser'], data_login['all']) #检查完整配置 tmp = NGBusiness(self.driver) dhcp_checked, gateway, dns1, dns2 = tmp.check_all_config() self.assertTrue(dhcp_checked) self.assertEqual(gateway, data_basic['7000_ip']) self.assertEqual(dns1, "180.76.76.76") self.assertEqual( dns2, "180.76.76.76" ), "check dhcp configuration after reboot master ap, test fail!" print "check dhcp configuration after reboot master ap, test pass!"
def test_013_option43_https_upgrade(self): u"""测试option 66 https升级(testlink_ID:1110_2)""" log.debug("013") #打开web登录7000,并进入网络组,修改网络组的dhcp选项 tmp = NGBusiness(self.driver) tmp.mixed_7000_dhcp_option("43,B.https://%s" % data_basic['https_new_addr']) ##重启76xx并取出版本号来判断 result = tmp.reboot_get_version(data_basic['DUT_ip'],data_basic['sshUser'],\ data_login['all'],data_basic['version']) #先把7000上值改为空 tmp.mixed_7000_dhcp_option_blank() #然后重启7610 tmp.reboot_router(data_basic['DUT_ip'],data_basic['sshUser'],\ data_login['all']) #检查ap重启完成 tmp1 = UpgradeBusiness(self.driver) tmp1.confirm_AP_reboot_finish(data_basic['DUT_ip']) assert result, "test option43 https upgrade,fail!" print "test option43 https upgrade,pass!"
def test_018_del_client_name(self): u"""删除设置用户名称后,用户再次连接后主机名显示为用户本身名字(testlink_ID:516)""" log.debug("018") tmp = ClientsBusiness(self.driver) wlan_mac = tmp.get_wlan_mac(data_basic['wlan_pc']) #只有一个客户端时,修改客户端名称 tmp.change_client_name(wlan_mac, "") #重启ap tmp1 = UpgradeBusiness(self.driver) tmp1.web_reboot(data_basic['DUT_ip']) tmp1.connect_DHCP_WPA_AP(data_wireless['all_ssid'],\ data_wireless['short_wpa'],data_basic['wlan_pc']) tmp.dhcp_release_wlan(data_basic['wlan_pc']) self.driver.refresh() self.driver.implicitly_wait(10) #登录AP Lg = LoginBusiness(self.driver) Lg.login(data_basic['superUser'], data_login['all']) #获取第一个客户端的名称 result = tmp.check_client_name(wlan_mac) #取测试平台的name PC_name = subprocess.check_output("hostname", shell=True).strip("\n") print result, PC_name # tmp.dhcp_release_wlan(data_basic['wlan_pc']) assert (result == PC_name) or (result == ""), "del client name,test fail!" print "del client name,test pass!"
def test_044_restore(self): u"""ap dhcp server测试完成后,恢复工作""" log.debug("044") tmp = NGBusiness(self.driver) #开启7000的dhcp server tmp.mixed_7000_ip4_dhcp_server() #重启7000 tmp3 = UpgradeBusiness(self.driver) tmp3.web_reboot_backup() #release,renew 有线网卡 tmp.dhcp_release_wlan(data_basic['lan_pc']) time.sleep(200) tmp.dhcp_wlan(data_basic['lan_pc']) #再回来复位master ap self.driver.get(data_basic['DUT_web']) self.driver.implicitly_wait(10) self.driver.refresh() time.sleep(10) #登录AP Lg = LoginBusiness(self.driver) Lg.login(data_basic['superUser'], data_login['all']) #复位master ap tmp1 = APSBusiness(self.driver) result = tmp1.web_factory_reset(data_basic['DUT_ip'],data_basic['sshUser'],\ data_basic['super_defalut_pwd']) #测试完毕,禁用无线网卡,使pc够上网 tmp.dhcp_release_wlan(data_basic['wlan_pc']) tmp.disconnect_ap() tmp.wlan_disable(data_basic['wlan_pc']) #rsyslog服务器完成工作 tmp.finish_rsyslog("APdhcpserver") self.assertTrue( result ), "restore all configuration after testing ap dhcp server,test fail!" print "restore all configuration after testing ap dhcp server,test pass!"
def test_001_factory_reset(self): u"""在页面上把AP恢复出厂设置(testlink_ID:773)""" log.debug("001") #如果登录没有成功,再次使用默认密码登录;如果登录成功则直接退出 Lg = LoginBusiness(self.driver) Lg.login_again() tmp = UpgradeBusiness(self.driver) #描述:启用无线网卡 tmp.wlan_enable(data_basic['wlan_pc']) #rsyslog服务器准备 tmp.ready_rsyslog() result = tmp.web_factory_reset(data_basic['DUT_ip'],data_basic['sshUser'],\ data_basic['super_defalut_pwd']) tmp1 = SWBusiness(self.driver) #关闭设置向导窗口 tmp1.close_wizard() #设置系统系统日志的地址 tmp.syslog_uri() assert result, "reset the AP defalut config in webpage,fail!" print "reset the AP defalut config in webpage,pass!"
def change_user_pwd(self, user_pwd1, user_pwd2): tmp = UpgradeBusiness(self.driver) #点击系统设置菜单 tmp.System_menu() #点击访问菜单 tmp.Access_menu() #输入用户新密码 AccessControl.set_userpass1(self, user_pwd1) #输入确认用户新密码 AccessControl.set_userpass2(self, user_pwd2) #点击保存 tmp.save()
def change_admin_pwd(self, current_pwd, admin_pwd1, admin_pwd2): tmp = UpgradeBusiness(self.driver) #点击系统设置菜单 tmp.System_menu() #点击访问菜单 tmp.Access_menu() #输入当前管理员密码 AccessControl.set_pass0(self, current_pwd) #输入管理员新密码 AccessControl.set_pass1(self, admin_pwd1) #输入确认管理员新密码 AccessControl.set_pass2(self, admin_pwd2) #点击保存 tmp.save()