Script en python para estresar
Coge un fichero con urls y aleatoriamente accede a direcciones del fichero
stress.py
—
Python Source,
1Kb
Contenido del Archivo
import os
import re
import random
import urllib2
import time
import sys
quiet=0
verbose=0
begin_time=time.time()
end_time=begin_time+10
url_file="url.list"
for a in sys.argv:
if a=="-q":
quiet=1
if a=="-v":
verbose=1
if a[:2]=="-f":
url_file=a[2:]
if a[:2]=="-t":
end_time=begin_time+float(a[2:])
pattern=re.compile("(http://.*)")
def getUrlString(line):
res=pattern.findall(line)
return res
def getUrl(url):
tiempo=time.time()
f=urllib2.urlopen(url)
contenido=f.read()
f.close()
tiempo=time.time() - tiempo
size=len(contenido)
return (tiempo,size)
file=open(url_file)
lineas=file.readlines()
file.close()
total=len(lineas)
t=1
media=0
peor=111111110
total_Kbytes=0
while end_time>time.time():
azar=random.choice(lineas)
try:
url=getUrlString(azar)
if len(url) is 1:
#print "%s" % url[0]
tiempo,tam =getUrl(url[0])
total_Kbytes=total_Kbytes+tam/1024
velocidad=0
if tiempo>0:
velocidad=(tam/tiempo)/1024
if velocidad<peor:
peor=velocidad
media=media+(velocidad/t)
if verbose:
print "t: %4.2f, v: %5.2f,v_media KBps: %5.2f tam: %dK - %s" % (tiempo,velocidad,media,tam/1024,url[0])
if not quiet and not verbose:
print "(%d), vel_media:%.2f KB/s" %(t,media)
t=t+1
except urllib2.HTTPError:
pass
print "Error en: %s" % azar
tiempo_total=time.time()-begin_time
t=t-1
print "%d accesos, %.1f seg, %.3f accesos/seg, KB:%d, vel.media=%.2f KB/s, Peor velocidad=%.2f" % (t,tiempo_total,t/tiempo_total,total_Kbytes,total_Kbytes/tiempo_total,peor)

