CES - Presentacion - Performance - Estresando aplicaciones Genexus

35
XVII Encuentro Genexus Testing de Performance: estresando aplicaciones Genexus CENTRO DE ENSAYOS DE SOFTWARE Federico Toledo Matías Reina

Transcript of CES - Presentacion - Performance - Estresando aplicaciones Genexus

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

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

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�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

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