SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
911 :
Automatización para
Emergencias
Maximiliano Piñeyro
Pimagra@gmail.com
@pimagra
21 y 22 de mayo, 2018
www.testinguy.org
#testinguy |@testinguy
PROBLEMAS EN PRODUCCIÓN 2
Bugs Mails mal enviados Errores al cobrar Errores de flujo
Bugs no encontrados
en ambiente de testing
Información mal
enviada al cliente
Le cobramos o no al
cliente
Cambios en el flujo
que afectan a objetos
creados anteriormente
Comienza
flujo
Acción Finaliza flujo
Comienza
flujo
Acción
Finaliza
flujo
Acción
2
(necesita más datos y objetos viejos no
lo tienen)
● No tenemos una API
REST, no disponemos
de servicios REST
● Tenemos una API
REST pero son
muchas
transacciones
API REST
● Proceso largo y
tedioso
● Demasiado tiempo
para solucionarlo
PROCESOS
● Comunicación con
proveedores
externos que no
podemos controlar
automáticamente
PLATAFORMAS
EXTERNAS
● Impacto en
múltiples tablas o
bases de datos
BASES DE DATOS
● Poco personal
para solucionarlo
de forma manual
PERSONAL
Y QUE PASA SI....
CONSECUENCIAS 4
Disculpas al cliente
Llamadas
Correcciones de los
emails y envíos
múltiples
Emails
Horas extra a los
empleados, trabajo
hasta tarde.
Horas extra
Podemos sufrir una
mala imagen debido a
nuestros errores.
Mala imagen
Alta carga de trabajo
manual.
Trabajo manual
Debido a clientes
disconformes.
Juicios
Navegamos pantallas
TESTING AUTOMATIZADO! 5
1
2
3
4
Consultamos / modificamos registros en la BD
Interactuamos con servicios REST
Leemos archivos / tenemos fuentes de datos
¡TRABAJO EN EQUIPO!
NECESITAMOS... 6
CSV, Queries,
Excel, REST API,
etc.
DATOS DE
ENTRADA
Pasos claros a
realizar,
importante ver
TODOS los
caminos!
PASOS
Nuevos datos a
ser cambiados,
acciones
nuevas, etc.
DATOS
NUEVOS
Alguna forma
de verificar
que lo que
hicimos esté
bien
VERIFICACIÓN
Necesitamos
probar el robot
mientras lo
desarrollamos
AMBIENTE
DE PRUEBA
Ejecuciones en
paralelo
(opcional)
INFRA-
ESTRUCTURA
Selenium, Watir,
HTMLUnit, etc
LIBRERIAS 7
Navegación de
pantallas
RestAssured + Jackson,
URI, net/http, etc.
Interacción con REST
Services
Gema MySql, mysql-
connector, etc.
Consultas a la BD
Javacsv, POI, gema
spreedsheat, etc.
Lectura de XML, CSV, etc.
Slf4j, gema logger, etc.
Escritura de
LOGS
c
8
1 - Loguearse
EJEMPLO
9
2 - Ingresar transacción en campo “Buscar transacción” y clickear en buscar
10
3 - Consultar servicio REST para obtener el nuevo dato a ingresar
4 - Ingresar nuevo dato, activar (o no) y seleccionar acción 1 o 2. Finalizar clickeando modificar datos
11
5 - Elegir una de las opciones
12
6 - Consultar a la BD un dato ‘mágico’ y postearlo usando un servicio REST.
7 - Buscar la siguiente transacción y repetir los mismos pasos...
13
DATOS DE ENTRADA
EXCEL
JSON para el REST SERVICE
14
Clase que contiene los métodos para consultar a la BD
Clase que contiene los métodos para consultar los
servicios REST
Clase donde almacenaremos información
Clase que ejecuta
Property para que funcione log4j
JSON que se usará en el POST del servicio
Excel que será nuestra fuente de datos
ESQUELETO BÁSICO
15
1 - LOGGER y CSV
2 - Creamos un TEST
3 - Seteamos el CSV
4 - Creamos el WebDriver
5 - Accedemos a la WEB
6 - Nos logueamos
16
1 - Leemos el EXCEL
2 - Bucle de las filas del EXCEL
3 - En cada Iteración escribimos en
el log y almacenamos en variables
los valores de cada columna.
4 - Se obtienen mas datos por el
servicio REST que tambien
almacenamos en variables y
escribimos en el LOG
17
1 - En el constructor seteamos los
valores del Cliente de la API : URL,
servicios (POST y GET) y
objectMapper de Jackson para
mapear el JSON a Objeto.
2 - Creamos metodo que haga el
GET al servicio y lo mapee a un
objeto.
3 - Creamos metodo que haga el
POST al servicio usando el json que
ya tenemos.
18
19
1 - Buscamos la transaccion
2 - Escribimos nuevo dato
3 - Clickeamos o no en el checkbox
4 - Elegimos accion 1 o 2
5 - Avanzamos a siguiente pantalla
20
1 - En el constructor creamos la
conexión a la BD
2 - Método que busca el dato y lo
devuelve
21
1 - Se clickea en boton cobrar o
cancelar
2 - Se consulta a la BD el numero
mágico
3 - Se llama al cliente de la REST API
y se hace el POST
4 - Finaliza la iteración
TIPS! 22
Sleeps si son necesarios
Thread.sleep
Leer en consola con el comando ‘tail’ el log para verlo en vivo
Lectura de LOGS
Tener cuidado de no pisar datos
Ojo la ejecución en paralelo!
Entender bien las diferentes casuísticas y tener planes de acción si algo no sale como
planeamos (try/catch, dejar registro de fallos, continuar con la siguiente, etc)
Casuisticas!
Ejecutar en headless si son demasiados registros
Headless
Lo importante es que no se caiga, TIENE que correr perfectamente
Lo mas importante.. Robustez!
Probar en ambientes de prueba antes de lanzar en producción.
PRUEBAS!
AUTOMATION INTEGRADO 23
Podemos usar Jenkins para exponer nuestro robot y ejecutarlo desde el proyecto de desarrollo usando la API de Jenkins
OTRO USO PARA JENKINS
Librerias como Java servlet, Spring, etc. para levantar un WebServer, hacer un deploy del proyecto de automation, exponer nuestros robots
como servicios y llamarlo por API REST desde el proyecto de desarrollo (no usamos Jenkins de esta forma)
OTRA FORMA DE EXPONER
Cambia estado del proceso a OK o a Fallido
Cambia estado del proceso a ‘In progress’
devuelve el estado
/status cada cierto tiempo
21 y 22 de mayo, 2018
www.testinguy.org
#testinguy |@testinguy
¿PREGUNTAS?
¡MUCHAS GRACIAS!
Maximiliano Piñeyro
Pimagra@gmail.com
@pimagra

Weitere ähnliche Inhalte

Ähnlich wie Charla Evento TestingUY 2018 - 911: Automatización para emergencias

Saturacion base de datos - Ejemplos Parte 1
Saturacion base de datos  - Ejemplos Parte 1Saturacion base de datos  - Ejemplos Parte 1
Saturacion base de datos - Ejemplos Parte 1GrupoTresPacEspe
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web ServicesLuis Fernando Aguas Bucheli
 
Introduccion a java script
Introduccion a java scriptIntroduccion a java script
Introduccion a java scriptLuis Aceituno
 
¡Que lo haga otro! Automatizaciones SEO para vivir mejor
¡Que lo haga otro! Automatizaciones SEO para vivir mejor¡Que lo haga otro! Automatizaciones SEO para vivir mejor
¡Que lo haga otro! Automatizaciones SEO para vivir mejorIñaki Huerta (ikhuerta)
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2Steven Gomez
 
(Evidencia #2 supervisión a los parámetros de gestión y desempeño del sistema...
(Evidencia #2 supervisión a los parámetros de gestión y desempeño del sistema...(Evidencia #2 supervisión a los parámetros de gestión y desempeño del sistema...
(Evidencia #2 supervisión a los parámetros de gestión y desempeño del sistema...lfiquitiva
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPDaniel Primo
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHAlejandro Esquiva Rodriguez
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayPlain Concepts
 
Presentación de Lyracons en el Meet Magento Argentina 2017
Presentación de Lyracons en el Meet Magento Argentina 2017 Presentación de Lyracons en el Meet Magento Argentina 2017
Presentación de Lyracons en el Meet Magento Argentina 2017 Diego Amuy
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEduardo Castro
 
Evaluacion:Reactivos para resultados de aprendizajes
Evaluacion:Reactivos para resultados de aprendizajesEvaluacion:Reactivos para resultados de aprendizajes
Evaluacion:Reactivos para resultados de aprendizajesCynthia Piedrahita De Salinas
 
API WEB SQL ITParral
API WEB SQL ITParralAPI WEB SQL ITParral
API WEB SQL ITParralFerny Cortez
 
Configuración de clientes y servidores DNS para Windows y Linux
Configuración de clientes y servidores DNS para Windows y LinuxConfiguración de clientes y servidores DNS para Windows y Linux
Configuración de clientes y servidores DNS para Windows y LinuxMiguel Fernando
 

Ähnlich wie Charla Evento TestingUY 2018 - 911: Automatización para emergencias (20)

Saturacion base de datos - Ejemplos Parte 1
Saturacion base de datos  - Ejemplos Parte 1Saturacion base de datos  - Ejemplos Parte 1
Saturacion base de datos - Ejemplos Parte 1
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
 
Introduccion a java script
Introduccion a java scriptIntroduccion a java script
Introduccion a java script
 
¡Que lo haga otro! Automatizaciones SEO para vivir mejor
¡Que lo haga otro! Automatizaciones SEO para vivir mejor¡Que lo haga otro! Automatizaciones SEO para vivir mejor
¡Que lo haga otro! Automatizaciones SEO para vivir mejor
 
Reportes En J Developer Parte 1 Y 2
Reportes En J Developer   Parte 1 Y 2Reportes En J Developer   Parte 1 Y 2
Reportes En J Developer Parte 1 Y 2
 
(Evidencia #2 supervisión a los parámetros de gestión y desempeño del sistema...
(Evidencia #2 supervisión a los parámetros de gestión y desempeño del sistema...(Evidencia #2 supervisión a los parámetros de gestión y desempeño del sistema...
(Evidencia #2 supervisión a los parámetros de gestión y desempeño del sistema...
 
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHPIntroducción a Silex. Aprendiendo a hacer las cosas bien en PHP
Introducción a Silex. Aprendiendo a hacer las cosas bien en PHP
 
Rest
RestRest
Rest
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSH
 
Manual de correo exchange windows server 2012
Manual de correo exchange windows server 2012Manual de correo exchange windows server 2012
Manual de correo exchange windows server 2012
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
 
Presentación de Lyracons en el Meet Magento Argentina 2017
Presentación de Lyracons en el Meet Magento Argentina 2017 Presentación de Lyracons en el Meet Magento Argentina 2017
Presentación de Lyracons en el Meet Magento Argentina 2017
 
Base de datos
Base de datosBase de datos
Base de datos
 
284
284284
284
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Escalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql databaseEscalabilidad en azure web sites y sql database
Escalabilidad en azure web sites y sql database
 
Evaluacion:Reactivos para resultados de aprendizajes
Evaluacion:Reactivos para resultados de aprendizajesEvaluacion:Reactivos para resultados de aprendizajes
Evaluacion:Reactivos para resultados de aprendizajes
 
AJAX EN CURSO PHP
AJAX EN CURSO PHPAJAX EN CURSO PHP
AJAX EN CURSO PHP
 
API WEB SQL ITParral
API WEB SQL ITParralAPI WEB SQL ITParral
API WEB SQL ITParral
 
Configuración de clientes y servidores DNS para Windows y Linux
Configuración de clientes y servidores DNS para Windows y LinuxConfiguración de clientes y servidores DNS para Windows y Linux
Configuración de clientes y servidores DNS para Windows y Linux
 

Mehr von 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
 

Mehr von 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...
 

Kürzlich hochgeladen

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Kürzlich hochgeladen (13)

International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Charla Evento TestingUY 2018 - 911: Automatización para emergencias

  • 1. 911 : Automatización para Emergencias Maximiliano Piñeyro Pimagra@gmail.com @pimagra 21 y 22 de mayo, 2018 www.testinguy.org #testinguy |@testinguy
  • 2. PROBLEMAS EN PRODUCCIÓN 2 Bugs Mails mal enviados Errores al cobrar Errores de flujo Bugs no encontrados en ambiente de testing Información mal enviada al cliente Le cobramos o no al cliente Cambios en el flujo que afectan a objetos creados anteriormente Comienza flujo Acción Finaliza flujo Comienza flujo Acción Finaliza flujo Acción 2 (necesita más datos y objetos viejos no lo tienen)
  • 3. ● No tenemos una API REST, no disponemos de servicios REST ● Tenemos una API REST pero son muchas transacciones API REST ● Proceso largo y tedioso ● Demasiado tiempo para solucionarlo PROCESOS ● Comunicación con proveedores externos que no podemos controlar automáticamente PLATAFORMAS EXTERNAS ● Impacto en múltiples tablas o bases de datos BASES DE DATOS ● Poco personal para solucionarlo de forma manual PERSONAL Y QUE PASA SI....
  • 4. CONSECUENCIAS 4 Disculpas al cliente Llamadas Correcciones de los emails y envíos múltiples Emails Horas extra a los empleados, trabajo hasta tarde. Horas extra Podemos sufrir una mala imagen debido a nuestros errores. Mala imagen Alta carga de trabajo manual. Trabajo manual Debido a clientes disconformes. Juicios
  • 5. Navegamos pantallas TESTING AUTOMATIZADO! 5 1 2 3 4 Consultamos / modificamos registros en la BD Interactuamos con servicios REST Leemos archivos / tenemos fuentes de datos
  • 6. ¡TRABAJO EN EQUIPO! NECESITAMOS... 6 CSV, Queries, Excel, REST API, etc. DATOS DE ENTRADA Pasos claros a realizar, importante ver TODOS los caminos! PASOS Nuevos datos a ser cambiados, acciones nuevas, etc. DATOS NUEVOS Alguna forma de verificar que lo que hicimos esté bien VERIFICACIÓN Necesitamos probar el robot mientras lo desarrollamos AMBIENTE DE PRUEBA Ejecuciones en paralelo (opcional) INFRA- ESTRUCTURA
  • 7. Selenium, Watir, HTMLUnit, etc LIBRERIAS 7 Navegación de pantallas RestAssured + Jackson, URI, net/http, etc. Interacción con REST Services Gema MySql, mysql- connector, etc. Consultas a la BD Javacsv, POI, gema spreedsheat, etc. Lectura de XML, CSV, etc. Slf4j, gema logger, etc. Escritura de LOGS c
  • 9. 9 2 - Ingresar transacción en campo “Buscar transacción” y clickear en buscar
  • 10. 10 3 - Consultar servicio REST para obtener el nuevo dato a ingresar 4 - Ingresar nuevo dato, activar (o no) y seleccionar acción 1 o 2. Finalizar clickeando modificar datos
  • 11. 11 5 - Elegir una de las opciones
  • 12. 12 6 - Consultar a la BD un dato ‘mágico’ y postearlo usando un servicio REST. 7 - Buscar la siguiente transacción y repetir los mismos pasos...
  • 13. 13 DATOS DE ENTRADA EXCEL JSON para el REST SERVICE
  • 14. 14 Clase que contiene los métodos para consultar a la BD Clase que contiene los métodos para consultar los servicios REST Clase donde almacenaremos información Clase que ejecuta Property para que funcione log4j JSON que se usará en el POST del servicio Excel que será nuestra fuente de datos ESQUELETO BÁSICO
  • 15. 15 1 - LOGGER y CSV 2 - Creamos un TEST 3 - Seteamos el CSV 4 - Creamos el WebDriver 5 - Accedemos a la WEB 6 - Nos logueamos
  • 16. 16 1 - Leemos el EXCEL 2 - Bucle de las filas del EXCEL 3 - En cada Iteración escribimos en el log y almacenamos en variables los valores de cada columna. 4 - Se obtienen mas datos por el servicio REST que tambien almacenamos en variables y escribimos en el LOG
  • 17. 17 1 - En el constructor seteamos los valores del Cliente de la API : URL, servicios (POST y GET) y objectMapper de Jackson para mapear el JSON a Objeto. 2 - Creamos metodo que haga el GET al servicio y lo mapee a un objeto. 3 - Creamos metodo que haga el POST al servicio usando el json que ya tenemos.
  • 18. 18
  • 19. 19 1 - Buscamos la transaccion 2 - Escribimos nuevo dato 3 - Clickeamos o no en el checkbox 4 - Elegimos accion 1 o 2 5 - Avanzamos a siguiente pantalla
  • 20. 20 1 - En el constructor creamos la conexión a la BD 2 - Método que busca el dato y lo devuelve
  • 21. 21 1 - Se clickea en boton cobrar o cancelar 2 - Se consulta a la BD el numero mágico 3 - Se llama al cliente de la REST API y se hace el POST 4 - Finaliza la iteración
  • 22. TIPS! 22 Sleeps si son necesarios Thread.sleep Leer en consola con el comando ‘tail’ el log para verlo en vivo Lectura de LOGS Tener cuidado de no pisar datos Ojo la ejecución en paralelo! Entender bien las diferentes casuísticas y tener planes de acción si algo no sale como planeamos (try/catch, dejar registro de fallos, continuar con la siguiente, etc) Casuisticas! Ejecutar en headless si son demasiados registros Headless Lo importante es que no se caiga, TIENE que correr perfectamente Lo mas importante.. Robustez! Probar en ambientes de prueba antes de lanzar en producción. PRUEBAS!
  • 23. AUTOMATION INTEGRADO 23 Podemos usar Jenkins para exponer nuestro robot y ejecutarlo desde el proyecto de desarrollo usando la API de Jenkins OTRO USO PARA JENKINS Librerias como Java servlet, Spring, etc. para levantar un WebServer, hacer un deploy del proyecto de automation, exponer nuestros robots como servicios y llamarlo por API REST desde el proyecto de desarrollo (no usamos Jenkins de esta forma) OTRA FORMA DE EXPONER Cambia estado del proceso a OK o a Fallido Cambia estado del proceso a ‘In progress’ devuelve el estado /status cada cierto tiempo
  • 24.
  • 25. 21 y 22 de mayo, 2018 www.testinguy.org #testinguy |@testinguy ¿PREGUNTAS? ¡MUCHAS GRACIAS! Maximiliano Piñeyro Pimagra@gmail.com @pimagra