您现在的位置是:首页 > 后端 > python网站首页python

多线程http压力测试

简介# Python version 3.3 __author__ = 'Toil' import sys, getopt import threading def httpGet(url, file): i
# Python version 3.3
__author__ = 'Toil'

import sys, getopt
import threading

def httpGet(url, file):
    import http.client
    conn = http.client.HTTPConnection(url)

    conn.request("GET", file)
    r = conn.getresponse()
    #print(r.getheaders())

    while not r.closed:
        r.read(200)

    conn.close()

def Usage():
    print('''
    Options are:
    -c concurrency  Number of multiple requests to make
    -u host         The host
    -f file         File on web

    Example: httpget.py -c 100 -u www.example.com -f /
    ''')

if __name__ == '__main__':
    opts, args = getopt.getopt(sys.argv[1:], "hc:u:f:")
    global u, c, f
    for op, value in opts:
        if op == '-c':
            c = int(value)
        elif op == '-u':
            u = value
        elif op == '-f':
            f = value
        elif op == '-h':
            Usage()
            sys.exit(0)
        else:
            sys.exit(0)

    threads = []
    times = c

    print('Test for ', u, f)
    print('waiting...')
    for i in range(0, times):
        t = threading.Thread(target=httpGet(u, f))
        threads.append(t)
    for i in range(0, times):
        threads[i].start()
    for i in range(0, times):
        threads[i].join()


文章评论

Top