py http测试工具

来源:互联网 发布:养生软件下载排行榜 编辑:程序博客网 时间:2024/06/12 20:45

test_date.py

# -*- coding: utf-8 -*-import time;def echo_time(dt):    time_array = time.strptime(dt, "%Y-%m-%d")    print dt + "\t" + str(long(time.mktime(time_array)) * 1000)def echo_time_f(dt, f):    time_array = time.strptime(dt, f)    print dt + "\t" + str(long(time.mktime(time_array)) * 1000)def echo_time_m(timestamp):    time_local = time.localtime(timestamp / 1000)    print time.strftime("%Y-%m-%d %H:%M:%S", time_local)def test_date():    # print long(time.time())*1000    echo_time_m(1498838400000)    echo_time_m(1501516799999)    echo_time_m(1508486066239)    echo_time_f("2017-09-06 16", "%Y-%m-%d %H")    echo_time("2017-07-01")    echo_time("2017-07-30")    echo_time("2017-07-31")    echo_time("2017-08-01")    echo_time("2017-08-14")    echo_time("2017-08-20")    echo_time("2017-08-21")    echo_time("2017-08-27")    echo_time("2017-08-28")    echo_time("2017-09-01")    echo_time("2017-09-03")    echo_time("2017-09-04")    echo_time("2017-09-07")    echo_time("2017-09-11")test_date()

test_url.py

# -*- coding: utf-8 -*-from http_base import postlocal = 'local'test = 'test'md5 = 'md5'token = "token"# post(local, md5, "getUserPrivilege?appKey=5252515142&thirdAccountId=zlf&channelId=GZGD")# post(local,token,"getPackageInfo?packageId=501701&appKey=5252515142&mac=aaa&wsId=237449&channelId=GZGD&loginToken=237449&mac=12")

http_base.py

import urllib2, urllib, hashlib, time, json, math, httpssec = "NIaKxmywqF"def md5(src):    m2 = hashlib.md5()    m2.update(src)    return m2.hexdigest()def to_string(dic):    s = ""    keys = dic.keys()    keys.sort()    for k in keys:        s += "&" + k        s += "=" + str(dic[k])    return s[1:] + secdef post(env, encode_type="md5", url=""):    host = get_host(env)    param = parse_param(url)    if encode_type == 'md5':        param["sign"] = md5(to_string(param))    elif encode_type == 'token':        param["v"] = 1        param["t"] = int(time.time())        param["token"] = md5("xxx" + str(param["t"]))    begin = time.time()    do_post(host + url[0:url.find("?")], param)    print str(math.floor((time.time() - begin) * 1000)) + "ms"    returndef do_post(url, param):    try:        print url        print param        post_data = urllib.urlencode(param)        request = urllib2.Request(url, post_data)        response = urllib2.urlopen(request)        result = response.read()        result = result.replace('''\\"''', '''"''')        result = result.replace('''content":"''', '''content":''')        result = result.replace('''","type":0''', ''',"type":0''')        print result        try:            print(json.dumps(json.loads(result), indent=4, sort_keys=False, ensure_ascii=False))        except Exception as e:            print e    except Exception as ex:        print ex    finally:        print "final"  # print responsedef get_host(env):    host = ""    if env == "local":        host = "http://localhost:9030/bms/is/"    elif env == "test":        host = "https://xx:9930/bms/is/"    elif env == "deploy":        host = "https://xxxx:9930/bms/is/"    return hostdef parse_param(url):    param = {}    query_string = url[url.find("?") + 1:]    for kv in query_string.split('&'):        k = kv.split('=')[0]        v = kv.split('=')[1]        param[k] = v    return param

https.py

import httplib, ssl, urllib2, socketclass HTTPSConnectionV3(httplib.HTTPSConnection):    def __init__(self, *args, **kwargs):        httplib.HTTPSConnection.__init__(self, *args, **kwargs)    def connect(self):        sock = socket.create_connection((self.host, self.port), self.timeout)        if self._tunnel_host:            self.sock = sock            self._tunnel()        try:            self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=ssl.PROTOCOL_SSLv23)        except ssl.SSLError, e:            print("TryingSSLv3.")            self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=ssl.PROTOCOL_SSLv23)class HTTPSHandlerV3(urllib2.HTTPSHandler):    def https_open(self, req):        return self.do_open(HTTPSConnectionV3, req)# install openerurllib2.install_opener(urllib2.build_opener(HTTPSHandlerV3()))# if __name__ == "__main__":#     r = urllib2.urlopen("https://www.baidu.com")#     print(r.read())