Bonjour à tous (et à toutes ?),
Je poste un petit script que j'ai fait et qui permet de faire des Benchmarks de serveurs Web en HTTP.
N'hésitez surtout pas à me faire des remarques dessus, je suis loin d'être expertisé en python !
Par contre, je serai très heureux de l'améliorer.
Voici le script :
Dans un pastebin : http://pastebin.com/rg0N1hXf
Sur le forum :
L'utilisation se fait via la ligne de commande et de la manière suivante :
WebBenchmark.py http://monsite.com 80 10
Dans cet exemple, on envoie au site http://monsite.com 80 requêtes toutes les 10 secondes.
On pourra ainsi voir le temps nécessaire pour chaque requête. Il peut également être intéressant de combiner ça avec un petit htop sur la machine ciblée.
Pour stopper l'utilisation un simple CTRL+C suffit.
Petit Disclaimer:
L'utilisation de ce script peut s'apparenter à du Déni de Service, utilisez le donc uniquement sur vos machines ou avec une autorisation préalable
Je poste un petit script que j'ai fait et qui permet de faire des Benchmarks de serveurs Web en HTTP.
N'hésitez surtout pas à me faire des remarques dessus, je suis loin d'être expertisé en python !
Par contre, je serai très heureux de l'améliorer.
Voici le script :
Dans un pastebin : http://pastebin.com/rg0N1hXf
Sur le forum :
Code:
#!/usr/bin/python from threading import Thread import urllib2 from Queue import * import time import sys class HttpRequest(Thread): def __init__(self,queue,name,url): print ("Creation de la requete {}".format(name)) self.queue=queue self.creation=time.time() Thread.__init__(self,name=name) def run(self): content = urllib2.urlopen(url).read() print("Requete {} terminee : {} secondes écoulées".format(self.getName(),(time.time()-self.creation))) self.queue.task_done() def usage(): print("Usage : {} URL nbReqParSeconde nbSec".format(sys.argv[0])) sys.exit() def atoi(chaine): retour=0 try: retour=int(chaine) except: usage() return retour if __name__ == '__main__': if(len(sys.argv)==4): nbReqParSeconde=atoi(sys.argv[2]) nbSec=atoi(sys.argv[3]) url=sys.argv[1] queues = list() cpt=0 try: while(True): q=Queue(nbReqParSeconde) for i in range(0,nbReqParSeconde): http=HttpRequest(q,"%d"%cpt,url) http.start() q.put(http) cpt+=1 queues.append(q) time.sleep(nbSec) except KeyboardInterrupt: print("Fermeture des queues") cpt=1 for qu in queues: print("Fermeture de la queue %d"%cpt) q.join() cpt+=1 else: usage()
WebBenchmark.py http://monsite.com 80 10
Dans cet exemple, on envoie au site http://monsite.com 80 requêtes toutes les 10 secondes.
On pourra ainsi voir le temps nécessaire pour chaque requête. Il peut également être intéressant de combiner ça avec un petit htop sur la machine ciblée.
Pour stopper l'utilisation un simple CTRL+C suffit.
Petit Disclaimer:
L'utilisation de ce script peut s'apparenter à du Déni de Service, utilisez le donc uniquement sur vos machines ou avec une autorisation préalable
Commentaire