Advertisement
Guest User

WebBenchmark

a guest
Jun 29th, 2015
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.25 KB | None | 0 0
  1. #!/usr/bin/python
  2. from threading import Thread
  3. import urllib2
  4. from Queue import *
  5. import time
  6. import sys
  7.  
  8. class HttpRequest(Thread):
  9.     def __init__(self,queue,name,url):
  10.         print ("Creation de la requete {}".format(name))
  11.         self.queue=queue
  12.         self.creation=time.time()
  13.         Thread.__init__(self,name=name)
  14.     def run(self):
  15.         content = urllib2.urlopen(url).read()
  16.         print("Requete {} terminee : {} secondes écoulées".format(self.getName(),(time.time()-self.creation)))
  17.         self.queue.task_done()
  18.  
  19. def usage():
  20.     print("Usage : {} URL nbReqParSeconde nbSec".format(sys.argv[0]))
  21.     sys.exit()
  22.  
  23. def atoi(chaine):
  24.     retour=0
  25.     try:
  26.         retour=int(chaine)
  27.     except:
  28.         usage()
  29.     return retour
  30.  
  31. if __name__ == '__main__':
  32.     if(len(sys.argv)==4):
  33.         nbReqParSeconde=atoi(sys.argv[2])
  34.         nbSec=atoi(sys.argv[3])
  35.         url=sys.argv[1]
  36.         queues = list()
  37.         cpt=0
  38.  
  39.         try:
  40.             while(True):
  41.                 q=Queue(nbReqParSeconde)
  42.                 for i in range(0,nbReqParSeconde):
  43.                     http=HttpRequest(q,"%d"%cpt,url)
  44.                     http.start()
  45.                     q.put(http)
  46.                     cpt+=1
  47.                 queues.append(q)
  48.                 time.sleep(nbSec)
  49.         except KeyboardInterrupt:
  50.             print("Fermeture des queues")
  51.             cpt=1
  52.             for qu in queues:
  53.                 print("Fermeture de la queue %d"%cpt)
  54.                 q.join()
  55.                 cpt+=1
  56.     else:
  57.         usage()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement