def step_100msh0057(self): try: driver = self.driver time.sleep(5) result = [] #取出测试所需的广播地址 for broadcast in data.lan_broadcast(): #修改广播地址 commonconfig_control.set_lan_broadcast(self,broadcast) #点击保存应用 lan_control.apply(self) time.sleep(60) ssh_user = data.ssh_user() #登录ssh输入ifconfig m = lan_network_control.router_lan_inet(ssh_user[0]) #如果广播地址正确,把数字1传给result,否则传数字0 if broadcast in m: result.append(1) else: result.append(0) #使用默认ip登录lan页面 goin_default_lan(self) return result #捕捉异常并打印异常信息 except Exception,e: print u"修改lan广播地址过程失败,原因如下:\n%s"%e
def ssh_cmd2(cmd): login=[] try: login = data.ssh_user() result = ssh_cmd(login[0],login[1],login[2],cmd) return result except IOError,e: print "文件信息错误,具体信息:" print e
def reboot_router(): try: ssh_user = data.ssh_user() #在路由器中输入reboot ssh.ssh_cmd(ssh_user[0],ssh_user[1],ssh_user[2],'reboot') time.sleep(60) #捕捉异常并打印异常信息 except Exception,e: print u"reboot重启路由失败,原因如下:\n%s"%e
def router_lan_inet(ip): try: ssh_user = data.ssh_user() ifocnfig = ssh.ssh_cmd(ip,ssh_user[1],\ ssh_user[2],'ifconfig br-lan | grep inet') return ifocnfig #捕捉异常并打印异常信息 except Exception,e: print u"查看路由器lan口的网络信息失败,原因如下:\n%s"%e
def step_100msh0286(self): #修改请求管理接口的时间间隔为1分钟 content = ['0 2 * * * /bin/rand_upgrade_msh\n', '0 4 * * * /sbin/rand_reboot\n', '0 6 * * * /etc/init.d/sysntpd restart\n', '*/1 * * * * /sbin/get_manage\n', '0 1 * * * /sbin/cwifi_pwd\n'] modify_remote_file('/etc/crontabs/','root',content) #重启路由定时机制 ssh.ssh_cmd2('/etc/init.d/cron restart') time.sleep(10) #上传tcpdump到路由器 #上个用例已经上传了,这里就不再上传了 d = data.ssh_user() #tcpdump_control.scp_to_remote('./data/BHU_tcpdump/tcpdump',d[0],d[1],d[2],'/usr/sbin/') #tcpdump_control.scp_to_remote('./data/BHU_tcpdump/libpcap.so.1.3',d[0],d[1],d[2],'/usr/lib/') #ssh登录路由输入tcpdump抓包 wanlog = capture_wan_packet() #将抓到的封包传输回本地pc tcpdump_control.scp_to_local(d[0],d[1],d[2],wanlog,'./data/') #打开本地下载的文件,读取文件内容 f = open('./data/wanlog') log = f.read() f.close() '''#获取路由网关ID gw = general_control.get_gatewayId(self) #路由mac r_mac = ssh.ssh_cmd2("ifconfig eth0 | grep HWaddr | awk '{print$5}'") R_MAC = r_mac.upper() #路由版本 r_version = ssh.ssh_cmd2('cat /etc/version/version') R_VERSION = r_version.upper() #路由无线mac wlan_mac = ssh.ssh_cmd2("ifconfig wlan0 | grep HWaddr | awk '{print$5}'") WLAN_MAC = wlan_mac.upper()''' #正确的patch信息字符如下 patch_str1 = 'GET /manage/patch?gw_id=' #patch_str2 = '%s&route_mac=%s&route_version=%s&patch_md5='%(gw,R_MAC,R_VERSION) #正确的manage信息字符如下 manage_str1 = 'GET /manage/manage?gw_id=' #manage_str2 = '%s&route_mac=%s&route_version=%s&manage_md5='%(gw,R_MAC,R_VERSION) if (patch_str1 and manage_str1) in log: #patch和manage信息在log信息中,说明有管理接口请求,结果赋值1 result = 1 else: #patch和manage信息不在log信息中,说明没有管理接口请求,结果赋值0 result = 0 #结果返回给函数 return result
def router_access_internet(): try: ssh_user = data.ssh_user() result = ssh.ssh_cmd2('ping www.baidu.com -c 3') if "0% packet loss" in result: return True else: return False #捕捉异常并打印异常信息 except Exception,e: print u"ssh登录路由取值失败,原因如下:\n%s"%e
def modify_remote_file(dir,filename,content): #调用ssh的默认登录ip,用户名和密码 d = data.ssh_user() #登录remote主机下载需要修改的文件 tcpdump_control.scp_to_local(d[0],d[1],d[2],dir+filename,'./data/') #登录remote主机并备份文件 ssh.ssh_cmd3(d[1],d[0],d[2],'mv %s%s %s%s_backup'\ %(dir,filename,dir,filename)) print '备份remote主机的文件%s%s成功'%(dir,filename) #在本地打开下载的文件,清空原内容并写入需要新内容 public_control.modify_file('./data/%s'%filename,content) #通过scp再传输给remote主机 tcpdump_control.scp_to_remote('./data/%s'%filename,d[0],d[1],d[2],dir) print '修改remote主机文件%s%s成功'%(dir,filename) #删除本地到文件 subprocess.call('rm -rf ./data/%s'%filename,shell=True)
def step_100msh0287(self): #修改门户认证的检查间隔为60s general_control.set_checkInterval(self,'60') general_control.apply(self) time.sleep(60) #上传tcpdump到路由器 #调用ssh的默认登录ip,用户名和密码 d = data.ssh_user() tcpdump_control.scp_to_remote('./data/BHU_tcpdump/tcpdump',d[0],d[1],d[2],'/usr/sbin/') tcpdump_control.scp_to_remote('./data/BHU_tcpdump/libpcap.so.1.3',d[0],d[1],d[2],'/usr/lib/') #ssh登录路由输入tcpdump抓包 wanlog = capture_wan_packet() #将抓到的封包传输回本地pc tcpdump_control.scp_to_local(d[0],d[1],d[2],wanlog,'./data/') #打开本地下载的文件,读取文件内容 f = open('./data/wanlog') log = f.read() f.close() '''#获取路由网关ID gw = general_control.get_gatewayId(self) #路由mac r_mac = ssh.ssh_cmd2("ifconfig eth0 | grep HWaddr | awk '{print$5}'") R_MAC = r_mac.upper() #路由版本 r_version = ssh.ssh_cmd2('cat /etc/version/version') R_VERSION = r_version.upper() #路由无线mac wlan_mac = ssh.ssh_cmd2("ifconfig wlan0 | grep HWaddr | awk '{print$5}'") WLAN_MAC = wlan_mac.upper()''' #正确的心跳ping信息字符如下 ping_str1 = 'GET /index/ping/?gw_id=' #ping_str2 = 'route_mac=%s&route_version=%s&wlan_mac_0=%s'%(R_MAC,R_VERSION,WLAN_MAC) if ping_str1 in log: #ping信息在log信息中,说明有心跳信息,结果赋值1 result = 1 else: #ping信息不在log信息中,说明没有心跳信息,结果赋值0 result = 0 #结果返回给函数 return result
def capture_wlan_packet(): #调用ssh的默认登录ip,用户名和密码 d = data.ssh_user() tcpdump_control.tcpdump_command(d[1],d[0],d[2],'tcpdump -i wlan0 -s0 -w /tmp/wlanlog') return '/tmp/wlanlog'