Herramientas Personales
Usted está aquí: Inicio Documentación Configuraciones Estresar a Zope Script en python para estresar

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)
Acciones de Documento