Exemple #1
0
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
Exemple #2
0
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
Exemple #4
0
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
Exemple #5
0
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
Exemple #6
0
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
Exemple #7
0
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)
Exemple #8
0
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
Exemple #9
0
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'