Вы находитесь на странице: 1из 25

Testing de Performance

Conceptos, Documentos y herramientas

Por Jose Pablo Sarco

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

Enfocadas en "Cunto?" y "Qu tan rpido?". La evaluacin apunta a medir si se cumplen los requerimientos establecidos por el cliente. Suelen llevarse a cabo en conjuncin con stress testing. Objetivo: predecir anticipadamente problemas de rendimiento y degradacin de recursos del sistema antes de su paso a produccin, y facilitar su correccin.

Conceptos
Performance

Remote Network
Tema 1

1 2 3 4
Virtual Testers Local Server Host

Conceptos
Por qu hacer pruebas de Performance?
Scott Barber: Para determinar o estimar varias caractersticas de performance bajo varias condiciones

Se hace para tener un estimativo de cmo puede llegar a responder la aplicacin en el ambiente de produccin (es imposible saber exactamente como va a responder, ya que nunca se tienen los datos o el equipamiento necesario) Para saber si alcanza las expectativas de performance del cliente, es decir, la nica meta es darle valor agregado al usuario final.

Tcnicamente, se obtiene la siguiente informacin: Evaluar la entrega: Cumple con lo que espera el cliente?; Cmo se estima que funcione la aplicacin en produccin? Evaluar la infraestructura elegida: Es adecuada para la capacidad que va a soportar?; Se comparo con otras tecnologas?; Se producen cuellos de botella?

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.

Beneficios en cada tipo de Test


Test
Performanc e

Beneficios
Determina las caractersticas de velocidad, caracter escalabilidad y estabilidad de una aplicacin. aplicaci Se enfoca en determinar si el usuario del sistema va a estar satisfecho con las caractersticas de performance de la caracter aplicacin. aplicaci Identificar coincidencias entre las expectativas de performance y la realidad Soporta tunning, capacidad de tunning, planeamiento y optimizacin del trabajo. optimizaci

Retos y puntos que no tiene en cuenta


Puede no detectar algunos errores funcionales que solo aparecen en las pruebas de carga. Si no es diseado y validado dise correctamente, puede arrojar resultados muy poco significativos a lo que ocurrir en produccin. ocurrir producci A menos que las pruebas se realicen en el ambiente de produccin, desde las mismas producci maquinas de los usuarios finales, siempre habr un grado de habr incertidumbre en los resultados. No esta diseado para enfocarse dise primordialmente en la velocidad de respuesta Los resultados pueden ser usados nicamente para compara con otras pruebas de carga

Prueba de Carga

Determina el throughput requerido para soportar anticipadamente los picos en produccin producci Determina si el hardware del ambiente es adecuado Determina si el Load Balancer es adecuado Detecta problemas de concurrencia Detecta errores funcionales durante la carga Ayuda a determinar cuantos usuarios puede manejar la aplicacin antes que la aplicaci performance se vea afectada.

Beneficios en cada tipo de Test


Test Stress Beneficios 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. Retos y puntos que no tiene en cuenta Como las pruebas de stress son irreales, los usuarios finales pueden no considerar los resultados. Es difcil determinar cuanto stress es necesario aplicar en la aplicacin. Puede ocasionar grande fallas en la aplicacin y la red.

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.

No olvidarse de la base de datos


Para aplicaciones web transaccionales las mtricas mas comunes son numero de usuarios concurrentes y tiempo de respuesta. Sin embargo, un solo usuario con todo el sistema para l puede experimentar un rendimiento diferente, dependiendo de la cantidad de datos que existan en la base de datos. Por lo tanto, los requerimientos de performance deben incluir mtricas para el tamao de base de datos esperado y ese tamao debe ser reproducido en el ambiente de pruebas.

Identificar los CU crticos


Los CU crticos son aquellos donde es necesaria una rpida respuesta a la vista del usuario final o aquellos para los cuales hay un riesgo de performance. Otra cosa a considerar es que no es necesario probar demasiado caminos no muy frecuentes, pero debe asegurarse que cumplan con los requerimientos las pocas veces que son llamadas. Finalmente, por cada caso de uso critico debemos poner foco en los escenarios que son ejecutados mas frecuentemente y son crticos para la percepcin del usuario final sobre la performance de la aplicacin.

Herramientas
Comerciales
Excelentes opciones en GUI Muchos tutoriales y ejemplos Mayor anlisis de resultados Costosas Poco flexibles y pesadas Contras

Open Source
A montones (Debe haber cerca de 20 aprox) Se encuentra mucha ayuda en los grupos de mails Son Gratis Muy Flexibles y livianas Contras A veces faltan tutoriales y ejemplos Depende mucho del grado de avance en que se encuentre Poco anlisis de resultados

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 Evaluacin Evaluaci Protocols Descripcin Descripci Los protocolos de comunicacin que comunicaci pueden ser capturados, manipulados y simulados por la aplicacin aplicaci Ejecucin de los Ejecuci scripts y facilidades de debug los scripts OpenSTA HTTP 1.0 / 1.1 / HTTPS (SSL), SOAP/XML Apache JMeter HTTP,FTP, HTTP,FTP, SOAP/XMLSOAP/XMLRPC,JDBC WebLoad HTTP/S, WAP, AJAX, ActiveX, ActiveX, Java, Web services. Es services. posible grabar scripts con multi protocolo Vista extendida del log. El cual log. muestra los pedidos y los datos de respuesta. LoadRunner Soporta muchos. Los protocolos son cargados por tem. Tiene una opcin de opci grabacin por multi-protocolo grabaci multi-

Playback functions

Vista extendida del log donde se ven los calores de los parmetros y par los mensajes del servidor.

Es una herramienta GUI. Entonces hay muchos GUI Listeners, los cuales son usados para capturar la grabacin y grabaci replicar los mensajes. La parametrizaci parametrizaci n se puede hacer por interfaz, en el control Users Parameters. Parameters

Vista extendida del log donde se ven los valores de los parmetros y los par mensajes del servidor. Tambin permite ver y Tambi comparar la versin grabada versi de la pagina y los mensajes del servidor. Tiene una opcin para hacer debug en opci el generador de scripts. Gran cantidad de facilidades para data entry, incluyendo entry, interfaces Wizard para generar automticamente autom datos de prueba.

Parametrizacin Parametrizaci

Cambio dinmico din de valores para variables pasadas desde el cliente al servidor durante el POST para asegurar una simulacin mas simulaci real del comportamiento del usuario.

Gran cantidad de facilidades para data entry, entry, incluyendo interfaces Wizard para generar automticament autom e datos de prueba.

Gran cantidad de facilidades para data entry, entry, incluyendo interfaces Wizard para generar automticamente autom datos de prueba.

Herramientas
Comparativa Criterio de Evaluacin Evaluaci Simulacin Simulaci de la velocidad de conexin de conexi los usuarios Reportes y anlisis an Descripcin Descripci Habilidad de emular las diferentes velocidades de la red que pueden ser utilizadas por los usuarios Facilidades para examinar e investigar los resultados de las pruebas incluyendo contadores y recursos monitoreados. OpenSTA No lo permite. Apache JMeter No lo permite. Pero puede programarse en JAVA WebLoad No lo permite en la version Open Source LoadRunner Puede emular diferentes velocidades de la red durante la ejecucin. ejecuci

Grficos Gr simples y suficientes como para analizar los resultados de carga y uso de recursos. Los grficos gr pueden ser exportados a Excel.

Puede crear grficos pero gr no reportes.

WebLOAD Console muestra reportes online de las sesiones que estn corriendo. est El usuario puede crear sus propias vistas de las estadsticas que estad estos reportes muestran. Se puede ir cambiando de reportes grficos gr o textuales (Tablas) Permite agregar objetos Java, ActiveX o COM en los test Scripts. El framework de WebLoad es flexible y facilita la

Posee una gran cantidad de grficos sofisticados con gr muchsimas facilidades. much Genera repotes automticos autom en Word. Se pueden obtener reportes por cada usuario simulado.

Extensibilida d

La habilidad de incrementar la funcionalidad de la herramienta.

Pueden escribirse mdulos en SCL. Adems Adem al ser OpenSource van

Funciones Beanshell/JA Beanshell/JA VA pueden ser definidas y ser usadas como plug-in plug-

Libreras adicionales en TSL o Librer 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!!!!

Jose Pablo Sarco sarcojp@hotmail.com

Вам также может понравиться