예제 #1
0
    def test_001_check_add_one_list(self):
        """添加一条IP过滤规则,PC的ip在范围之内,PC不能访问internet"""
        #首先启用无线网卡
        tmp = IPFilterBusiness(self.driver)
        tmp.wlan_enable(data_basic['wlan_pc'])
        #刷新页面重新登录ap页面
        Lg = LoginBusiness(self.driver)
        Lg.refresh_login_ap()
        #把AP恢复出厂配置
        tmp1 = ConfigUpdateBusiness(self.driver)
        tmp1.restore_AP_factory()
        #重新登录AP
        #逻辑类对象,建一个实例
        Lg = LoginBusiness(self.driver)
        #调用实例的登录AP的web界面
        Lg.login(data_basic['superUser'], data_basic['super_defalut_pwd'])
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()

        #先确定PC能够上网
        result1 = tmp.get_ping("www.baidu.com")
        #获取PC lan口附近的ip地址
        start_end_ip = tmp.obtain_lan_ip_near_ip(data_basic['lan_pc'], 5, 5)
        #添加一条IP过滤规则,PC的ip在范围之内
        tmp.add_one_IPFilter_list(*start_end_ip)
        #判断PC是否能够上网
        result2 = tmp.get_ping("www.baidu.com")
        self.assertEqual(result1, 0)
        self.assertNotEqual(result2, 0)
        log.debug("001\t\tpass")
예제 #2
0
 def check_STA_unblock_no_need_auth(self, ssid, password, wlan, eth):
     #无线STA通过group0的认证
     tmp = CPBusiness(self.driver)
     tmp.access_No_auth_portal(ssid, password, wlan, eth, "wpa")
     #无线网卡释放ip地址
     CPControl.dhcp_release_wlan(self, wlan)
     #断开无线连接
     CPControl.disconnect_ap(self)
     #启用有线网卡
     CPControl.wlan_enable(self, eth)
     #刷新页面重新登录ap页面
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #block STA
     tmp.connect_WPA_AP(ssid, password, wlan)
     tmp3 = ClientsBusiness(self.driver)
     wlan_mac = tmp3.get_wlan_mac(wlan)
     tmp3.block_client(wlan_mac)
     #unblock STA
     tmp4 = ClientAccessBusiness(self.driver)
     #删除Global Blacklist里面的所有的mac
     tmp4.del_Global_Blacklist_mac()
     #使用免认证的规则,腾讯首页,判断是否跳转到portal页面
     result = tmp.check_jump_to_No_auth_portal(ssid, password, wlan, eth)
     return result
예제 #3
0
    def test_001_check_add_one_list_not_access_url(self):
        """添加一条url过滤规则,PC不能够访问指定的url"""
        #首先启用无线网卡
        tmp = UrlFilterBusiness(self.driver)
        tmp.wlan_enable(data_basic['wlan_pc'])
        #刷新页面重新登录ap页面
        Lg = LoginBusiness(self.driver)
        Lg.refresh_login_ap()
        #把AP恢复出厂配置
        tmp1 = ConfigUpdateBusiness(self.driver)
        tmp1.restore_AP_factory()
        #重新登录AP
        #逻辑类对象,建一个实例
        Lg = LoginBusiness(self.driver)
        #调用实例的登录AP的web界面
        Lg.login(data_basic['superUser'], data_basic['super_defalut_pwd'])
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()

        #先确定PC能够访问指定的url--baidu
        result1 = tmp.check_access_url("www.baidu.com")
        #添加一条url过滤规则--baidu
        tmp.add_one_list("baidu")
        #确定PC不能够访问指定的url--baidu
        result2 = tmp.check_access_url("www.baidu.com")
        self.assertTrue(result1)
        self.assertFalse(result2)
        log.debug("001\t\tpass")
예제 #4
0
 def check_group1_radius_portal_function(self, NG2_ssid, password, wlan,
                                         eth, t, radius_name,
                                         radius_password):
     #7000新建一个网络组,vid设为2,开启dhcp server
     tmp1 = NGBusiness(self.driver)
     tmp1.mixed_7000_new_NG()
     #76xx上新建一个网络组,vid为2
     self.driver.get(data_basic['DUT_web'])
     self.driver.implicitly_wait(60)
     self.driver.refresh()
     time.sleep(10)
     tmp3 = SSIDBusiness(self.driver)
     tmp3.new_vlan_ssid(NG2_ssid, password, "2")
     #开启ssid1的强制门户认证
     tmp3.click_ssid_portal(2)
     #master ap加入所有的网络组
     tmp2 = APSBusiness(self.driver)
     tmp2.add_master_to_all_NG()
     #验证默认list:grandstream中的radius认证的有效性
     portal_title,redirect_title,again_title,expiration_title = \
         CPBusiness.check_radius_portal(self,NG2_ssid,password,
         wlan,eth,t,radius_name,radius_password)
     #刷新页面重新登录ap页面
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #删除master ap的ssid1
     tmp3.del_all_NG()
     #删除7000新建的网络组
     tmp1.mixed_7000_del_NG()
     return portal_title, redirect_title, again_title, expiration_title
예제 #5
0
 def check_portal_client_block_function(self, ssid, password, wlan, eth):
     #通过免认证方式上网
     CPBusiness.\
         access_No_auth_portal(self,ssid,password,wlan,eth,"wpa")
     #无线网卡释放ip地址
     CPControl.dhcp_release_wlan(self, wlan)
     #断开无线连接
     CPControl.disconnect_ap(self)
     #启用有线网卡
     CPControl.wlan_enable(self, eth)
     tmp = ClientsBusiness(self.driver)
     #使用无线网卡能够连接上ssid,并正常使用
     tmp.connect_DHCP_WPA_AP(ssid, password, wlan)
     #无线网卡释放ip地址
     CPControl.dhcp_release_wlan(self, wlan)
     #刷新页面重新登录ap页面
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #只有一个客户端,阻塞该客户端
     wlan_mac = tmp.get_wlan_mac(wlan)
     tmp.block_client(wlan_mac)
     time.sleep(60)
     #测试机上判断无线客户端是否依然是连接上的
     result = tmp.get_client_cmd_result("iw dev %s link" % wlan)
     #无线网卡释放ip地址
     CPControl.dhcp_release_wlan(self, wlan)
     #断开无线连接
     CPControl.disconnect_ap(self)
     #刷新页面重新登录ap页面
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     tmp1 = ClientAccessBusiness(self.driver)
     #删除Global Blacklist里面的所有的mac
     tmp1.del_Global_Blacklist_mac()
     return result
예제 #6
0
 def check_open_close_many_groups_captive_portal_function(
         self, group0_ssid, group1_ssid, group2_ssid, password, wlan, eth):
     result = []
     tmp1 = SSIDBusiness(self.driver)
     for i in range(2):
         #点击group0的强制门户认证
         #点击三个网络组的强制门户认证
         tmp1.click_many_group_portal(3)
         #使用免认证的规则,访问腾讯首页,判断是否跳转到portal页面
         for j in [group0_ssid, group1_ssid, group2_ssid]:
             result1 = CPBusiness.check_jump_to_No_auth_portal(
                 self, j, password, wlan, eth)
             result.append(result1)
         #测试完成一遍后,再次登录ap页面,为后续循环测试做好准备
         #刷新页面重新登录ap页面
         Lg = LoginBusiness(self.driver)
         Lg.refresh_login_ap()
         time.sleep(30)
     #删除master ap的两个ssid
     tmp1 = SSIDBusiness(self.driver)
     tmp1.del_all_NG()
     #删除7000新建的两个网络组
     tmp2 = NGBusiness(self.driver)
     tmp2.mixed_7000_del_NG()
     print result
     return result
예제 #7
0
 def check_slave_ap_group1_portal_function(self, NG2_ssid, password, wlan,
                                           eth):
     #7000新建一个网络组,vid设为2,开启dhcp server
     tmp1 = NGBusiness(self.driver)
     tmp1.mixed_7000_new_NG()
     #76xx上新建一个网络组,vid为2
     self.driver.get(data_basic['DUT_web'])
     self.driver.implicitly_wait(60)
     self.driver.refresh()
     time.sleep(10)
     tmp2 = SSIDBusiness(self.driver)
     tmp2.new_vlan_ssid(NG2_ssid, password, "2")
     #开启group1的强制门户认证
     tmp2.click_ssid_portal(2)
     #slave ap加入所有的网络组
     tmp3 = APSBusiness(self.driver)
     tmp3.add_slave_to_all_NG()
     #使用免认证的规则,访问腾讯首页,判断是否跳转到portal页面
     result = CPBusiness.check_jump_to_No_auth_portal(
         self, NG2_ssid, password, wlan, eth)
     #刷新页面重新登录ap页面
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #删除ssid1
     tmp2.del_all_NG()
     #删除7000新建的网络组
     tmp1.mixed_7000_del_NG()
     print result
     return result
예제 #8
0
 def check_group1_open_DHCP_portal_function(self, NG2_name, ip, start_ip,
                                            end_ip, gateway, dns1, NG2_ssid,
                                            password, wlan, eth):
     #7000新建一个网络组,vid设为2,不开启dhcp server
     tmp1 = NGBusiness(self.driver)
     tmp1.mixed_7000_new_NG_no_DHCP()
     #76xx上新建一个网络组,vid为2,开启dhcp server和wifi
     self.driver.get(data_basic['DUT_web'])
     self.driver.implicitly_wait(60)
     self.driver.refresh()
     time.sleep(10)
     tmp1.new_group_open_dhcp_server(NG2_name, ip, start_ip, end_ip,
                                     gateway, dns1, NG2_ssid, password)
     #开启group1的强制门户认证
     tmp1.click_groupn_portal(1)
     #使用免认证的规则,访问腾讯首页,判断是否跳转到portal页面
     result = CPBusiness.check_jump_to_No_auth_portal(
         self, NG2_ssid, password, wlan, eth)
     #刷新页面重新登录ap页面
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #删除master ap的group1
     tmp1.del_all_NG()
     #删除7000新建的网络组
     tmp1.mixed_7000_del_NG()
     print result
     return result
예제 #9
0
    def test_002_set_wan_staticIP(self):
        """外网设置为静态IP,能否上网"""
        tmp = WanSettingsBusiness(self.driver)
        #设置外网为staticIP
        tmp.change_wan_to_staticIP(data_wan['static_IP'], data_wan['netmask'],
                                   data_wan['gateway'], data_wan['DNS'])

        #判断ap能够上网
        time.sleep(30)
        #逻辑类对象,建一个实例
        Lg = LoginBusiness(self.driver)
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()
        tmp1 = StateInfoBusiness(self.driver)
        #获取当前模式
        result1 = tmp1.obtain_AP_current_mode()
        #获取外网的IP获取方式
        result2 = tmp1.obtain_WAN_IP_generation()
        #获取IP地址
        result3 = tmp1.obtain_WAN_IP_address()
        result4 = tmp.get_ping("www.baidu.com")
        self.assertEqual(result1, "路由模式")
        self.assertEqual(result2, "静态IP")
        self.assertEqual(data_wan['static_IP'], result3)
        self.assertEqual(0, result4)
        log.debug("002\t\tpass")
예제 #10
0
 def test_003_set_wan_dhcp(self):
     """外网设置为动态获取,能否上网"""
     tmp = WanSettingsBusiness(self.driver)
     #设置外网为动态获取
     tmp.change_wan_to_dhcp()
     time.sleep(30)
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
     tmp1 = StateInfoBusiness(self.driver)
     #获取当前模式
     result1 = tmp1.obtain_AP_current_mode()
     #获取外网的IP获取方式
     result2 = tmp1.obtain_WAN_IP_generation()
     #获取IP地址
     result3 = tmp1.obtain_WAN_IP_address()
     #判断ap能够上网
     result4 = tmp.get_ping("www.baidu.com")
     tmp.disconnect_ap()
     self.assertEqual(result1, "路由模式")
     self.assertEqual(result2, "动态获取")
     self.assertIn(data_wan['wan_str'], result3)
     self.assertEqual(0, result4)
     log.debug("003\t\tpass")
예제 #11
0
 def test_001_disable_dhcp_server(self):
     """禁用dhcp server,client无法获取到ip地址"""
     #首先启用无线网卡
     tmp = LanSettingsBusiness(self.driver)
     tmp.wlan_enable(data_basic['wlan_pc'])
     #刷新页面重新登录ap页面
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #把AP恢复出厂配置
     tmp1 = ConfigUpdateBusiness(self.driver)
     tmp1.restore_AP_factory()
     #重新登录AP
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #调用实例的登录AP的web界面
     Lg.login(data_basic['superUser'], data_basic['super_defalut_pwd'])
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
     #关闭ap的dhcp server
     tmp.enable_disable_dhcp_server(0)
     result = tmp.check_AP_dhcp_server(data_basic['lan_pc'], "192.168.1")
     #指定有线网卡的固定ip--能够访问ap的webpage
     tmp.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
     self.assertFalse(result)
     log.debug("001\t\tpass")
예제 #12
0
 def test_001_check_wifi_upload(self):
     """判断WIFI总上行是否正确"""
     #首先启用无线网卡
     tmp2 = WirelessSettingsBusiness(self.driver)
     tmp2.wlan_enable(data_basic['wlan_pc'])
     #刷新页面重新登录ap页面
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #把AP恢复出厂配置
     tmp1 = ConfigUpdateBusiness(self.driver)
     tmp1.restore_AP_factory()
     #重新登录AP
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #调用实例的登录AP的web界面
     Lg.login(data_basic['superUser'], data_basic['super_defalut_pwd'])
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
     #修改无线的ssid,加密方式和密码
     tmp2.change_wifi_ssid_encryption_pwd(data_wirless['all_ssid'], "psk2",
                                          data_wirless['short_wpa'])
     #判断WIFI总上行是否正确
     tmp = StateInfoBusiness(self.driver)
     result = tmp.check_wifi_upload(data_wirless['all_ssid'],
                                    data_wirless['short_wpa'],
                                    data_basic['wlan_pc'],
                                    data_basic['lan_pc'])
     self.assertTrue(result)
     log.debug("001\t\tpass")
 def test_004_check_apmode_reboot_ap(self):
     """AP模式下在页面上点击重启设备后,验证设备是否重启"""
     tmp1 = WorkModeBusiness(self.driver)
     #设置PC的静态IP,能够访问DUT的webpage
     tmp1.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
     #修改工作模式为AP模式,内网设置静态IP
     tmp1.change_workmode_to_ap_LANstaticIP(data_basic['DUT_ip'],
                                            data_lan['netmask1'],
                                            data_wirless['all_ssid'],
                                            "psk2",
                                            data_wirless['short_wpa'],
                                            "HT20")
     #time.sleep(30)
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
     #登录ap后台,判断ap的工作模式
     result5 = tmp1.check_DUT_workmode(data_basic['DUT_ip'],
                                       data_basic['ssh_user'],
                                       data_basic['ssh_pwd'])
     tmp = RebootSystemBusiness(self.driver)
     #在页面上点击重启设备后,验证设备是否重启
     result1, result2 = tmp.check_reboot_ap(data_basic['DUT_ip'])
     self.assertIn("ap", result5)
     self.assertNotEqual(0, result1)
     self.assertEqual(0, result2)
     log.debug("004\t\tpass")
    def test_001_default_wifi(self):
        """默认无线开关为开启状态"""
        # #首先启用无线网卡
        tmp = WirelessSettingsBusiness(self.driver)
        tmp.wlan_enable(data_basic['wlan_pc'])
        #刷新页面重新登录ap页面
        Lg = LoginBusiness(self.driver)
        Lg.refresh_login_ap()
        #把AP恢复出厂配置
        tmp1 = ConfigUpdateBusiness(self.driver)
        tmp1.restore_AP_factory()
        #重新登录AP
        #逻辑类对象,建一个实例
        Lg = LoginBusiness(self.driver)
        #调用实例的登录AP的web界面
        Lg.login(data_basic['superUser'], data_basic['super_defalut_pwd'])
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()

        #使用无线网卡扫描,能够连接上默认ssid
        #默认ssid
        default_ssid = "3ONE_2G_" + data.master_last_6mac()
        print(default_ssid)
        result = tmp.client_connect_ssid(default_ssid, data_basic['wlan_pc'],
                                         "open")
        #result = tmp.ssid_scan_result_backup(default_ssid, data_basic['wlan_pc'])
        self.assertTrue(result)
        log.debug("001\t\tpass")
예제 #15
0
 def test_005_apmode_save_config_file(self):
     """AP模式下保存配置"""
     tmp = WorkModeBusiness(self.driver)
     #设置PC的静态IP,能够访问DUT的webpage
     tmp.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
     #修改工作模式为AP模式,内网设置静态IP
     tmp.change_workmode_to_ap_LANstaticIP(data_basic['DUT_ip'],
         data_lan['netmask1'], data_wirless['all_ssid'], "psk2",
         data_wirless['short_wpa'], "HT20")
     time.sleep(30)
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
     #下载配置文件
     tmp1 = ConfigUpdateBusiness(self.driver)
     tmp1.download_config_file()
     #判断配置文件是否下载
     #文件路径
     PATH = os.path.join(os.getcwd(), "bakup.file")
     print(PATH)
     result = os.path.exists(PATH)
     #登录ap后台,判断ap的工作模式
     result5 = tmp.check_DUT_workmode(data_basic['DUT_ip'], data_basic['ssh_user'],
         data_basic['ssh_pwd'])
     self.assertTrue(result)
     self.assertIn("ap", result5)
     log.debug("005\t\tpass")
예제 #16
0
 def test_013_clientmode_save_config_file(self):
     """客户端模式下保存配置"""
     tmp = WorkModeBusiness(self.driver)
     #修改工作模式为client模式,内网设置静态IP,桥接ap无线加密为wpa2
     tmp.change_workmode_to_client_LANstaticIP(data_basic['DUT_ip'], data_lan['netmask1'],
         data_wirless['bridge_essid'], data_wirless['bridge_encryption'],
         data_wirless['bridge_bssid'], data_wirless['bridge_pwd'],
         data_basic['ssh_user'], data_basic['ssh_pwd'])
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
     #下载配置文件
     tmp1 = ConfigUpdateBusiness(self.driver)
     tmp1.download_config_file()
     #判断配置文件是否下载
     #文件路径
     PATH = os.path.join(os.getcwd(), "bakup.file")
     print(PATH)
     result = os.path.exists(PATH)
     #登录ap后台,判断ap的工作模式
     result5 = tmp.check_DUT_workmode(data_basic['DUT_ip'], data_basic['ssh_user'],
         data_basic['ssh_pwd'])
     self.assertTrue(result)
     self.assertIn("wds_c", result5)
     log.debug("013\t\tpass")
 def test_007_check_bridgemode_reboot_ap(self):
     """桥接模式下在页面上点击重启设备后,验证设备是否重启"""
     tmp = WorkModeBusiness(self.driver)
     #修改工作模式为bridge模式,内网设置静态IP
     tmp.change_workmode_to_bridge_LANstaticIP(
         data_basic['DUT_ip'], data_lan['netmask1'],
         data_wirless['bridge_essid'], data_wirless['bridge_encryption'],
         data_wirless['bridge_bssid'], data_wirless['bridge_pwd'],
         data_wirless['all_ssid'], "psk2", data_wirless['short_wpa'],
         data_basic['ssh_user'], data_basic['ssh_pwd'])
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
     #登录ap后台,判断ap的工作模式
     result5 = tmp.check_DUT_workmode(data_basic['DUT_ip'],
                                      data_basic['ssh_user'],
                                      data_basic['ssh_pwd'])
     tmp = RebootSystemBusiness(self.driver)
     #在页面上点击重启设备后,验证设备是否重启
     result1, result2 = tmp.check_reboot_ap(data_basic['DUT_ip'])
     self.assertIn("wds", result5)
     self.assertNotEqual(0, result1)
     self.assertEqual(0, result2)
     log.debug("007\t\tpass")
    def change_workmode_to_client_LANstaticIP(self, ip, netmask,
            bridge_essid, bridge_encryption_mode,bridge_bssid,
            bridge_pwd, user, pwd):
        """
        修改工作模式为client模式,内网设置静态IP
        """
        for i in range(3):
            #点击工作模式菜单
            self.menu_workmode()
            #选择桥接模式
            self.set_mode("client")
            time.sleep(10)
            #内网设置点击静态IP按钮
            self.set_client_LAN_staticIP()
            #输入静态IP的ip地址
            self.set_client_LAN_staticIP_ip(ip)
            #输入静态IP的子网掩码
            self.set_client_LAN_staticIP_netmask(netmask)
            #输入静态ip的gateway
            self.set_client_LAN_staticIP_gateway("")
            #点击下一步
            self.click_next_button()

            #桥接设置
            # #点击扫描
            # self.click_bridge_bridge_scan_button()
            # time.sleep(10)
            # #扫描页面中,根据扫描到的ap的mac地址点击对应的操作按钮
            # self.set_bridge_bridge_scan_operat(bridge_bssid)
            #桥接设置输入要桥接的ssid
            self.set_client_bridge_ssid(bridge_essid)
            #桥接设置要桥接的无线的加密方式
            self.set_client_bridge_encryption(bridge_encryption_mode)
            #输入桥接ap的无线密码
            self.set_client_bridge_password(bridge_pwd)
            #桥接设置要桥接的对端无线mac地址
            self.set_client_bridge_BSSID(bridge_bssid)
            #点击下一步
            self.click_next_button()

            #点击完成
            self.click_finish_button()
            time.sleep(5)
            if self.check_waitbar_displayed():
                time.sleep(85)
                break
            else:
                Lg = LoginBusiness(self.driver)
                #刷新页面重新登录ap页面
                Lg.refresh_login_ap()

        #指定有线网卡的固定ip--能够访问ap的webpage
        self.dhcp_release_wlan(data_basic['lan_pc'])
        self.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
        #关闭AP的eth1端口,以免她来分配ip地址,和桥接的dhcp server相冲突
        self.down_ap_eth1(ip, user, pwd)
        print("set client mode successfull!")
예제 #19
0
    def test_007_bridgemode_system_downgrade_check_config(self):
        """桥接模式下,修改配置后,系统降级,检查配置"""
        tmp1 = WorkModeBusiness(self.driver)
        #修改工作模式为bridge模式,内网设置静态IP
        tmp1.change_workmode_to_bridge_LANstaticIP(
            data_basic['DUT_ip'], data_lan['netmask1'],
            data_wirless['bridge_essid'], data_wirless['bridge_encryption'],
            data_wirless['bridge_bssid'], data_wirless['bridge_pwd'],
            data_wirless['all_ssid'], "psk2", data_wirless['short_wpa'],
            data_basic['ssh_user'], data_basic['ssh_pwd'])
        time.sleep(30)
        #选择固件路径,降级固件
        PATH = os.path.join(
            os.getcwd(), AP_model + '-' + data_basic['old_version'] + '.bin')
        print(PATH)
        #逻辑类对象,建一个实例
        Lg = LoginBusiness(self.driver)
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()
        tmp = SystemUpgradeBusiness(self.driver)
        tmp.upgrade_system(PATH)
        #设置PC的静态IP,能够访问DUT的webpage
        tmp.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
        #关闭AP的eth1端口,以免她来分配ip地址,和桥接的dhcp server相冲突
        tmp4 = WorkModeBusiness(self.driver)
        tmp4.down_ap_eth1(data_basic['DUT_ip'], data_basic['ssh_user'],
                          data_basic['ssh_pwd'])
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()
        tmp1 = StateInfoBusiness(self.driver)
        #获取当前模式
        result1 = tmp1.obtain_AP_current_mode()
        #获取桥接的连接状态
        result2 = tmp1.obtain_WAN_IP_generation()
        #获取信号强度
        result3 = tmp1.obtain_WAN_IP_address()

        #判断ssid是否恢复
        tmp2 = WirelessSettingsBusiness(self.driver)
        result4 = tmp2.get_first_ssid(data_basic['DUT_ip'],
                                      data_basic['ssh_user'],
                                      data_basic['ssh_pwd'])
        #登录ap后台,判断ap的工作模式
        tmp3 = WorkModeBusiness(self.driver)
        result5 = tmp3.check_DUT_workmode(data_basic['DUT_ip'],
                                          data_basic['ssh_user'],
                                          data_basic['ssh_pwd'])
        #检查固件版本
        result6 = tmp.check_system_version(data_basic['old_version'])
        self.assertEqual(result1, "网桥模式")
        self.assertEqual(result2, "已连接")
        self.assertIn("dBm", result3)
        self.assertIn(data_wirless['all_ssid'], result4)
        self.assertIn("wds", result5)
        self.assertTrue(result6)
        log.debug("007\t\tpass")
    def change_workmode_to_client_LANDHCP(self,
            bridge_essid, bridge_encryption_mode,bridge_bssid,
            bridge_pwd, user, pwd):
        """
        修改工作模式为client模式,内网设置动态获取
        """
        for i in range(3):
            #点击工作模式菜单
            self.menu_workmode()
            #选择桥接模式
            self.set_mode("client")
            time.sleep(10)
            #内网设置点击点击动态获取按钮
            self.set_client_LAN_dhcp()
            #点击下一步
            self.click_next_button()

            #桥接设置
            # #点击扫描
            # self.click_bridge_bridge_scan_button()
            # time.sleep(10)
            # #扫描页面中,根据扫描到的ap的mac地址点击对应的操作按钮
            # self.set_bridge_bridge_scan_operat(bridge_bssid)
            #桥接设置输入要桥接的ssid
            self.set_client_bridge_ssid(bridge_essid)
            #桥接设置要桥接的无线的加密方式
            self.set_client_bridge_encryption(bridge_encryption_mode)
            #输入桥接ap的无线密码
            self.set_client_bridge_password(bridge_pwd)
            #桥接设置要桥接的对端无线mac地址
            self.set_client_bridge_BSSID(bridge_bssid)
            #点击下一步
            self.click_next_button()

            #点击完成
            self.click_finish_button()
            time.sleep(5)
            if self.check_waitbar_displayed():
                time.sleep(85)
                break
            else:
                Lg = LoginBusiness(self.driver)
                #刷新页面重新登录ap页面
                Lg.refresh_login_ap()

        #设置PC的静态IP和桥接的路由的IP端一致
        self.dhcp_release_wlan(data_basic['lan_pc'])
        self.set_eth_ip(data_basic['lan_pc'], data_wireless['bridge_static_ip'])
        #非路由模式下,获取ap的当前ip地址
        ap_ip = self.get_ap_ip(data_wireless['bridge_ip'], data_basic['ssh_user'],
            data_basic['ssh_pwd'], data_basic['ap_brlan_mac'])
        #关闭AP的eth1端口,以免她来分配ip地址,和桥接的dhcp server相冲突
        self.down_ap_eth1(ap_ip, user, pwd)
        print("set bridge mode successfull!")
        return ap_ip
예제 #21
0
    def test_005_apmode_system_downgrade_check_config(self):
        """ap模式下,修改配置后,系统降级,检查配置"""
        tmp1 = WorkModeBusiness(self.driver)
        #设置PC的静态IP,能够访问DUT的webpage
        tmp1.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
        #修改工作模式为AP模式,内网设置静态IP
        tmp1.change_workmode_to_ap_LANstaticIP(data_basic['DUT_ip'],
                                               data_lan['netmask1'],
                                               data_wirless['all_ssid'],
                                               "psk2",
                                               data_wirless['short_wpa'],
                                               "HT20")
        time.sleep(30)
        #逻辑类对象,建一个实例
        Lg = LoginBusiness(self.driver)
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()
        #选择固件路径,降级固件
        PATH = os.path.join(
            os.getcwd(), AP_model + '-' + data_basic['old_version'] + '.bin')
        print(PATH)
        tmp = SystemUpgradeBusiness(self.driver)
        tmp.upgrade_system(PATH)
        #设置PC的静态IP,能够访问DUT的webpage
        tmp.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()
        tmp1 = StateInfoBusiness(self.driver)
        #获取当前模式
        result1 = tmp1.obtain_AP_current_mode()
        #获取内网IP获取方式
        result2 = tmp1.obtain_WAN_IP_generation()
        #获取IP地址
        result3 = tmp1.obtain_WAN_IP_address()

        #判断ssid是否恢复
        tmp2 = WirelessSettingsBusiness(self.driver)
        result4 = tmp2.get_first_ssid(data_basic['DUT_ip'],
                                      data_basic['ssh_user'],
                                      data_basic['ssh_pwd'])
        #登录ap后台,判断ap的工作模式
        tmp3 = WorkModeBusiness(self.driver)
        result5 = tmp3.check_DUT_workmode(data_basic['DUT_ip'],
                                          data_basic['ssh_user'],
                                          data_basic['ssh_pwd'])
        #检查固件版本
        result6 = tmp.check_system_version(data_basic['old_version'])
        self.assertEqual(result1, "AP模式")
        self.assertEqual(result2, "静态IP")
        self.assertEqual(data_basic['DUT_ip'], result3)
        self.assertIn(data_wirless['all_ssid'], result4)
        self.assertIn("ap", result5)
        self.assertTrue(result6)
        log.debug("005\t\tpass")
예제 #22
0
 def setUp(self):
     self.driver = webdriver.Firefox()
     self.driver.maximize_window()
     self.driver.get(data_basic['DUT_web'])
     self.driver.implicitly_wait(20)
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #调用实例的登录AP的web界面
     Lg.login(data_basic['superUser'], data_basic['super_defalut_pwd'])
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
예제 #23
0
    def test_010_clientmode_system_upgrade_check_config(self):
        """客户端模式下,系统升级,检查配置"""
        tmp = SystemUpgradeBusiness(self.driver)
        #选择固件路径,升级固件
        PATH = os.path.join(
            os.getcwd(), AP_model + '-' + data_basic['new_version'] + '.bin')
        print(PATH)
        tmp.upgrade_system(PATH)

        #设置PC的静态IP,能够访问DUT的webpage
        tmp.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
        #关闭AP的eth1端口,以免她来分配ip地址,和桥接的dhcp server相冲突
        tmp4 = WorkModeBusiness(self.driver)
        tmp4.down_ap_eth1(data_basic['DUT_ip'], data_basic['ssh_user'],
                          data_basic['ssh_pwd'])
        #逻辑类对象,建一个实例
        Lg = LoginBusiness(self.driver)
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()
        tmp1 = StateInfoBusiness(self.driver)
        #获取当前模式
        result1 = tmp1.obtain_AP_current_mode()
        #获取桥接的连接状态
        result2 = tmp1.obtain_WAN_IP_generation()
        #获取信号强度
        result3 = tmp1.obtain_WAN_IP_address()

        #登录ap后台,判断ap的工作模式
        tmp3 = WorkModeBusiness(self.driver)
        result5 = tmp3.check_DUT_workmode(data_basic['DUT_ip'],
                                          data_basic['ssh_user'],
                                          data_basic['ssh_pwd'])
        #检查固件版本
        result6 = tmp.check_system_version(data_basic['new_version'])

        #修改工作模式为路由模式,外网设置dhcp模式
        tmp4.change_workmode_to_route_WANdhcp(data_wirless['all_ssid'], "psk2",
                                              data_wirless['short_wpa'],
                                              "HT40", "auto")
        #client重新获取ip
        tmp.dhcp_release_wlan(data_basic['lan_pc'])
        tmp.dhcp_wlan(data_basic['lan_pc'])
        tmp.disconnect_ap()
        #删除下载固件
        os.unlink(PATH)

        self.assertEqual(result1, "客户端模式")
        self.assertEqual(result2, "已连接")
        self.assertIn("dBm", result3)
        self.assertIn("wds_c", result5)
        self.assertTrue(result6)
        log.debug("010\t\tpass")
 def check_wifi_upload(self, ssid, password, wlan, lan):
     #AP 上传流量-50M
     self.run_AP_upload_50M(ssid, password, wlan, lan)
     #等待30s,刷新页面
     time.sleep(30)
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #取出WIFI总上行
     value, unit = self.obtain_wifi_upload()
     if unit == "MB":
         if int(value) >= 50:
             return True
     return False
예제 #25
0
 def get_bannedclients_title(self):
     #刷新页面重新登录ap页面
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #点击客户端菜单
     tmp = ClientsBusiness(self.driver)
     tmp.clients_menu()
     #点击时间策略菜单
     BannedClientsControl.bannedclients_menu(self)
     #获取页面所有标题
     result = BannedClientsControl.get_titlediv(self)
     print result
     return result
    def change_workmode_to_ap_LANstaticIP(self, ip, netmask, ssid, encryption_mode,
            password, width):
        """
        修改工作模式为ap模式,内网设置静态IP
        """
        for i in range(3):
            #点击工作模式菜单
            self.menu_workmode()
            #选择ap模式
            self.set_mode("ap")
            time.sleep(10)
            #内网设置点击静态IP按钮
            self.set_AP_LAN_staticIP()
            #输入静态IP的ip地址
            self.set_AP_LAN_staticIP_ip(ip)
            #输入静态IP的子网掩码
            self.set_AP_LAN_staticIP_netmask(netmask)
            #输入静态ip的gateway
            self.set_AP_LAN_staticIP_gateway("")
            #点击下一步
            self.click_next_button()
            # #防止AP模式下有时候点击下一步没有后跳到无线配置页面,判断web页面上是否有AP模式下的静态IP的元素
            # for i in range(3):
            #     if not self.check_AP_LAN_staticIP_in_webpage():
            #         #再次点击下一步
            #         self.click_next_button()
            #     else:
            #         break
            #无线设置
            self.set_AP_24g_ssid(ssid)
            self.set_AP_24g_encryption(encryption_mode)
            self.set_AP_24g_password(password)
            self.set_AP_24g_bandwidth(width)
            #点击下一步
            self.click_next_button()
            #点击完成
            self.click_finish_button()
            time.sleep(5)
            if self.check_waitbar_displayed():
                time.sleep(85)
                break
            else:
                Lg = LoginBusiness(self.driver)
                #刷新页面重新登录ap页面
                Lg.refresh_login_ap()

        #指定有线网卡的固定ip--能够访问ap的webpage
        self.dhcp_release_wlan(data_basic['lan_pc'])
        self.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
        print("set ap mode successfull!")
예제 #27
0
    def test_011_bridgemode_upload_config_file(self):
        """桥接模式下验证上传配置文件"""
        tmp = ConfigUpdateBusiness(self.driver)
        #文件路径
        PATH = os.path.join(os.getcwd(), "bakup.file")
        print(PATH)
        #上传配置文件
        tmp.upload_config_file(PATH)

        #设置PC的静态IP,能够访问DUT的webpage
        tmp.set_eth_ip(data_basic['lan_pc'], data_basic['static_PC_ip'])
        #关闭AP的eth1端口,以免她来分配ip地址,和桥接的dhcp server相冲突
        tmp4 = WorkModeBusiness(self.driver)
        tmp4.down_ap_eth1(data_basic['DUT_ip'], data_basic['ssh_user'],
            data_basic['ssh_pwd'])
        #逻辑类对象,建一个实例
        Lg = LoginBusiness(self.driver)
        #刷新页面重新登录ap页面
        Lg.refresh_login_ap()
        tmp1 = StateInfoBusiness(self.driver)
        #获取当前模式
        result1 = tmp1.obtain_AP_current_mode()
        #获取桥接的连接状态
        result2 = tmp1.obtain_WAN_IP_generation()
        #获取信号强度
        result3 = tmp1.obtain_WAN_IP_address()

        #判断ssid是否恢复
        tmp2 = WirelessSettingsBusiness(self.driver)
        result4 = tmp2.get_first_ssid(data_basic['DUT_ip'], data_basic['ssh_user'],
            data_basic['ssh_pwd'])
        #登录ap后台,判断ap的工作模式
        tmp3 = WorkModeBusiness(self.driver)
        result5 = tmp3.check_DUT_workmode(data_basic['DUT_ip'], data_basic['ssh_user'],
            data_basic['ssh_pwd'])
        #测试完成后删除备份文件
        if result1 != "网桥模式":
            #如果恢复配置失败,保存配置文件
            dirname = os.path.dirname(os.path.dirname(__file__))
            current_time = time.strftime('%m%d%H%M',time.localtime(time.time()))
            backfile_PATH = os.path.join(dirname, "data", "testresultdata", "bridgemode_{}_bakup.file".format(current_time))
            shutil.copy(PATH, backfile_PATH)
        os.unlink(PATH)
        self.assertEqual(result1, "网桥模式")
        self.assertEqual(result2, "已连接")
        self.assertIn("dBm", result3)
        self.assertIn(data_wirless['all_ssid'], result4)
        self.assertIn("wds", result5)
        log.debug("011\t\tpass")
예제 #28
0
 def setUp(self):
     fp = webdriver.FirefoxProfile()
     fp.set_preference("browser.download.folderList",2)
     fp.set_preference("browser.download.manager.showWhenStarting",False)
     fp.set_preference("browser.download.dir", os.getcwd())
     fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/x-targz")
     self.driver = webdriver.Firefox(firefox_profile=fp)
     self.driver.maximize_window()
     self.driver.get(data_basic['DUT_web'])
     self.driver.implicitly_wait(20)
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #调用实例的登录AP的web界面
     Lg.login(data_basic['superUser'], data_basic['super_defalut_pwd'])
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
 def check_AP_wireless_client(self,
                              ssid,
                              wlan,
                              wifi_encryption,
                              password=None):
     #使用无线网卡连接ap
     self.client_connect_ssid(ssid, wlan, wifi_encryption, password)
     #等待30s,刷新页面
     time.sleep(30)
     Lg = LoginBusiness(self.driver)
     Lg.refresh_login_ap()
     #获取无线用户数
     result = self.obtain_AP_wireless_client()
     #无线网卡断开连接
     self.disconnect_ap()
     return result
예제 #30
0
 def test_003_routemode_system_downgrade_check_config(self):
     """路由模式下,修改配置后,系统降级,检查配置"""
     #修改工作模式为路由模式,外网设置static IP模式
     tmp1 = WorkModeBusiness(self.driver)
     tmp1.change_workmode_to_route_WANstaticIP(
         data_wan['static_IP'], data_wan['netmask'], data_wan['gateway'],
         data_wan['DNS'], data_wirless['all_ssid'], "psk2",
         data_wirless['short_wpa'], "HT20", "auto")
     time.sleep(60)
     #逻辑类对象,建一个实例
     Lg = LoginBusiness(self.driver)
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
     #选择固件路径,降级固件
     PATH = os.path.join(
         os.getcwd(), AP_model + '-' + data_basic['old_version'] + '.bin')
     print(PATH)
     tmp = SystemUpgradeBusiness(self.driver)
     tmp.upgrade_system(PATH)
     #刷新页面重新登录ap页面
     Lg.refresh_login_ap()
     tmp1 = StateInfoBusiness(self.driver)
     #获取当前模式
     result1 = tmp1.obtain_AP_current_mode()
     #获取外网的IP获取方式
     result2 = tmp1.obtain_WAN_IP_generation()
     #获取IP地址
     result3 = tmp1.obtain_WAN_IP_address()
     #判断ssid是否恢复
     tmp2 = WirelessSettingsBusiness(self.driver)
     result4 = tmp2.get_first_ssid(data_basic['DUT_ip'],
                                   data_basic['ssh_user'],
                                   data_basic['ssh_pwd'])
     #判断wan口是否是静态IP
     tmp3 = WanSettingsBusiness(self.driver)
     result5 = tmp3.get_wan_way(data_basic['DUT_ip'],
                                data_basic['ssh_user'],
                                data_basic['ssh_pwd'])
     #检查固件版本
     result6 = tmp.check_system_version(data_basic['old_version'])
     self.assertEqual(result1, "路由模式")
     self.assertEqual(result2, "静态IP")
     self.assertEqual(data_wan['static_IP'], result3)
     self.assertIn(data_wirless['all_ssid'], result4)
     self.assertIn("static", result5)
     self.assertTrue(result6)
     log.debug("003\t\tpass")