本文实例讲述了python实现的多线程http压力测试代码。分享给大家供大家参考,具体如下:
# 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()
希望本文所述对大家python程序设计有所帮助。
更多python实现的多线程http压力测试代码。