SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
@ces_com_uy | #testinguy
TALLER
Rodrigo Quinta
rquinta@ces.com.uy
Federico Orihuela
forihuela@ces.com.uy
13 y 14 de mayo, 2019
testinguy.org
@testinguy | #testinguy
¡Estresá el sistema, no
al usuario!
@ces_com_uy | #testinguy
Introducción
•Objetivos de las pruebas de performance
• Estudiar el comportamiento del sistema bajo ciertas condiciones
•Tipos de pruebas de performance
• Stress
• Load
• Scalability
• Otras ...
@ces_com_uy | #testinguy
Definir y modelo la realidad
•Antes de comenzar con las pruebas de performance es necesario
establecer un modelo para la realidad que se desea probar.
•Hay que definir funcionalidades a probar.
•Cantidad de usuarios que se quieren simular.
•Acciones que hacen los usuarios.
•Definir momentos de uso pico.
•Considerar otros factores que puedan afectar el desempeño del
sistema.
•Imitar la realidad puede ser complejo, por lo que seguramente sea
necesario hacer simplificaciones.
@ces_com_uy | #testinguy
Objetivo del taller
•JMeter
• Grabar
• Automatizar
• Ejecutar
•Buenas prácticas
@ces_com_uy | #testinguy
JMeter: How it works
@ces_com_uy | #testinguy
Trabajemos!
@ces_com_uy | #testinguy
Configuración
•JMeter
•Firefox
• Proxy
• Certificado
• Tools / Options
• Advanced / Certificates
• View Certificates
• Authorities
• Import …
• View / Trust this CA to identify web sites
@ces_com_uy | #testinguy
Configuración
@ces_com_uy | #testinguy
Configuración
@ces_com_uy | #testinguy
Grabar script
•Grabemos una busqueda en www.montevideo.gub.uy
@ces_com_uy | #testinguy
Configuración
•Plan en JMeter
• Componentes del plan
• Grupo de hilos
• Controladores
• Managers
• Samplers
@ces_com_uy | #testinguy
Grupo de hilos
•Número de Hilos
• Este parámetro indica la cantidad de hilos que ejecutarán el flujo.
• Cada hilo se ejecuta de forma independiente.
• En general cada hilo representa un usuario.
•Ramp Up
• Este parámetro indica al jmeter el tiempo necesario para que todos los hilos
inicien su trabajo.
• Si tenemos 5 hilos y 10s de ramp up, ingresará un hilo cada 2s.
•Iteraciones
• Indica la cantidad de veces que un hilo (usuario) realizará la tarea indicada.
• Por ejemplo, si tenemos la tarea enviar correo, tenemos 5 hilos y 4
iteraciones se enviarán 20 correos (4 por cada hilo).
@ces_com_uy | #testinguy
Samplers (o Muestreadores)
•Permiten hacer un pedido y esperar por una respuesta.
•Se pueden hacer pedidos de distintos tipos (HTTP, FTP, JDBC,
custom).
•Lo más común (en el testing de aplicaciones Web) es usar samplers
de tipo “HTTP Request”. En este caso cada petición HTTP se mapea a
un sampler.
•El “Debug Sampler”, permite ver valores de variables o propiedades
de Jmeter.
@ces_com_uy | #testinguy
Controllers (Controladores)
• Permiten agrupar peticiones (samplers), así como introducir lógica
para personalizar el comportamiento de la aplicación.
• Ejemplos
• Simple Controller (Sirve para agrupar lógicamente)
• Transaction Controller (Sirve para medir el tiempo de lo que contiene)
• Only Once Controller (Solo ejecuta una vez durante la prueba)
• If Controller (Ejecuta dependiendo de una condición)
• Loop Controller (Ejecuta varias veces)
• Include Controller (Permite modularizar importando elementos externos)
@ces_com_uy | #testinguy
• Permiten manejar información general de los pedidos.
• Ejemplos
• HTTP Cookie Manager (Sirve para administrar las cookies)
• HTTP Requests Defaults (Sirve para manejar datos genéricos de los pedidos)
Managers (Manejadores)
@ces_com_uy | #testinguy
Ejecutar
•Con esto, estamos generando la carga deseada?
@ces_com_uy | #testinguy
Thinktimes
• Es el tiempo que transcurre desde que se completó un pedido y el
inicio del siguiente.
• Representa el tiempo que demora el usuario en leer, llenar campos,
hacer el siguiente click, etc.
•Como agregarlos?
• Timers - Cuidado con el alcance (scope). Por lo general hay que ponerlos a
nivel de pedidos para que se comporte como queremos.
• Test Actions - Se puede poner entre pedidos. Se puede hacer opcional si se
pone dentro de un controlador If (útil para desarrollo y testing).
@ces_com_uy | #testinguy
Parametrizar
•Variables
• Se pueden definir variables que son locales a cada hilo (usuario).
• Se pueden cargar desde elementos de configuración como (CSV data set
config).
• Se pueden cargar en pre/post-processors.
• Se pueden cargar desde funciones.
• Para usarlas -> ${NOMBRE_VARIABLE}
•Funciones
• Las funciones preexistentes permiten realizar tareas sobre parámetros de
entrada (o no) y obtener resultados.
• Sumar dos números y guardar el resultado en MYVAR
${__intSum(2,5,MYVAR)}
• Obtener un número aleatorio entre 0 y 10 ${__Random(0,10)}
@ces_com_uy | #testinguy
Aserciones (Assertions)
•Las aserciones, buscan asegurar que el resultado que obtenemos de
un sampler es como debería.
•Usando una aserción se puede “testear” que se devuelve un
resultado correcto o que no se devuelve ningún error.
•Ejemplos
• Response Assertion
• Duration Assertion
• Size Assertion
• Beanshell (JSR223) Assertion
• HTML Assertion
@ces_com_uy | #testinguy
Procesadores (Processors)
•Pre-Processors
• Permiten realizar alguna acción antes de un pedido.
• Son útiles para “cargar” o modificar valores en el pedido que se hará.
•Post-Processors
• Permiten realizar acciones luego de un pedido, por lo general se procesa el
resultado y se extraen valores que se usarán en otros pedidos.
•Ejemplos
• RegEx Extractor (Post-processor)
• JSON/Xpath Extractor (Post-processor)
• Beanshell/JSR223 (Pre-processor y Post-processor)
@ces_com_uy | #testinguy
Regex extractor
• Permite extraer patrones de expresiones regulares y guardar el
resultado en una o varias variables.
• Expresiones regulares
• Permite buscar patrones determinados por la expresión regular.
• Además se puede seleccionar parte del patrón encerrando la expresión
deseada entre paréntesis “(”,”)”.
• Son útiles tanto en el regex extractor como en aserciones.
@ces_com_uy | #testinguy
Guardando y Visualizando Resultados
•En una prueba de carga, por lo general no interesa ver los resultados
uno a uno, sino un resumen o gráfica de los mismos.
•Para guardar y visualizar resultados, se cuenta con los listeners, los
que permiten guardar resultados en un archivo y a su vez, la mayoría
permiten visualizar los resultados de alguna forma.
•Ejemplos
• View Result Tree (solo para debug)
• Summary Report
• Graph Results
• Existen plugins que también son útiles
@ces_com_uy | #testinguy
Tips
•Usar la menor cantidad de Listeners posible
•Apagar las gráficas/gui durante la ejecución.
•Si es necesario ver gráficas de resultados durante la ejecución,
cargarlo en un sistema externo (ELK Stack, TIG Stack, Jmeter externo)
•Agrandar el heap de la JVM en jmeter.bat/jmeter.sh
• -Xms para setear el heap mínimo.
• -Xmx para setear el heap máximo.
• Se recomienda que coincidan los valores para mejor desempeño.
/ces_uruguay
Lauro Müller 1989
11200 Montevideo, Uruguay
www.ces.com.u
y
@ces_com_uy
/CentroDeEnsayosDeSoftware
info@ces.com.uy
capacitacion.ces.com.uy
/ces-uy /CES_uy
@ces_com_uy | #testinguy
Rodrigo Quinta
rquinta@ces.com.uy
¿PREGUNTAS?
¡MUCHAS GRACIAS!
Federico Orihuela
forihuela@ces.com.uy
13 y 14 de mayo, 2019
testinguy.org | @testinguy | #testinguy

Más contenido relacionado

Similar a Taller TestingUy 2019 - ¡Estresá el sistema, no al usuario!

16-Unidad 4: Introducción a las Arquitecturas Web 4.3 NCAPAS 4.4 PRUEBAS UNIT...
16-Unidad 4: Introducción a las Arquitecturas Web 4.3 NCAPAS 4.4 PRUEBAS UNIT...16-Unidad 4: Introducción a las Arquitecturas Web 4.3 NCAPAS 4.4 PRUEBAS UNIT...
16-Unidad 4: Introducción a las Arquitecturas Web 4.3 NCAPAS 4.4 PRUEBAS UNIT...Luis Fernando Aguas Bucheli
 
Clase 4a arena
Clase 4a arenaClase 4a arena
Clase 4a arenaTensor
 
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe... Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...Federico Toledo
 
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Abstracta
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishJordi Llonch
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishJordi Llonch
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishAkamon Engineering
 
Taller evento TestingUY 2015 - Gestión de Casos de Prueba con TESTLINK
Taller evento TestingUY 2015 - Gestión de Casos de Prueba con TESTLINKTaller evento TestingUY 2015 - Gestión de Casos de Prueba con TESTLINK
Taller evento TestingUY 2015 - Gestión de Casos de Prueba con TESTLINKTestingUy
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup
 
Pruebas-OCW.pdf
Pruebas-OCW.pdfPruebas-OCW.pdf
Pruebas-OCW.pdflgarcias
 
Performance de sistemas Angular (Meetup Angular Montevideo)
Performance de sistemas Angular (Meetup Angular Montevideo)Performance de sistemas Angular (Meetup Angular Montevideo)
Performance de sistemas Angular (Meetup Angular Montevideo)Federico Toledo
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasSergio Sanchez
 
Programación y simulación
Programación y simulaciónProgramación y simulación
Programación y simulaciónjesus326101
 
Fp sesion 1 ppt
Fp sesion 1 pptFp sesion 1 ppt
Fp sesion 1 pptThejacob18
 
20180313 Keep Calm And Test Your Code RiojaDotNet
20180313 Keep Calm And Test Your Code RiojaDotNet20180313 Keep Calm And Test Your Code RiojaDotNet
20180313 Keep Calm And Test Your Code RiojaDotNetalbertortizcape
 

Similar a Taller TestingUy 2019 - ¡Estresá el sistema, no al usuario! (20)

Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
 
16-Unidad 4: Introducción a las Arquitecturas Web 4.3 NCAPAS 4.4 PRUEBAS UNIT...
16-Unidad 4: Introducción a las Arquitecturas Web 4.3 NCAPAS 4.4 PRUEBAS UNIT...16-Unidad 4: Introducción a las Arquitecturas Web 4.3 NCAPAS 4.4 PRUEBAS UNIT...
16-Unidad 4: Introducción a las Arquitecturas Web 4.3 NCAPAS 4.4 PRUEBAS UNIT...
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
Clase 4a arena
Clase 4a arenaClase 4a arena
Clase 4a arena
 
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe... Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
Taller evento TestingUY 2015 - Gestión de Casos de Prueba con TESTLINK
Taller evento TestingUY 2015 - Gestión de Casos de Prueba con TESTLINKTaller evento TestingUY 2015 - Gestión de Casos de Prueba con TESTLINK
Taller evento TestingUY 2015 - Gestión de Casos de Prueba con TESTLINK
 
Pruebas de estres
Pruebas de estresPruebas de estres
Pruebas de estres
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
 
Pruebas-OCW.pdf
Pruebas-OCW.pdfPruebas-OCW.pdf
Pruebas-OCW.pdf
 
Performance de sistemas Angular (Meetup Angular Montevideo)
Performance de sistemas Angular (Meetup Angular Montevideo)Performance de sistemas Angular (Meetup Angular Montevideo)
Performance de sistemas Angular (Meetup Angular Montevideo)
 
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
(25/02) Desarrollador@S Invita - Introducción y novedades de SQL Server 2008
 
Unidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De SistemasUnidad 3.1 Prueba De Sistemas
Unidad 3.1 Prueba De Sistemas
 
Programación y simulación
Programación y simulaciónProgramación y simulación
Programación y simulación
 
Fp sesion 1 ppt
Fp sesion 1 pptFp sesion 1 ppt
Fp sesion 1 ppt
 
ALEXIS GARCIA
ALEXIS GARCIAALEXIS GARCIA
ALEXIS GARCIA
 
20180313 Keep Calm And Test Your Code RiojaDotNet
20180313 Keep Calm And Test Your Code RiojaDotNet20180313 Keep Calm And Test Your Code RiojaDotNet
20180313 Keep Calm And Test Your Code RiojaDotNet
 

Más de TestingUy

Webinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcionalWebinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcionalTestingUy
 
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...TestingUy
 
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...TestingUy
 
Webinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testingWebinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testingTestingUy
 
TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020TestingUy
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoTestingUy
 
Meetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with youMeetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with youTestingUy
 
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...TestingUy
 
Meetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeterMeetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeterTestingUy
 
Meetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera TesterMeetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera TesterTestingUy
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?TestingUy
 
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?TestingUy
 
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?TestingUy
 
Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!TestingUy
 
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...TestingUy
 
Charla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con PactCharla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con PactTestingUy
 
Charla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbotsCharla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbotsTestingUy
 
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivelCharla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivelTestingUy
 
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...TestingUy
 
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...TestingUy
 

Más de TestingUy (20)

Webinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcionalWebinar TestingUy - Cuando el testing no es opcional
Webinar TestingUy - Cuando el testing no es opcional
 
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
Webinar TestingUy - Usando Principios del Testing de Software en Tiempos de C...
 
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...Webinar TestingUy -   Sesgos cognitivos en las pruebas. El lado más humano de...
Webinar TestingUy - Sesgos cognitivos en las pruebas. El lado más humano de...
 
Webinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testingWebinar TestingUy - Thinking outside the box: Cognitive bias and testing
Webinar TestingUy - Thinking outside the box: Cognitive bias and testing
 
TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020TestingPy meetup - Invitación TestingUy 2020
TestingPy meetup - Invitación TestingUy 2020
 
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuoMeetup TestingUy 2019 - Plataforma de integración y testing continuo
Meetup TestingUy 2019 - Plataforma de integración y testing continuo
 
Meetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with youMeetup TestingUy 2019 - May the automation be with you
Meetup TestingUy 2019 - May the automation be with you
 
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
Meetup TestingUy 2019 - De árboles, de bosques y de selvas ¿qué visión tengo ...
 
Meetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeterMeetup TestingUy 2019 - En clave de protocolo con apache JMeter
Meetup TestingUy 2019 - En clave de protocolo con apache JMeter
 
Meetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera TesterMeetup TestingUy 2019 - Si Tony Stark fuera Tester
Meetup TestingUy 2019 - Si Tony Stark fuera Tester
 
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
Meetup TestingUy 2019 - ¿Test cases? ¿Son siempre necesarios?
 
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
Charla TestingUy 2019 - ¿Podemos hacer que la seguridad sea usable?
 
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
Charla TestingUy 2019 - Testers as Test Consultants: How to learn the skills?
 
Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!Charla TestingUy 2019 - Ready Tester One? Go!
Charla TestingUy 2019 - Ready Tester One? Go!
 
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
Charla TestingUy 2019 - Patterns Para Enseñar Testing a Personas que No Desar...
 
Charla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con PactCharla TestingUy 2019 - Contract Testing con Pact
Charla TestingUy 2019 - Contract Testing con Pact
 
Charla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbotsCharla TestingUy 2019 - Testing de chatbots
Charla TestingUy 2019 - Testing de chatbots
 
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivelCharla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
Charla TestingUy 2019 - Cypress.io - Automatización al siguiente nivel
 
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
Charla testingUy 2019 - ¿De dónde venimos y qué se nos viene? - Evolución de ...
 
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
Charla TestingUy 2019 - Pruebas de rendimiento, experiencias en la plataforma...
 

Último

AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptxdulcemonterroza
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORASMarc Liust
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionEmanuelMuoz11
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendidaLuis Francisco Reyes Aceves
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfYanitza28
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8antoniopalmieriluna
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaJadeVilcscordova
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfYanitza28
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfJosAndrRosarioVzquez
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte2024020140
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxVICTORMANUELBEASAGUI
 

Último (16)

AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte
 
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptxTarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
Tarea_sesion_15_Reportes Maestro - Detalle con el uso de AJAX.pptx
 

Taller TestingUy 2019 - ¡Estresá el sistema, no al usuario!

  • 1. @ces_com_uy | #testinguy TALLER Rodrigo Quinta rquinta@ces.com.uy Federico Orihuela forihuela@ces.com.uy 13 y 14 de mayo, 2019 testinguy.org @testinguy | #testinguy ¡Estresá el sistema, no al usuario!
  • 2. @ces_com_uy | #testinguy Introducción •Objetivos de las pruebas de performance • Estudiar el comportamiento del sistema bajo ciertas condiciones •Tipos de pruebas de performance • Stress • Load • Scalability • Otras ...
  • 3. @ces_com_uy | #testinguy Definir y modelo la realidad •Antes de comenzar con las pruebas de performance es necesario establecer un modelo para la realidad que se desea probar. •Hay que definir funcionalidades a probar. •Cantidad de usuarios que se quieren simular. •Acciones que hacen los usuarios. •Definir momentos de uso pico. •Considerar otros factores que puedan afectar el desempeño del sistema. •Imitar la realidad puede ser complejo, por lo que seguramente sea necesario hacer simplificaciones.
  • 4. @ces_com_uy | #testinguy Objetivo del taller •JMeter • Grabar • Automatizar • Ejecutar •Buenas prácticas
  • 7. @ces_com_uy | #testinguy Configuración •JMeter •Firefox • Proxy • Certificado • Tools / Options • Advanced / Certificates • View Certificates • Authorities • Import … • View / Trust this CA to identify web sites
  • 10. @ces_com_uy | #testinguy Grabar script •Grabemos una busqueda en www.montevideo.gub.uy
  • 11. @ces_com_uy | #testinguy Configuración •Plan en JMeter • Componentes del plan • Grupo de hilos • Controladores • Managers • Samplers
  • 12. @ces_com_uy | #testinguy Grupo de hilos •Número de Hilos • Este parámetro indica la cantidad de hilos que ejecutarán el flujo. • Cada hilo se ejecuta de forma independiente. • En general cada hilo representa un usuario. •Ramp Up • Este parámetro indica al jmeter el tiempo necesario para que todos los hilos inicien su trabajo. • Si tenemos 5 hilos y 10s de ramp up, ingresará un hilo cada 2s. •Iteraciones • Indica la cantidad de veces que un hilo (usuario) realizará la tarea indicada. • Por ejemplo, si tenemos la tarea enviar correo, tenemos 5 hilos y 4 iteraciones se enviarán 20 correos (4 por cada hilo).
  • 13. @ces_com_uy | #testinguy Samplers (o Muestreadores) •Permiten hacer un pedido y esperar por una respuesta. •Se pueden hacer pedidos de distintos tipos (HTTP, FTP, JDBC, custom). •Lo más común (en el testing de aplicaciones Web) es usar samplers de tipo “HTTP Request”. En este caso cada petición HTTP se mapea a un sampler. •El “Debug Sampler”, permite ver valores de variables o propiedades de Jmeter.
  • 14. @ces_com_uy | #testinguy Controllers (Controladores) • Permiten agrupar peticiones (samplers), así como introducir lógica para personalizar el comportamiento de la aplicación. • Ejemplos • Simple Controller (Sirve para agrupar lógicamente) • Transaction Controller (Sirve para medir el tiempo de lo que contiene) • Only Once Controller (Solo ejecuta una vez durante la prueba) • If Controller (Ejecuta dependiendo de una condición) • Loop Controller (Ejecuta varias veces) • Include Controller (Permite modularizar importando elementos externos)
  • 15. @ces_com_uy | #testinguy • Permiten manejar información general de los pedidos. • Ejemplos • HTTP Cookie Manager (Sirve para administrar las cookies) • HTTP Requests Defaults (Sirve para manejar datos genéricos de los pedidos) Managers (Manejadores)
  • 16. @ces_com_uy | #testinguy Ejecutar •Con esto, estamos generando la carga deseada?
  • 17. @ces_com_uy | #testinguy Thinktimes • Es el tiempo que transcurre desde que se completó un pedido y el inicio del siguiente. • Representa el tiempo que demora el usuario en leer, llenar campos, hacer el siguiente click, etc. •Como agregarlos? • Timers - Cuidado con el alcance (scope). Por lo general hay que ponerlos a nivel de pedidos para que se comporte como queremos. • Test Actions - Se puede poner entre pedidos. Se puede hacer opcional si se pone dentro de un controlador If (útil para desarrollo y testing).
  • 18. @ces_com_uy | #testinguy Parametrizar •Variables • Se pueden definir variables que son locales a cada hilo (usuario). • Se pueden cargar desde elementos de configuración como (CSV data set config). • Se pueden cargar en pre/post-processors. • Se pueden cargar desde funciones. • Para usarlas -> ${NOMBRE_VARIABLE} •Funciones • Las funciones preexistentes permiten realizar tareas sobre parámetros de entrada (o no) y obtener resultados. • Sumar dos números y guardar el resultado en MYVAR ${__intSum(2,5,MYVAR)} • Obtener un número aleatorio entre 0 y 10 ${__Random(0,10)}
  • 19. @ces_com_uy | #testinguy Aserciones (Assertions) •Las aserciones, buscan asegurar que el resultado que obtenemos de un sampler es como debería. •Usando una aserción se puede “testear” que se devuelve un resultado correcto o que no se devuelve ningún error. •Ejemplos • Response Assertion • Duration Assertion • Size Assertion • Beanshell (JSR223) Assertion • HTML Assertion
  • 20. @ces_com_uy | #testinguy Procesadores (Processors) •Pre-Processors • Permiten realizar alguna acción antes de un pedido. • Son útiles para “cargar” o modificar valores en el pedido que se hará. •Post-Processors • Permiten realizar acciones luego de un pedido, por lo general se procesa el resultado y se extraen valores que se usarán en otros pedidos. •Ejemplos • RegEx Extractor (Post-processor) • JSON/Xpath Extractor (Post-processor) • Beanshell/JSR223 (Pre-processor y Post-processor)
  • 21. @ces_com_uy | #testinguy Regex extractor • Permite extraer patrones de expresiones regulares y guardar el resultado en una o varias variables. • Expresiones regulares • Permite buscar patrones determinados por la expresión regular. • Además se puede seleccionar parte del patrón encerrando la expresión deseada entre paréntesis “(”,”)”. • Son útiles tanto en el regex extractor como en aserciones.
  • 22. @ces_com_uy | #testinguy Guardando y Visualizando Resultados •En una prueba de carga, por lo general no interesa ver los resultados uno a uno, sino un resumen o gráfica de los mismos. •Para guardar y visualizar resultados, se cuenta con los listeners, los que permiten guardar resultados en un archivo y a su vez, la mayoría permiten visualizar los resultados de alguna forma. •Ejemplos • View Result Tree (solo para debug) • Summary Report • Graph Results • Existen plugins que también son útiles
  • 23. @ces_com_uy | #testinguy Tips •Usar la menor cantidad de Listeners posible •Apagar las gráficas/gui durante la ejecución. •Si es necesario ver gráficas de resultados durante la ejecución, cargarlo en un sistema externo (ELK Stack, TIG Stack, Jmeter externo) •Agrandar el heap de la JVM en jmeter.bat/jmeter.sh • -Xms para setear el heap mínimo. • -Xmx para setear el heap máximo. • Se recomienda que coincidan los valores para mejor desempeño.
  • 24. /ces_uruguay Lauro Müller 1989 11200 Montevideo, Uruguay www.ces.com.u y @ces_com_uy /CentroDeEnsayosDeSoftware info@ces.com.uy capacitacion.ces.com.uy /ces-uy /CES_uy
  • 25. @ces_com_uy | #testinguy Rodrigo Quinta rquinta@ces.com.uy ¿PREGUNTAS? ¡MUCHAS GRACIAS! Federico Orihuela forihuela@ces.com.uy 13 y 14 de mayo, 2019 testinguy.org | @testinguy | #testinguy