这篇文章主要介绍了 Python 实现的多线程 http 压力测试代码, 结合实例形式分析了 Python 多线程操作的相关实现技巧, 需要的朋友可以参考下
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
本文实例讲述了 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 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0323/324823.html