SlideShare une entreprise Scribd logo
1  sur  38
503 - Service Unavailable:
La virtualización de
servicios como salvavidas
Gastón Marichal
gmarichal@genexusconsulting.com
@gamarichal
21 y 22 de mayo,
2018
www.testinguy.org
#testinguy
@testinguy
Marcos Manicera
mmanicera@genexusconsulting.com
@marcosmanicera
Agenda:
• Contexto y motivación
• Expectativa Vs. Realidad
• Virtualizando nuestro primer servicio
• Demos
• Ejercicios prácticos
• Buenas practicas y recomendaciones
Todo comenzó por un delay…
Situación ideal
Servicio n
Mi
Aplicación
Servicio 1
Servicio 2
Situación real
Error HTTP 503
Service unavailable
Error HTTP 401
Unauthorized
Servicio en
desarrollo
Mi
Aplicación
Servicios pagos
Consecuencias
Retrasos y tiempo ocioso
Aumenta el esfuerzo de coordinación
Incertidumbre en el desarrollo y testing
Menos control y cobertura de pruebas
No se puede paralelizar actividades
¿Cómo romper mi dependencia
con servicios externos no
disponibles?
Virtualización (Mocking)
Replicar el comportamiento de un objeto real
creando una copia virtual con sus mismas
características.
Servicio realCopia virtual
Virtualización (Mocking)
Servicio real
Comportamiento
Características
Control total
Copia virtual
Virtualización (Mocking) - Ejemplo
Servicio real
Aplicación
Virtualización (Mocking) - Ejemplo
Servicio real
Aplicación
Virtualización (Mocking) - Ejemplo
Copia virtual Servicio real
Aplicación
Creación de un Mock-Service
Creando un Mock-Service
Creando un Mock-Service (SOAP)
Creando un Mock-Service (SOAP)
Creando un Mock-Service (SOAP)
Creando un Mock-Service (SOAP)
Creando un Mock-Service (SOAP)
IP : Port / Path
Creando un Mock-Service (SOAP)
Trabajando con las Respuestas
Respuestas estáticas
DEMO
Respuestas estáticas
Respuestas estáticas
Útiles para contextos simples
Varias respuestas distintas por operación
Cambiar respuesta fácilmente
Permite cambiar el Dispatch Mode
Respuestas estáticas – Dispatch Mode
o Alterar la forma que
selecciona la respuesta
o Programación
o Secuencial
o Aleatorio
DEMO
Dispatch Mode
Un poco más de inteligencia…
Respuestas dinámicas
Base de DatosArchivosProgramación ByPass
DEMO
Respuestas dinámicas
Recomendaciones
¿Qué debe virtualizarse?
¿Qué tan real será?
#1 – Virtualizar lo
necesario
Priorizar los servicios
#2 – Comenzar de a poco
y expandir
Crear
EvaluarExpandir
Fácilmente reusables
Activo del equipo
#3 – Reusar y compartir
Varios escenarios
#4 – ¡El test de integración es
necesario!
#5 – ¡¡No mocks en producción!!
Referencias:
https://www.soapui.org/soap-mocking/service-mocking-overview.html
http://www.iamjk.com/2015/03/soap-ui-mock-service-redirection.html
https://www.soapui.org/soap-mocking/deploying-mock-services-as-war-files.html
https://www.softwaretestinghelp.com/soapui-mock-service-and-dynamic-response/
http://groovy-lang.org/documentation.html
https://www.tutorialspoint.com/groovy/groovy_overview.htm
https://regex101.com/
http://www.regular-expressions.info/tutorial.html
https://www.tutorialspoint.com/java/java_regular_expressions.htm
…Y todo esto por un delay!
¿PREGUNTAS?
¡MUCHAS GRACIAS!
21 y 22 de mayo,
2018
www.testinguy.org
#testinguy
@testinguy
Gastón Marichal
gmarichal@genexusconsulting.com
@gamarichal
Marcos Manicera
mmanicera@genexusconsulting.com
@marcosmanicera

Contenu connexe

Plus de Argentesting

Análisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridadAnálisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridadArgentesting
 
Argentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting
 
Argentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting
 
Argentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting
 
Argentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to endArgentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to endArgentesting
 
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...Argentesting
 
Argentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesionesArgentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesionesArgentesting
 
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitosoArgentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitosoArgentesting
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting
 
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...Argentesting
 
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting
 
Argentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergenArgentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergenArgentesting
 
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientesArgentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientesArgentesting
 
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testingArgentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testingArgentesting
 
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...Argentesting
 
Argentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting
 

Plus de Argentesting (20)

Análisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridadAnálisis de Aplicaciones móviles - aspectos de seguridad
Análisis de Aplicaciones móviles - aspectos de seguridad
 
Argentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatizaciónArgentesting 2019 - Cambiando el paradigma de la automatización
Argentesting 2019 - Cambiando el paradigma de la automatización
 
Argentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágilArgentesting 2019 - Cómo convertirse en un tester ágil
Argentesting 2019 - Cómo convertirse en un tester ágil
 
Argentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando seleniumArgentesting 2019 - Desentrañando selenium
Argentesting 2019 - Desentrañando selenium
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOps
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
 
Argentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimoArgentesting 2019 - Por que-python-esta-buenisimo
Argentesting 2019 - Por que-python-esta-buenisimo
 
Argentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to endArgentesting 2019 - Cypress una completa experiencia de testing end to end
Argentesting 2019 - Cypress una completa experiencia de testing end to end
 
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
Argentesting 2019 - Testing de accesibilidad: un valor agregado cómo profesio...
 
Argentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesionesArgentesting 2019 - Testing exploratorio basado en sesiones
Argentesting 2019 - Testing exploratorio basado en sesiones
 
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitosoArgentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
Argentesting 2019 - Ser ágiles, hacer ágiles. la historia de un proyecto exitoso
 
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
Argentesting 2019 - En la era de la disrupción ¿Cómo estamos imaginando el fu...
 
Argentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOpsArgentesting 2019 - Introducción al testing en DevOps
Argentesting 2019 - Introducción al testing en DevOps
 
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
Argentesting 2019 - Cómo ser más productivo utilizando la línea de comando pa...
 
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móvilesArgentesting 2019 - Analizando la seguridad en aplicaciones móviles
Argentesting 2019 - Analizando la seguridad en aplicaciones móviles
 
Argentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergenArgentesting 2019 - Accesibilidad, donde las especialidades convergen
Argentesting 2019 - Accesibilidad, donde las especialidades convergen
 
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientesArgentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
Argentesting 2019 - Automatizar al infinito y más allá, trae sus inconvenientes
 
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testingArgentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
Argentesting 2019 - Cómo la 4ta revolución industrial afectará al testing
 
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
Argentesting 2019 - Caso de éxito de pruebas automatizadas en industria autom...
 
Argentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósitoArgentesting 2019 - Lippia, un framework multipropósito
Argentesting 2019 - Lippia, un framework multipropósito
 

Dernier

Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
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
 
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
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
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
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
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
 
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
 
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
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 

Dernier (15)

Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
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
 
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
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
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
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
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
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................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
 
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
 
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
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 

Argentesting 2018 - 503 – SERVICE UNAVAILABLE: La virtualización de servicios como salvavidas

Notes de l'éditeur

  1. GASTON Bienvenida, Introducción al taller..
  2. GASTON
  3. GASTON Dejenmé que les cuenta como comenzó todo esto de la virtualización para mi… Queriendo simular un delay… Si correcto un simple y puntual delay entre la comunicación de 2 sistemas. Ocurria que si el web service demoraba mas de 30 segundos en responderle a nuestro sistema, dejaba datos inconsistentes. Debido a esto fue que encontramos a la virtualización de servicios como alternativa para estos problemas.
  4. GASTON Lo que si es seguro y no es nada nuevo lo que les voy a contar es que las aplicaciones ya no funcionan aisladas Por el contrario, cada día están mas y mas conectadas!! Con Redes sociales (Facebook, Instagram, twitter, etc.) Con Servicios en la nube (Maps, Clima, sist. Bancarios, etc.) Con Otras aplicaciones o sistemas comerciales (internos y externos, entes estatales, etc.) La idea de esta charla es ver los problemas que puedo tener al trabajar con servicios web y como la virtualización puede ayudarme a solucionarlos.
  5. MARCOS La situación más “feliz” o la ideal es que cuando desarrollemos y probemos este tipo de aplicaciones, contemos con que todos los servicios que esta utiliza (internos, externos) APIs tercearizadas, etc. Funcionen correctamente y Podamos trabajar con ellos de forma fluida y sin esfuerzo. Por ejemplo, consumirlo con alguna herramienta, analizarlo para desarrollar nuestra aplicación. Bueno todos acá sabemos que esto es una utopía…. En el mejor de los casos nos conformamos con tener acceso a un backEnd de test o a la Base de Datos no? Y nos encontramos con algunos de estos problemas…
  6. MARCOS
  7. MARCOS Se generar retrasos debido a que mis desarrolladores o Testers no pueden realizar sus actividades porque estos servicios no están disponibles.
  8. GASTON Entonces… Que alternativas tengo para romper con esas dependencias a los sistemas externos, los cuales sin ellos no puedo desarrollar/testear mi aplicación.???
  9. GASTON
  10. GASTON
  11. MARCOS
  12. MARCOS
  13. MARCOS
  14. MARCOS La herramienta para crear los mock o servicios virtuales será SoapUI, y lo que vamos a hacer es ver diferentes posibilidades que tenemos para crear estos mock.
  15. MARCOS Primero que nada, la idea es que podamos trabajar tanto con servicios SOAP como REST por lo que vamos a ver ejemplos con ambas tecnologías.. Mostrar los 2 Servicios web que vamos a trabajar, uno REST y otro SOAP Describr ambos para tener una idea del context de trabajo.
  16. MARCOS
  17. MARCOS La WSDL se puede cargar via URL por el servicio (pasando el parametron ?WSDL al final de la direccion) Tambien se puede cargar desde un archive .XML
  18. MARCOS
  19. MARCOS
  20. MARCOS
  21. MARCOS
  22. Bien, hasta el momento pudimos crear y configurar nuestro mock para que escuche en la dirección y puesto que nosotros queramos. Ahora es tiempo de manipular las respuestas que necesitemos que nuestro servicio devuelva. Las mismas pueden ser respuestas estáticas, es decir devuelven un valor fijo siempre (a fuego) o Dinámicas si necesitamos un mock mas intelgiente que responda en base a ciertos inputs o condiciones como puede ser un archivo, la propia peticion, una base de datos o lógica programada (Scripting).
  23. GASTON Siempre que se invoque, devolverá el mismo valor, se pueden armar varias respuestas estáticas y seleccionar cual queremos que devuelva.
  24. Siempre que se invoque, devolverá el mismo valor, se pueden armar varias respuestas estáticas y seleccionar cual queremos que devuelva.
  25. GASTON
  26. GASTON
  27. MARCOS
  28. Evitar caer en “Virtualizar todos los servicios”, no todos los servicios generan las mismas complicaciones o tienen fallas, muchas veces caemos en virtualizar todo por si acaso y terminamos consumiendo tiempo que podrìa haber sido invertido en otras tareas (Ej.: Mas pruebas) Priorizar puede ser una gran herramienta para definir que servicios deberían virtualizarse: Puede ser según… Frecuencia de uso Complejidad Accesibilidad Valor para el negocio Dejar claro que tan ‘real’ será el comportamiento del mock, si con una respuesta estática alcanza o es necesario otro mecanismo más inteligente de respuesta (BDD).
  29. Los mocks pueden ser reutilizados en varios escenarios, pueden compartirse fácilmente entre el equipo (desarrolladores, testers) y mantenerlos actualizados es facil. Por eso en lugar de crearlos y desecharlos, se debería considerar estos mocks como un activo mas dentor del equipo y que todos sepan que existe y que puede ser una alternativa rapida para mostrar algo sin mayor complicaciones.
  30. La prueba de integración es necesaria, Los servicios reales tiene la última palabra para evaluar si la comunicación es 100% exitosa. Los mock puede usarse en fases tempranas de desarrollo y testing pero siempre asegurarse que al final el sistema se comunique bien con el servicio real.
  31. GASTON Volviendo al tema del Delay… Veamos que tan difícil es simular un delay con un mock.