CES - Presentacion - Performance - Estresando aplicaciones Genexus
Transcripción
CES - Presentacion - Performance - Estresando aplicaciones Genexus
Testing de Performance: estresando aplicaciones Genexus CENTRO DE ENSAYOS DE SOFTWARE Federico Toledo Matías Reina XVII Encuentro Genexus Testing de Performance Performance • Velocidad en la cual un sistema de información procesa transacciones (interactivas o no) • Requerimiento “no funcional” del sistema Test de Performance • Medir la Performance del sistema • Medir atributos de calidad XVII Encuentro Genexus ¿Por qué hacer testing de performance? Conocer la performance con la que el usuario percibe al sistema Ver si el sistema soporta una determinada carga Detectar los cuellos de botella del sistema Analizar la estabilidad de la aplicación Dimensionar (“sizing”) el sistema “Tunear” el Hardware o Software de Base Mitigar riesgos de cambios tecnológicos XVII Encuentro Genexus ¿Por que Testing de performance en aplicaciones GX? Genexus acompaña y facilita los cambios tecnológicos • hay que garantizar que la performance va a ser adecuada en la nueva tecnología • hay que “adaptarse” a la nueva plataforma nuevo hardware nuevo software de base XVII Encuentro Genexus Costo/Beneficio Una prueba de performance implican costos • Infraestructura • Horas • Herramientas Evaluación tardía del sistema • Se requieren pruebas previas a nivel funcional ¿Cuanto cuesta no hacerlo? XVII Encuentro Genexus Etapas de un test Existen metodologías para los test de performance Nosotros tenemos la nuestra • Basada en las existentes • Adaptada a nuestra realidad En cada etapa • Objetivos de la misma • Particularidades con aplicaciones GX XVII Encuentro Genexus XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Relevamiento de Requerimientos Etapas Relevamiento de Requerimientos XVII Encuentro Genexus Relevamiento de Requerimientos Se relevan datos referentes a cómo se ejecutará el sistema • Transacciones a probar • Escenarios de Carga XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura GXFlow (donde lo ponemos) Automatización • Tiempos aceptables de respuesta • Infraestructura • Datos de Prueba Definición de Escenarios Número de usuarios concurrentes Mezcla de las transacciones Que cambia con aplicaciones GX? XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios • Se me ocurre que podríamos comentar que es importante conocer el esquema de la BD para poder sacar los datos para los parámetros no? Pero esto también se puede comentar en la parte de Automatización • Si bien GX permite generar en varios lenguajes es importante acotar el proyecto a una plataforma dada. Hay que definir esta plataforma Automatización XVII Encuentro Genexus Porque automatizar? Opciones para reproducir 500 usuarios en un escenario determinado • 500 usuarios reales Grupo de coordinación 500 PCs 500 guiones • 500 usuarios simulados XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios Utilizando herramientas de generación de carga Automatización - Pasos XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Completar el guión Grabar script original Generalización Ajustar comportamiento de usuarios Programar captura de errores Realizar Pruebas Definición de Escenarios Herramientas de automatización Las herramientas grabación generan un script con las acciones que se realizan sobre la aplicación. Este script podemos utilizarlo para reproducir las operaciones Request (A) Request (A) Response (A) XVII Encuentro Genexus Ejecución de Pruebas Herramienta Preparación Infraestructura llas a t Pan Response (A) Automatización o Definición de Escenarios ci Ac n es Herramientas-Protocolos Las herramientas trabajan a nivel de protocolo GeneXus genera aplicaciones que se comunican con distintos protocolos Se deben conocer herramientas que permitan realizar pruebas de performance con distintos protocolos XVII Encuentro Genexus Herramientas-Protocolos Pagas Java-Corba RMI HTTP/S SOAP Remoting ADO.NET ODBC JDBC Gratis LoadRunner QALoad SilkPerformer G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R G/R XVII Encuentro Genexus WebLoad OpenSTA JMeter Grinder R G/R G/R R R G/R G/R R R R R R Aplicaciones GX Scripts susceptibles a: • Nuevas versiones De la aplicación (SUT) Generador de GX • Cambios en la BD Parámetros de la aplicación Muchas veces viajan ocultos en el HTML Aplicaciones Web XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura • Conocer la lógica de la aplicación Automatización Aplicaciones GUI Definición de Escenarios • Uso de Ajax • Tamaños de post muy grandes • Esfuerzo X% del total de horas del proyecto XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Relevamiento de Requerimientos ¿Infraestructura? Todo aquello que no es nuestro sistema pero lo necesitamos para ejecutar el test • Hardware • Software de base • Herramientas para el test XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios Generación de carga Monitorización Genexus: plataformas soportadas Plataformas de ejecución • JAVA, Microsoft .NET, Pocket PC Sistemas Operativos • IBM OS/400, LINUX, UNIX, Windows NT/2000/2003 Servers, Windows NT/2000/XP, y Windows Mobile Internet • JAVA, ASP.NET, Visual Basic (ASP), HTML, WebServices Bases de Datos • IBM DB2, Informix, Microsoft SQL Server, MySQL, Oracle, PostgreSQL Servidores Web • Microsoft IIS, Apache, WebSphere, etc. XVII Encuentro Genexus XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios Estado de la infraestructura Herramientas de Monitorización Es importante analizar la infraestructura Permite descubrir las causas XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios • Lo que se mide a nivel del cliente son solo los síntomas Herramientas de Monitorización NT Performance – Windows(NT 4.0 +) • Tiene una herramienta de monitorización y API • Se puede extender Los productos de Microsoft lo hacen • Permite monitorización descentralizada • Solo POP XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Muy poco intrusivo Fácil de usar Excelente para reportes Toda la información necesaria sobre el sistema operativo Automatización • • • • Definición de Escenarios NMON – Sistemas basados en Unix Herramientas XVII Encuentro Genexus Preparación Infraestructura Automatización Definición de Escenarios • Es útil tener un usuario real que interactúe con el sistema en la generación de carga • Da una visión subjetiva de los tiempos de respuesta Ejecución de Pruebas SNMP JMX – hablar todo lo que se quiera de JMX, como activarlo que nos brinda, etc WMI - hablar todo lo que se quiera de WMI, como activarlo que nos brinda, etc Monitor Humano o Testigo XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Relevamiento de Requerimientos Ejecución de las pruebas Pasos Generar la carga • Ejecutar los scripts con la herramienta • Recrear los escenarios definidos Recolectar y analizar los datos XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Realizar correcciones Definición de Escenarios • Tomar los datos de los distintos monitores • Generar reportes • Analizar resultados Generar carga XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios Con la herramienta de generación, reproducir el escenario ya definido Recordar que la manera en que se ejecuta la generación depende del tipo test a realizar Recolectar y analizar datos Es importante contar con todos los datos tanto del lado del cliente como del resto de la infraestructura Prestar atención a los distintos datos XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios • El dato más insignificante puede ser la causa de un problema • El 20% de los datos nos da el 80% de la información. Métricas Usuales Tiempo de respuesta • demora entre envío del último bit del pedido y recepción del primer bit de la respuesta Números de usuarios • la cantidad de usuarios concurrentes Percentil 90 XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios • Valor X tal que los valores menores a este representen el 90% de la muestra Realizar correcciones Los incidentes de performance pueden tener dos causas • Lógica • Infraestructura XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios Solo analizando los datos y lo monitorizado podemos ver donde esta el defecto Realizar correcciones Algunos incidentes comunes • • • • • • • Bloqueos de tablas Seteos de máquina virtual Algoritmos mal programados Zonas de mutuo exclusión Problemas de perdida de memoria Mal dimensionamiento ... XVII Encuentro Genexus Ejecución de Pruebas Preparación Infraestructura Automatización Definición de Escenarios Es importante ver donde está el cuello de botella. En resumen •Transacciones a probar •Número de usuarios concurrentes •Mezcla de las transacciones •Tiempos aceptables de respuesta •Infraestructura •Determinar guión •Generar la carga •Grabar script original •Hardware •Generalización •Ajustar comportamient o de usuarios •Programar captura de errores •Software de base •Herramient as para el test •Base de Datos XVII Encuentro Genexus •Recolectar y analizar los datos •Generar reportes •Analizar resultados •Realizar correcciones Conclusiones Pruebas de Performance Ventajas importantes en hacer pruebas de performance Valor agregado a las aplicaciones Grandes posibilidades de mejora XVII Encuentro Genexus Conclusiones – Genexus Automatización No es sencillo realizar la automatización Se puede hacer con herramientas opensource Ejecución GeneXus brinda buenas posibilidades de monitorización Hay que conocerlas y aprovecharlas XVII Encuentro Genexus Si están interesados… PerfTestPlus • http://www.perftestplus.com/pubs.htm Sticky Minds • http://www.stickyminds.com Blob de Performance • http://www.myloadtest.com/ Herrmientas free • http://www.opensourcetesting.org/performance.php • http://www.opensta.org XVII Encuentro Genexus