meetup testing workshop 2016 - gatling para pruebas de performance - federico toledo y andrei...

37
PhD. Federico Toledo [email protected] Twitter: @fltoledo Gatling para Pruebas de Performance Ing. Andrei Guchín [email protected] Twitter: @andreig09

Upload: federico-toledo

Post on 14-Apr-2017

161 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

PhD. Federico [email protected]: @fltoledo

Gatling para Pruebas de

Performance

Ing. Andrei Guchí[email protected]: @andreig09

Page 2: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Involucrados en testing

Page 3: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

+220

+290

+100Charlas, cursos,

papers, artículos,etc.

+25 colaboradores8 chicos trabajando

+60 formados

México

+120

Involucrados en testing

Uruguay

Page 4: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Prejuicios del testing:• Es aburrido• Es repetitivo• No tiene desafíos• Es el trabajo para el

programador nuevo

¿Por qué trabajas en testing?

¿No conseguiste otra cosa mejor?

Page 5: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín
Page 6: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Optimizar Performance

Page 8: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Optimizar Performance

Page 9: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Sour

ce: h

ttp://

www.

min

iatu

r-wun

derla

nd.d

e/

Simular

Page 10: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Medir

Page 11: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Bottlenecks / Punto de Quiebre

Page 12: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Tipos de Pruebas de Performance

Page 13: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Simulación y medición

Simulación JMeter (jmeter.apache.org)Taurus (gettaurus.org)BlazeMeter (blazemeter.com)Gatling (gatling.io)

Medición Profilers y similar (JVisualVM, JProfiler, dotTrace)Herramientas a nivel de Sistema Operativo (NMON, perfmon, Netdata)APMs (AppDynamics, NewRelic, DataDog)

Page 14: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín
Page 15: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Automatización / robotización

}

Page 16: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín
Page 17: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Servidor Web

ModellerModeller

Http - RequestHttp - Responsegrabar

1

Se

abre

1.1Se abre

1.2

Acciones2

Terminar de grabar3

3.1

Tenemos el script

Http - Request

Http - Response

Http - Request

Http - Response

¿Cómo se prepara un UV?

Page 18: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling

¿Por qué Gatling?• Opensource• Buena performance• Buenos reportes• Fácil de aprender (Scala, DSL)• Portable (sobre JVM)• Potente y flexible

• Variedad de assertions• Flexibilidad de definición de escenarios• Data providers

• Escalable (Taurus+BlazeMeter, Flood.io, etc.)

Page 19: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Lenguaje

Page 20: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Recorder

Page 21: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Scripting

Assertions• Response Time• Successful requests

• (http codes, assertions)• Requests per second

• Scope: global, forall, details(path) • path = definido en el request http• (“Search” / “Index”) para indicar request en un

grupo

• Number of requests: percent, permillion, count• Response time: min, max, percentile, mean,…

Page 22: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Scripting

Assertions

Page 23: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Scripting

Data sources (Feeders)

• Array, Archivo CSV• Json, JDBC, etc.• User dependent data• Random, queue,

suffle, circular

Ejemplo: https://github.com/Senescyt/pruebas-rendimiento

Page 24: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Scripting

Variable correlation: Checks

• Location • Headers • Body • Regular expressions

Correlation • “saveAs(key)”

Page 25: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Scripting

Control de flujo• doIf / doIfOrElse / doSwitch• Repeat / foreach• Pause • tryMax

Page 26: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Escenarios

Page 27: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Mantenibilidad

Page Objects, similar a enfoque utilizado en Selenium.

Page 28: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Ejecución

Page 29: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Reporte

Page 30: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Reporte

Page 31: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

GatlingDemo y ejercicios

 http://bit.do/SlackTestingAcademyChannel: #tw_gatling

Page 32: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling¿Qué les pareció?

Beneficios? Experiencias? Desafíos?

Page 33: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Gatling - Referencias

• http://gatling.io/• http://blog.abstracta.com.uy/search/label/Gatling• http://gatling.io/docs/2.2.3/index.html • http://gettaurus.org/ • http://blazemeter.com/• https://flood.io/ • http://scala-lang.org/ • Algunos ejemplos y posts en Español

• https://juliomunoz.wordpress.com/2014/11/13/probando-gatling/ • http://emerrefe.github.io/qa-blog/Gatling-tool-pruebas-de-stress/ • https://github.com/Senescyt/pruebas-rendimiento • http://nbortolotti.blogspot.com.uy/2015/06/una-prueba-de-estres-para-mi-aplicacion.html

Page 34: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

¿Siguen pensando que el testing es aburrido y sin desafíos técnicos?

Page 35: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Si les gustó… los invito

Certificación en testing de performance usando JMeter y BlazeMeter

• Curso online de un mes• www.abstracta.us/training

10% de descuento usando este cupón este mes

PERFMATTERS

http://bit.do/librodetesting

Page 36: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

Silicon Valley office425 Broadway Street Redwood City, CA

HeadquartersJose Ellauri 1126 Montevideo, Uruguay

www.abstracta.us

[email protected]

Page 37: Meetup Testing Workshop 2016 - Gatling para pruebas de performance - Federico Toledo y Andrei Guchín

http://www.slideshare.net/FedericoToledohttp://blog.abstracta.com.uy/search/label/Gatling

¡¡Gracias!!PhD. Federico [email protected]: @fltoledo

Ing. Andrei Guchí[email protected]: @andreig09