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

Documentos relacionados