Testing de Performance

Documentos relacionados
Testing de Performance: estresando aplicaciones Genexus

PROVIAS NACIONAL INFORME TÉCNICO DE EVALUACIÓN DE SOFTWARE Nº MTC/ NOMBRE DEL ÁREA: Unidad de Informática

Ingeniería de Software. Pruebas

Comparación entre Active Reports, Crystal Reports, y MS Reporting Services

Funcionalidades Software PROYECTOS GotelGest.Net Software para la gestión de Proyectos GotelGest.Net

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Empresa Financiera Herramientas de SW Servicios

SQL Diagnostic Manager Nueva versión 6.0

Servicio de administración de pautas publicitarias en Internet

CMMI (Capability Maturity Model Integrated)

CAPÍTULO 3 Servidor de Modelo de Usuario

2. MÉTODOS, INSTRUMENTOS Y ESTRATEGIAS

Elementos requeridos para crearlos (ejemplo: el compilador)

App para realizar consultas al Sistema de Información Estadística de Castilla y León

CAPÍTULO IV METODOLOGÍA PARA EL CONTROL DE INVENTARIOS. En este capítulo se presenta los pasos que se siguieron para la elaboración de un sistema de

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Capacitación Rational Funcional Tester

Administración de Bases de Datos; Remota e In-Situ.

LiLa Portal Guía para profesores

Capítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias

2. Ejecutando JMeter en el laboratorio

Capítulo 5. Cliente-Servidor.

(PHP y APACHE), y el programa de comunicación Skype, para controlar de manera

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008

CRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler

Gestión de Oportunidades

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

DE VIDA PARA EL DESARROLLO DE SISTEMAS

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Capítulo 6: Conclusiones

UNIVERSIDAD DE SALAMANCA

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.


Guía de uso del Cloud Datacenter de acens

CAPÍTULO I PLANTEAMIENTO DEL PROBLEMA Y ANTECEDENTES. 1.1 Planteamiento del problema: Para qué sirve la modelación de un portafolio

Gustavo Vázquez. Jornada de Testing en Vivo - 1, 2, 3 probando!

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

PROCEDIMIENTO ESPECÍFICO. Código SB-V-01-1 Edición 0

GUIA GENERAL PARA LA EVALUACION DE PROGRAMAS

Presentación de Pyramid Data Warehouse

NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR

Sistema de Gestión de Proyectos Estratégicos.

10 razones para cambiarse a un conmutador IP

UNIVERSIDAD TECNOLOGICA DE HERMOSILLO SCRUM SPRINT #1. Ingenieria de Software I MAESTRO: BERNARDO PRADO DIAZ INTEGRANTES. Jorge Valdano.

Roles y Características

Integración de Magento & Dynamics NAV

Introducción. A continuación te presentamos 6 aspectos que todo retailer debe conocer acerca de sus clientes.


GESTIÓN DE CAPACIDAD DE SERVICIOS TI: UNA SOLUCIÓN DESDE ITIL

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Artículo dedicado a la Innovación y Mejores Prácticas en la Ingeniería de Negocios

ing Solution La forma más efectiva de llegar a sus clientes.

Instructivo de uso vfound Easy SEO v1.5.5

Capítulo 4 Pruebas e implementación de la aplicación CAPÍTULO 4 PRUEBAS E IMPLEMENTACIÓN DE LA APLICACIÓN

Aspectos Básicos de Networking

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

BuCo. Graphical web billing tool

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Bechtle Solutions Servicios Profesionales

Guía de instalación de Citrix EdgeSight for Load Testing. Citrix EdgeSight for Load Testing 3.7

La presente tesis pretende que los estudiantes observen la teoría de las acciones de control

Escuela de Ingeniería Electrónica CAPITULO 11. Administración avanzada de los NOS

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

Módulo: Indicadores de Eficacia y Eficiencia en los Procesos

EL PROCESO DE BENCHMARKING

Mantenimiento de Sistemas de Información

Seguimiento y evaluación

ANEXO : PERFILES. Guía de Comunicación Digital para la Administración General del Estado. ANEXO PERFILES

POR QUE ES IMPORTANTE ESTABLECER OBJETIVOS EN LA PLANIFICACIÓN DE UN CURSO?

Copyright bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler

AVA-QHSE System. Introducción Características del producto Especificaciones Técnicas

Técnico y sus funciones. 5. Función de los líderes. 6 Función del analista de datos. 6. Metas del Help Desk. 7 Definir el alcance del Help Desk.

Decisión: Indican puntos en que se toman decisiones: sí o no, o se verifica una actividad del flujo grama.

CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL Bizagi Process Modeler

Servicio de Marketing

Adaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: Fax.:

Guía Rápida de Inicio

Implementación de Paquetes

GUÍA TÉCNICA 22 EL CONTROL DE GESTIÓN MUNICIPAL

-OPS/CEPIS/01.61(AIRE) Original: español Página Estructura del programa de evaluación con personal externo

5to Año PROFESORES DE 5TO Página 1 de 5

Caso Particular: Administración y Control de Proyectos II. Planificación Aprobada. Ejecución y Control. Administración del Cambio

Capitulo 3. Desarrollo del Software

LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS

Análisis de los datos

G R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo

Windows Server 2012: Infraestructura de Escritorio Virtual

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre Reporte De Lectura

RESUMEN CUADRO DE MANDO

GUIA DE TRABAJO APLICATIVO

WINDOWS : TERMINAL SERVER

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

Manejo de versiones 392

Agradecimiento: A Javier Lomelín Urrea por su dedicación y esmero en este proyecto. Manuel Fernando Guzmán Muñoz Presidente OMIJal

Qué preguntar durante una demostración de BPMS

Infraestructura Tecnológica. Sesión 12: Niveles de confiabilidad

4 Pruebas y análisis del software

Transcripción:

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 Documentación Metodología Performance Test Plan Reporte Final de Performance Conceptos importante Buenas Practicas Herramientas Comparativa Jmeter Conceptos Básicos Creación Manual de Test Plan Grabación de Test Plan Bad Boy Jmeter Recolección de Resultados Links de Interés y preguntas

Conceptos Performance Enfocadas en " Cuánto?" y " Qué tan rápido?". La evaluación apunta a medir si se cumplen los requerimientos establecidos por el cliente. Suelen llevarse a cabo en conjunción con stress testing. Objetivo: predecir anticipadamente problemas de rendimiento y degradación de recursos del sistema antes de su paso a producción, y facilitar su corrección.

Conceptos Performance Remote Network Tema 1 1 2 3 4 Virtual Testers Local Server Host

Por qué hacer pruebas de Performance? Conceptos Scott Barber: Para determinar o estimar varias características de performance bajo varias condiciones Se hace para tener un estimativo de cómo puede llegar a responder la aplicación en el ambiente de producción (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. Técnicamente, se obtiene la siguiente información: Evaluar la entrega: Cumple con lo que espera el cliente?; Cómo se estima que funcione la aplicación en producción? Evaluar la infraestructura elegida: Es adecuada para la capacidad que va a soportar?; Se comparo con otras tecnologías?; Se producen cuellos de botella?

Conceptos Load Testing Se centra en " Cuánto?" puede manejar la aplicación. La idea de estas pruebas es poner al límite de las especificaciones la cantidad de usuarios simultáneos en la aplicación y acercarse lo mas posible a como va a reaccionar la aplicación 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 más "estresantes" de lo que la aplicación 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 Prueba de Carga Beneficios Determina las características de velocidad, escalabilidad y estabilidad de una aplicación. Se enfoca en determinar si el usuario del sistema va a estar satisfecho con las características de performance de la aplicación. Identificar coincidencias entre las expectativas de performance y la realidad Soporta tunning,, capacidad de planeamiento y optimización n del trabajo. Determina el throughput requerido para soportar anticipadamente los picos en producción 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 aplicación n antes que la performance se vea afectada. 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 diseñado y validado correctamente, puede arrojar resultados muy poco significativos a lo que ocurrirá en producción. A A menos que las pruebas se realicen en el ambiente de producción, desde las mismas maquinas de los usuarios finales, siempre habrá un grado de incertidumbre en los resultados. No esta diseñado para enfocarse primordialmente en la velocidad de respuesta Los resultados pueden ser usados únicamente para compara con otras pruebas de carga

Beneficios en cada tipo de Test Test Stress Beneficios Determinar si la información n se corrompe cuando la aplicación n se lleva mas allá de sus limites. Determinar un estimativo de cuan lejos (antes de ocasionar errores y lentitud) puede llegar una aplicación n 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 difícil determinar cuanto stress es necesario aplicar en la aplicación. Puede ocasionar grande fallas en la aplicación n y la red.

Documentación Metodología Relevamiento Planificación Construcción Ejecución Análisis

Metodología Documentación Planificación: Tiene como objetivo la correcta caracterización de la carga de trabajo. Obtención de requisitos. Elección de las métricas adecuadas. Elección del tipo de pruebas. Descripción del sistema a probar. Caracterización de la carga de trabajo. Construcción: Tiene como Objetivo la Construcción de los Test Scripts y la configuración del ambiente de pruebas. Definición de Escenarios Distribución de tareas Coordinación con encargados de Servidor de Pruebas

Metodología Documentación Ejecución: Tiene como objetivo correr los Test Scripts desarrollados en la etapa de construcción. Dependiendo del tamaño del proyecto puede ocurrir 1 o varias veces. Se registran las fecha y hora de ejecución Análisis: Tiene como Objetivo recabar toda la información generada por las pruebas, procesarla de manera que se pueda interpretar, sacar conclusiones y proponer recomendaciones de cambio. Recopilación de Resultados Foco en métricas mas significativas Definición de gráficos mas adecuados para mostrar la información Proponer recomendaciones en función de los resultados obtenidos

Conceptos importantes Average (Promedio): matemáticamente 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 aplicación. 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 métrica es: Los datos con una desviación estándar superior a la mitad de su media debe ser tratada como sospechosa. Si es exactamente ese valor, el juego de datos no tiene una distribución normal. Throughput (Rendimiento): Es la tasa promedio de mensajes entregados satisfactoriamente. Comúnmente 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 métricas claras y con la aprobación del cliente Idealmente esto debería 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 aplicación si sus expectativas no fueron correctamente contabilizadas. No olvidarse de la base de datos Para aplicaciones web transaccionales las métricas 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 métricas para el tamaño de base de datos esperado y ese tamaño debe ser reproducido en el ambiente de pruebas. Identificar los CU críticos Los CU críticos son aquellos donde es necesaria una rápida 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 críticos para la percepción del usuario final sobre la performance de la aplicación.

Herramientas Comerciales Excelentes opciones en GUI Muchos tutoriales y ejemplos Mayor análisis de resultados 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 Desarrollo Propio Para aplicar en tecnología demasiado nueva Costosas Contras Poco flexibles y pesadas Contras A veces faltan tutoriales y ejemplos Depende mucho del grado de avance en que se encuentre Poco análisis de resultados Contras Solo si se planea seguir mejorando y adaptando a otras tecnologías Flexibles

Herramientas Comparativa Criterio de Evaluación Descripción OpenSTA Apache JMeter WebLoad LoadRunner Protocols Los protocolos de comunicación n que pueden ser capturados, manipulados y simulados por la aplicación HTTP 1.0 / 1.1 / HTTPS (SSL), SOAP/XML HTTP,FTP, SOAP/XML- RPC,JDBC HTTP/S, WAP, AJAX, ActiveX, Java, Web services.. Es posible grabar scripts con multi protocolo Soporta muchos. Los protocolos son cargados por ítem. Tiene una opción n de grabación n por multi-protocolo Playback functions Ejecución n de los scripts y facilidades de debug los scripts Vista extendida del log donde se ven los calores de los parámetros y los mensajes del servidor. Es una herramienta GUI. Entonces hay muchos GUI Listeners, los cuales son usados para capturar la grabación n y replicar los mensajes. Vista extendida del log.. El cual muestra los pedidos y los datos de respuesta. Vista extendida del log donde se ven los valores de los parámetros y los mensajes del servidor. También n permite ver y comparar la versión n grabada de la pagina y los mensajes del servidor. Tiene una opción n para hacer debug en el generador de scripts. Parametrización Cambio dinámico de valores para variables pasadas desde el cliente al servidor durante el POST para asegurar una simulación n mas real del comportamiento del usuario. Gran cantidad de facilidades para data entry, incluyendo interfaces Wizard para generar automáticament ticament e datos de prueba. La parametrizació n se puede hacer por interfaz, en el control Users Parameters. Gran cantidad de facilidades para data entry, incluyendo interfaces Wizard para generar automáticamente ticamente datos de prueba. Gran cantidad de facilidades para data entry,, incluyendo interfaces Wizard para generar automáticamente ticamente datos de prueba.

Herramientas Comparativa Criterio de Evaluación Descripción OpenSTA Apache JMeter WebLoad LoadRunner Simulación de la velocidad de conexión n 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 Puede emular diferentes velocidades de la red durante la ejecución. Reportes y análisis Facilidades para examinar e investigar los resultados de las pruebas incluyendo contadores y recursos monitoreados. Gráficos simples y suficientes como para analizar los resultados de carga y uso de recursos. Los gráficos pueden ser exportados a Excel. Puede crear gráficos pero no reportes. WebLOAD Console muestra reportes online de las sesiones que están n corriendo. El usuario puede crear sus propias vistas de las estadísticas sticas que estos reportes muestran. Se puede ir cambiando de reportes gráficos o textuales (Tablas) Posee una gran cantidad de gráficos sofisticados con muchísimas facilidades. Genera repotes automáticos ticos en Word. Se pueden obtener reportes por cada usuario simulado. Extensibilida d La habilidad de incrementar la funcionalidad de la herramienta. Pueden escribirse módulos en SCL. Además al ser OpenSource van Funciones Beanshell/JA VA pueden ser definidas y ser usadas como plug-in Permite agregar objetos Java, ActiveX o COM en los test Scripts. El framework de WebLoad es flexible y facilita la Librerías adicionales en TSL o C, limitado por las capacidades funcionales de la herramienta.

Jmeter Conceptos básicos Qué es Jmeter? Es una herramienta Java la cual fue diseñada para hacer pruebas de carga en aplicaciones Web, pero se expandió a otras funciones. Típicamente es usada para medir Performance y Pruebas de carga, es una herramienta OpenSource.

Jmeter Conceptos básicos Cómo Funciona?

Jmeter Conceptos básicos 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 jerarquía. Controla el numero de threads (Usuarios virtuales) que se usaran en la ejecución 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) después de la creación del Thread anterior. Loop Count: Cantidad de veces que se correrá el Test Plan. Scheduler: Brinda mas opciones a la ejecución de las pruebas. Podemos agregar la hora de comienzo y la hora de fin, los campos Duración y Delay reemplazan a los dos anteriores.

Jmeter Conceptos básicos Samplers Le indica a Jmeter como mandar los pedidos al servidor. Cada sampler tiene características diferentes y puede mejorarse agregando elementos de configuración(configuration Elements ). Los tipos de samplers son:

Jmeter Conceptos básicos Controladores Lógicos Permite configurar la lógica que Jmeter usa para decidir cuando mandar un request. Los controladores lógicos son:

Jmeter Conceptos básicos 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 según la necesidad del escenario de pruebas. Assertions Permiten validar hechos (sucesos) acerca de las respuestas del servidor en la ejecución de las pruebas. Usando assertions se puede testear que la aplicación 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 básicos Pre-Processor Element Ejecutan acciones antes que un sampler realice un pedido. Comúnmente es utilizado para modificar la configuración del sampler justo antas que se ejecute o para actualizar variables que no son extraídas 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. Comúnmente es utilizado para procesar los datos de respuesta o extraer información de esta. El mas utilizado es el Regular Expression Extractor para extraer los valores de ciertos tags del HTML. Orden de Ejecución Los componentes de Jmeter se ejecutan con el siguiente orden de prioridad: Configuration elements Pre-Processors Timers Sampler Post-Processors Assertions Listeners

Links de Interés 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 español) http://www.sqaforums.com/postlist.php?cat=0&board=ubb54&page=1

Muchas Gracias!!!! Jose Pablo Sarco sarcojp@hotmail.com