AP版本间反复升级测试脚本

Zss 发表于:

在通过云平台来对ap的版本来进行升级的时候发现,有的时间可以升级成功,有的时候不行,但是出现失败的情况不是很多

所以通过一个脚本来定时发送请求来模拟手工的升级操作,反复升级在两个版本之间来反复切换,起初认为是自己打包的文件有问题,

之后发现偶尔出现升级失败的情况,所以想着使用脚本来实现反复的版本间的升级操作来确定是否存在问题

通过抓包,发现自己的ap所处的位置和固件的id号,不断的模拟这两个请求来来操作既可以实现想要的操作了,再记录下操作的版本和时间

与云平台的升级信息做对比既可以发现出现问题

#coding:utf-8
import requests
import time
from lxml import etree

def get_token():
    ip = '52.x4.5x.2x'
    url = 'http://{}/login'.format(str(ip))
    headers = {
    'Authorization':'Basic xxxxxxxxxxxxxxxx=',
    'Host':'{}'.format(str(ip)),
    'Referer':'http://{}/login'.format(str(ip))
    }
    rsp = requests.get(url=url,headers=headers).text
    token = rsp[10:][:-13]
    return token

def get_version():
    url = 'http://192.168.99.252/cgi-bin/luci'
    rsp = requests.get(url).content
    xml = etree.HTML(rsp)
    version = xml.xpath('//*[@id="rightinfo"]/p[2]/text()')[0].split(':')[1].strip()
    return version

def main():
    while 1:
        try:
            version = get_version()
            token = get_token()
            headers = {'Host':'52.74.53.225',
                'Connection':'keep-alive',
                'Accept':'application/json, text/plain, */*',
                'X-Auth-Token':token,
                'User-Agent':'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
                'Origin':'http://52.74.53.225',
                'Content-Type':'application/json;charset=utf-8',
                'Referer':'http://52.74.53.225/aps?sortOrder=desc',
                'Accept-Encoding':'gzip, deflate',
                'Accept-Language':'zh-CN,zh;q=0.9'}
            print  '-'*30
            print  '时间:%s  当前版本:%s  --->   升级后版本:2.2.0.1715'%(time.strftime("%Y-%m-%d-%X"),version)
            url = 'http://52.74.53.225/sites/9/aps/627/updateFirmware?firmwareId=34&startTime=1537267743000'
            rsp = requests.patch(url,headers=headers).status_code
            print  '状态码:%d'%rsp
            time.sleep(600)
            print '-'*30
            print  '时间:%s  当前版本:%s  --->   升级后版本:2.2.0.1712'%(time.strftime("%Y-%m-%d-%X"),version)
            url = 'http://52.74.53.225/sites/9/aps/627/updateFirmware?firmwareId=31&startTime=1537267743000'
            rsp = requests.patch(url,headers=headers).status_code
            print  '状态码:%d' % rsp

        except Exception as e:
            print '错误:',e



if __name__ == '__main__':
    main()