Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Testing de Performance
Testing de Performance
Performance
Conceptos, Documentos y
herramientas
Agenda
Conceptos
Por qu hacer pruebas de Performance?
Beneficios en cada tipo de test
Documentacin
Metodologa
Performance Test Plan
Reporte Final de Performance
Conceptos importante
Buenas Practicas
Herramientas
Comparativa
Jmeter
Conceptos Bsicos
Creacin Manual de Test Plan
Grabacin de Test Plan
Bad Boy
Jmeter
Recoleccin de Resultados
Links de Inters y preguntas
Conceptos
Performance
Conceptos
Performance
Remote
Network
Tema 1
1
2
3
4
Virtual
Testers
Host
Local
Server
Conceptos
Por qu hacer pruebas de Performance?
Conceptos
Load Testing
Se centra en "Cunto?" puede manejar la aplicacin.
La idea de estas pruebas es poner al lmite de las especificaciones la cantidad de usuarios
simultneos en la aplicacin y acercarse lo mas posible a como va a reaccionar la aplicacin en el
mundo real.
Existen dos ramas:
Longevity testing: Evaluar la estabilidad del sistema para manejar una constante carga de
trabajo durante un periodo extenso.
Volume Testing: Poner al sistema al limite de carga de trabajo durante un periodo corto.
Stress Testing
Recoge diversos resultados en materia de mediciones sobre diversos modelos de carga y
actividades que son ms "estresantes" de lo que la aplicacin va a utilizar a la hora de entregarse
a los verdaderos usuarios (excede las especificaciones).
Nos indica como va a reaccionar el sistema cuando este pasa su limite de funcionamiento.
Prueba de
Carga
Beneficios
Determina las caracter
caractersticas de velocidad,
escalabilidad y estabilidad de una
aplicaci
aplicacin.
Se enfoca en determinar si el usuario del
sistema va a estar satisfecho con las
caracter
caractersticas de performance de la
aplicaci
aplicacin.
Identificar coincidencias entre las
expectativas de performance y la realidad
Soporta tunning,
tunning, capacidad de
planeamiento y optimizaci
optimizacin del trabajo.
No esta dise
diseado para enfocarse
primordialmente en la velocidad de
respuesta
Los resultados pueden ser usados
nicamente para compara con
otras pruebas de carga
Beneficios
Stress
Determinar si la informacin se
corrompe cuando la aplicacin se lleva
mas all de sus limites.
Determinar un estimativo de cuan lejos
(antes de ocasionar errores y lentitud)
puede llegar una aplicacin llevando al
limite el objetivo de carga.
Ayuda a determinar que clase de fallas
son mas importantes para manejar.
Documentacin
Metodologa
Relevamiento
Planificacin
Construccin
Ejecucin
Anlisis
Documentacin
Metodologa
Planificacin: Tiene como objetivo la correcta caracterizacin de la carga de trabajo.
Obtencin de requisitos.
Eleccin de las mtricas adecuadas.
Eleccin del tipo de pruebas.
Descripcin del sistema a probar.
Caracterizacin de la carga de trabajo.
Construccin: Tiene como Objetivo la Construccin de los Test Scripts y la
configuracin del ambiente de pruebas.
Definicin de Escenarios
Distribucin de tareas
Coordinacin con encargados de Servidor de Pruebas
Documentacin
Metodologa
Ejecucin: Tiene como objetivo correr los Test Scripts desarrollados en la etapa de
construccin.
Dependiendo del tamao del proyecto puede ocurrir 1 o varias veces.
Se registran las fecha y hora de ejecucin
Anlisis: Tiene como Objetivo recabar toda la informacin generada por las pruebas,
procesarla de manera que se pueda interpretar, sacar conclusiones y proponer
recomendaciones de cambio.
Recopilacin de Resultados
Foco en mtricas mas significativas
Definicin de grficos mas adecuados para mostrar la informacin
Proponer recomendaciones en funcin de los resultados obtenidos
Conceptos importantes
Average (Promedio): matemticamente se refiere a al promedio del juego de datos. Es una
medida que por si sola dice muy poco sobre lo resultados, pero nos da una idea de cual es el
comportamiento general de la aplicacin. Median (Mediana): Simplemente es el valor medio del
juego de datos cuando estos son ordenados de menor a mayor. En los casos en que la
cantidad de datos es par, se toman los dos valores centrales y se saca el promedio de estos.
Standard Deviation (Desvi Standard): Es la cantidad de diferencia dentro del juego de datos
que abarca la parte superior de aproximadamente el 68 % de todas las mediciones en el juego
de datos. Esto significa que mientras mas grande es este numero menos coherente son los
resultados obtenidos. Una norma utilizada para esta mtrica es: Los datos con una desviacin
estndar superior a la mitad de su media debe ser tratada como sospechosa. Si es
exactamente ese valor, el juego de datos no tiene una distribucin normal.
Throughput (Rendimiento): Es la tasa promedio de mensajes entregados satisfactoriamente.
Comnmente se mide en bits por segundos (bps).
Latency (Latencia): Tiempo necesario para reunir la solicitud y el montaje de la respuesta.
90% Line: Es el valor por debajo del cual el 90% de las muestras fallan.
Buenas practicas
Tener objetivos y mtricas claras y con la aprobacin del cliente
Idealmente esto debera ser parte fundamental del proceso de Performance Testing, ya que sin un
objetivo claro para cumplir, el proceso se vuelve un camino sin fin que puede dejar insatisfecho al
usuario final en cuanto a la Performance de la aplicacin si sus expectativas no fueron
correctamente contabilizadas.
Herramientas
Comerciales
Contras
Costosas
Open Source
A montones (Debe haber cerca de
20 aprox)
Se encuentra mucha ayuda en los
grupos de mails
Contras
A veces faltan tutoriales y
ejemplos
Son Gratis
Desarrollo Propio
Para aplicar en tecnologa
demasiado nueva
Contras
Solo si se planea seguir
mejorando y adaptando a otras
tecnologas
Flexibles
Herramientas
Comparativa
Criterio de
Evaluaci
Evaluacin
Descripci
Descripcin
OpenSTA
Apache
JMeter
WebLoad
LoadRunner
Protocols
Los protocolos de
comunicaci
comunicacin que
pueden ser
capturados,
manipulados y
simulados por la
aplicaci
aplicacin
HTTP,FTP,
HTTP,FTP,
SOAP/XMLSOAP/XMLRPC,JDBC
HTTP/S, WAP,
AJAX, ActiveX,
ActiveX,
Java, Web
services.
services. Es
posible grabar
scripts con multi
protocolo
Playback
functions
Ejecuci
Ejecucin de los
scripts y
facilidades de
debug los scripts
Vista extendida
del log donde se
ven los calores
de los
par
parmetros y
los mensajes
del servidor.
Es una
herramienta
GUI. Entonces
hay muchos
GUI Listeners,
los cuales son
usados para
capturar la
grabaci
grabacin y
replicar los
mensajes.
Vista extendida
del log.
log. El cual
muestra los
pedidos y los
datos de
respuesta.
Parametrizaci
Parametrizacin
Cambio din
dinmico
de valores para
variables pasadas
desde el cliente al
servidor durante
el POST para
asegurar una
simulaci
simulacin mas
real del
comportamiento
del usuario.
Gran cantidad
de facilidades
para data entry,
entry,
incluyendo
interfaces
Wizard para
generar
autom
automticament
e datos de
prueba.
La
parametrizaci
parametrizaci
n se puede
hacer por
interfaz, en el
control Users
Parameters
Parameters.
Gran cantidad de
facilidades para
data entry,
entry,
incluyendo
interfaces Wizard
para generar
autom
automticamente
datos de prueba.
Herramientas
Comparativa
Criterio de
Evaluaci
Evaluacin
Descripci
Descripcin
OpenSTA
Apache
JMeter
WebLoad
LoadRunner
Simulaci
Simulacin
de la
velocidad de
conexi
conexin de
los usuarios
Habilidad de emular
las diferentes
velocidades de la
red que pueden ser
utilizadas por los
usuarios
No lo permite.
No lo permite.
Pero puede
programarse
en JAVA
No lo permite en
la version Open
Source
Reportes y
an
anlisis
Facilidades para
examinar e
investigar los
resultados de las
pruebas incluyendo
contadores y
recursos
monitoreados.
Gr
Grficos
simples y
suficientes
como para
analizar los
resultados de
carga y uso
de recursos.
Los gr
grficos
pueden ser
exportados a
Excel.
Puede crear
gr
grficos pero
no reportes.
WebLOAD
Console muestra
reportes online de
las sesiones que
est
estn corriendo.
El usuario puede
crear sus propias
vistas de las
estad
estadsticas que
estos reportes
muestran. Se
puede ir
cambiando de
reportes gr
grficos
o textuales
(Tablas)
Extensibilida
d
La habilidad de
incrementar la
funcionalidad de la
herramienta.
Pueden
escribirse
mdulos en
SCL. Adem
Adems
al ser
OpenSource
van
Funciones
Beanshell/JA
Beanshell/JA
VA pueden
ser definidas
y ser usadas
como plugplug-in
Permite agregar
objetos Java,
ActiveX o COM en
los test Scripts. El
framework de
WebLoad es
flexible y facilita la
Librer
Libreras adicionales en TSL o
C , limitado por las
capacidades funcionales de la
herramienta.
Jmeter
Conceptos bsicos
Qu es Jmeter?
Es una herramienta Java la cual fue diseada para hacer pruebas de carga
en aplicaciones Web, pero se expandi a otras funciones. Tpicamente es usada
para medir Performance y Pruebas de carga, es una herramienta OpenSource.
Jmeter
Conceptos bsicos
Cmo Funciona?
Jmeter
Conceptos bsicos
ThreadGroup
Es el punto de inicio de cualquier Test Plan. Todos los controles y samplers
deben estar debajo del ThreadGroup. Otros elementos, como Listeners, pueden
estar en la misma jerarqua.
Controla el numero de threads (Usuarios virtuales) que se usaran en la
ejecucin de las pruebas. Las opciones que tiene son:
Number of threads: Cantidad de usuarios. Cada thread ejecuta el
Test Plan entero en forma independiente.
Ramp-up Period: Le indica a Jmeter el periodo de tiempo en que se
llegara al numero total de usuarios. Si son usados 10 threads y el
ramp-up es de 100 seg, entonces Jmeter se tomara 100 segundos
para crear y correr los 10 threads. Cada thread sera creado 10 seg
(100/10) despus de la creacin del Thread anterior.
Loop Count: Cantidad de veces que se correr el Test Plan.
Scheduler: Brinda mas opciones a la ejecucin de las pruebas.
Podemos agregar la hora de comienzo y la hora de fin, los campos
Duracin y Delay reemplazan a los dos anteriores.
Jmeter
Conceptos bsicos
Samplers
Le indica a Jmeter como mandar los pedidos al servidor. Cada sampler tiene
caractersticas diferentes y puede mejorarse agregando elementos de
configuracin(Configuration Elements ).
Los tipos de samplers son:
Jmeter
Conceptos bsicos
Controladores Lgicos
Permite configurar la lgica que Jmeter usa para decidir cuando mandar un
request.
Los controladores lgicos son:
Jmeter
Conceptos bsicos
Timers
Por default los Thread de Jmeter mandan los pedidos sin pausa. El agregado
de timers dan la posibilidad de especificar el Think Time para que las pruebas
sean mas reales. Hay diferentes tipos segn la necesidad del escenario de
pruebas.
Assertions
Permiten validar hechos (sucesos) acerca de las respuestas del servidor en
la ejecucin de las pruebas. Usando assertions se puede testear que la
aplicacin esta funcionando correctamente, recibiendo las respuestas esperadas
del servidor. Pueden ser agregados a cualquier sampler.
Configuration Elements
Trabajan junto a los samplers. Si bien no mandan pedidos, pueden agregar
a o modificar los pedidos. Los mas usados son HTTP Cookie Manager, HTTP
Request Default, User Defined Variables estre otras
Jmeter
Conceptos bsicos
Pre-Processor Element
Ejecutan acciones antes que un sampler realice un pedido. Comnmente es
utilizado para modificar la configuracin del sampler justo antas que se ejecute o
para actualizar variables que no son extradas del texto de respuesta. El mas
utilizado es el HTTP URL Re-writing Modifier para el manejo de sesiones de
usuario.
Post-Processor Element
Ejecutan acciones despues que un sampler realice un pedido. Comnmente
es utilizado para procesar los datos de respuesta o extraer informacin de esta.
El mas utilizado es el Regular Expression Extractor para extraer los valores de
ciertos tags del HTML.
Orden de Ejecucin
Los componentes de Jmeter se ejecutan con el siguiente orden de prioridad:
Configuration elements
Pre-Processors
Timers
Sampler
Post-Processors
Assertions
Listeners
Links de Inters
Performance
http://www.sqaforums.com/postlist.php?Board=UBB2
http://www.perftestplus.com
http://searchsoftwarequality.techtarget.com/topics/0,295493,sid92_tax306129,00.ht
ml
http://www.logigear.com/resources/article_links_-_test_types/load_performance.asp
http://members.tripod.com/~bazman/loadtest.html?button9=Load+Testing+of+We
bsites
Jmeter
Pagina oficial: http://jakarta.apache.org/jmeter/
Bad Boy: http://www.badboy.com.au/
Otras:
http://vamshisomanchi.wordpress.com/2008/04/28/jmeter-stress-testing/
http://www.javaworld.com/javaworld/jw-07-2005/jw-0711-jmeter.html?page=1
http://www.osmosislatina.com/jmeter/basico.htm (en espaol)
http://www.sqaforums.com/postlist.php?Cat=0&Board=UBB54&page=1
Muchas Gracias!!!!