Python实现的多线程http压力测试代码

331次阅读  |  发布于5年以前

本文实例讲述了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 URL操作技巧总结》、《Python Socket编程技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8