Pruebas de Integración automatizadas con
Docker y Bamboo
¡HoLA!Soy Fernando Llaca
Atlassian Expert en atSistemasPuedes contactar conmigo en:
Objetivos ✖ Conceptos básicos sobre pruebas de
integración
✖ Qué son Docker y Bamboo
✖Configurar un plan de integración continua basado en contenedores Docker.
✖Aspectos a tener en cuenta al lanzar pruebas de integración “dockerizadas”
1.Pruebas de Integración
¿Vemos algunas?
Pruebas de regresión
Pruebas de Sistema
Pruebas End-to-End
Pruebas funcionales
Pruebas de regresión
Pruebas de Sistema
Pruebas End-to-End
Pruebas funcionales
DIFICULTADES
Instalación /Configuración compleja
Networking IPs/puertos pueden cambiar
Sucesivas ejecuciones Corrompen el entorno
Stubs (Mucho esfuerzo)
Escalabilidad / Paralelización Costosa
Mantenimiento (Upgrades del software)
Antes de continuar...¿Os suenan Docker y Bamboo?
DIFICULTADES
Instalación /Configuración compleja
Networking IPs/puertos pueden cambiar
Sucesivas ejecuciones Corrompen el entorno
Stubs (Mucho esfuerzo)
Escalabilidad / Paralelización Costosa
Mantenimiento (Upgrades del software)
DIFICULTADES
Imágenes Docker pre-configuradas
Instalación /Configuración compleja
DIFICULTADES
Instalación /Configuración compleja
Networking IPs/puertos pueden cambiar
Internal DNS
DIFICULTADES
Instalación /Configuración compleja
Networking IPs/puertos pueden cambiar
Sucesivas ejecuciones Corrompen el entorno
Containers creados al vuelo
DIFICULTADES
Instalación /Configuración compleja
Networking IPs/puertos pueden cambiar
Sucesivas ejecuciones Corrompen el entorno
Stubs (Mucho esfuerzo)
Docker images: probamos contra la aplicación real
DIFICULTADES
Instalación /Configuración compleja
Networking IPs/puertos pueden cambiar
Sucesivas ejecuciones Corrompen el entorno
Stubs (Mucho esfuerzo)
Escalabilidad / Paralelización costosa
Cluster Swarm / docker-compose
DIFICULTADES
Instalación /Configuración compleja
Networking: Ip/puertos pueden cambiar
Sucesivas ejecuciones Corrompen el entorno
Stubs (Mucho esfuerzo)
Escalabilidad / Paralelización costosa
Docker images: simplemente cambiar el tag/image
Mantenimiento (Upgrades del software)
DIFICULTADES
Instalación /Configuración compleja
Networking Ip/puertos pueden cambiar
Sucesivas ejecuciones Corrompen el entorno
Stubs (Mucho esfuerzo)
Escalabilidad / Paralelización costosa
Mantenimiento (Upgrades del software)
¡PROPUESTA!Sí, sí, muy bien, ¿pero cómo?
(Run tests)
Containers
External Dependencies
VCS
1. Crear Contenedores de las aplicaciones que queremos integrar
PROCESO
1.1 Alimentar con datos1.2. Enlazar contenedores
2. Ejecutar pruebas (¡también en un contenedor!)
3. Eliminar contenedores
4. Procesar resultado de las pruebas
Veamos la Demo
CONSIDERACIONESOjito con...
Networkingo DNS interno de Dockero Docker compose
Software dependencieso Dependencias Maveno node_moduleso ...
Volúmenes Docker:docker run -v /home/ubuntu/.m2:/root/.m2 \
maven:latest
Test Data Storageo Montar en volúmeneso Subdirectorio en el
control de versioneso Repositorio propioo Repositorio de
artefactos o Docker imágenes (con
datos de pruebas)
SAY MICROSERVICE!!!
Scalabilityo Red / nombres de
contenedor basados en el número del build
o Clustering (Docker Swarm)
¡GRACIAS POR VUESTRO TIEMPO!¿Preguntas?
✋
@nandollaca
Top Related