XVII Encuentro Genexus
Testing de Performance: estresando aplicaciones Genexus
CENTRO DE ENSAYOS DE SOFTWAREFederico ToledoMatí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
EtapasR
elev
amie
nto
de R
eque
rimie
ntos
Aut
omat
izac
ión
Pre
para
ción
Infr
aest
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Relevamiento de Requerimientos
� Se relevan datos referentes a cómo se ejecutará el sistema• Transacciones a probar• Escenarios de Carga
�Número de usuarios concurrentes�Mezcla de las transacciones
• Tiempos aceptables de respuesta• Infraestructura• Datos de Prueba
�GXFlow (donde lo ponemos)
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Que cambia con aplicaciones GX?
• 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
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
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�Utilizando herramientas de generación de carga
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Automatización - Pasos
� Completar el guión� Grabar script original� Generalización� Ajustar comportamiento de usuarios� Programar captura de errores� Realizar Pruebas
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
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)
Response (A)
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
Pantallas
Acciones
Herramienta
XVII Encuentro Genexus
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
LoadRunner QALoad SilkPerformer OpenSTA JMeter Grinder
Java-Corba G/R G/R G/R R
RMI G/R G/R G/R R R
HTTP/S G/R G/R G/R G/R G/R G/R
SOAP G/R G/R G/R R R
Remoting G/R G/R G/R R
ADO.NET G/R G/R G/R
ODBC G/R G/R G/R
JDBC G/R G/R G/R R R
G/R
WebLoadPagas Gratis
XVII Encuentro Genexus
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• Uso de Ajax• Tamaños de post muy grandes• Esfuerzo X% del total de horas del proyecto
� Aplicaciones GUI• Conocer la lógica de la aplicación D
efin
ició
n de
Esc
ena
rios
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Rel
evam
ient
o de
Req
uerim
ient
os
Aut
omat
izac
ión
Pre
para
ción
Infr
aest
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
¿Infraestructura?
� Todo aquello que no es nuestro sistema pero lo necesitamos para ejecutar el test• Hardware• Software de base
• Herramientas para el test�Generación de carga�Monitorización
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
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
Estado de la infraestructura
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Herramientas de Monitorización
� Es importante analizar la infraestructura� Permite descubrir las causas
• Lo que se mide a nivel del cliente son solo los síntomas
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
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
� NMON – Sistemas basados en Unix• Muy poco intrusivo• Fácil de usar• Excelente para reportes• Toda la información necesaria sobre el sistema
operativo
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Herramientas
� 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• 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
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Rel
evam
ient
o de
Req
uerim
ient
os
Aut
omat
izac
ión
Pre
para
ción
Infr
aest
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Pasos� Generar la carga
• Ejecutar los scripts con la herramienta• Recrear los escenarios definidos
� Recolectar y analizar los datos• Tomar los datos de los distintos monitores• Generar reportes• Analizar resultados
� Realizar correcciones
Ejecución de las pruebas
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Generar carga
� 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
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
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• 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.
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
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• Valor X tal que los valores menores a este
representen el 90% de la muestra
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
Realizar correcciones
� Los incidentes de performance pueden tener dos causas• Lógica • Infraestructura
� Solo analizando los datos y lo monitorizado podemos ver donde esta el defecto
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
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• ...
� Es importante ver donde está el cuello de botella.
De
finic
ión
de E
sce
nari
os
Au
tom
atiz
aci
ón
Pre
para
ción
In
fra
est
ruct
ura
Eje
cuci
ón d
e P
rueb
as
XVII Encuentro Genexus
En resumen
•Transacciones a probar
•Número de usuarios concurrentes
•Mezcla de las transacciones
•Tiempos aceptables de respuesta
•Infraestructura
•Base de Datos
•Determinar guión
•Grabar script original
•Generalización
•Ajustar comportamiento de usuarios
•Programar captura de errores
•Hardware
•Software de base
•Herramientas para el test
•Generar la carga
•Recolectar y analizar los datos
•Generar reportes
•Analizar resultados
•Realizar correcciones
XVII Encuentro Genexus
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
opensourceEjecución� GeneXus brinda buenas posibilidades de
monitorización� Hay que conocerlas y aprovecharlas