Ejemplos
El directorio
examples/ del
repositorio contiene servicios de ejemplo autocontenidos. Cada uno tiene su propio
go.mod, un Dockerfile, un component-config.yml, datos iniciales y features de
Karate, y ejercita el pipeline de principio a fin contra un mock.
| Ejemplo | Mock | Qué hace |
|---|---|---|
postgres-app |
PostgreSQL | API de usuarios cargada desde scripts SQL; también es el ejemplo de estrés |
mysql-app |
MySQL | inserta filas JSON precargadas |
mongodb-app |
MongoDB | inserta documentos JSON precargados |
redis-app |
Redis | almacena valores JSON precargados |
kafka-app |
Kafka | publica mensajes JSON precargados |
pubsub-app |
Pub/Sub | publica mensajes JSON precargados |
gcs-app |
GCS | sube un objeto JSON precargado |
s3-app |
Floci (S3) | sube un objeto JSON precargado |
mountebank-app |
Mountebank | llama a una API externa simulada |
Ejecuta cualquiera de ellos desde su directorio:
make test-launcher-image # once, from the repository root
cd examples/postgres-app
docker build -t postgres-app:latest .
gtool test
Todos los ejemplos usan port: auto en su mock y host-port: auto en la app, y
llegan al mock mediante un placeholder (${mocks.postgresql.port};
${mocks.kafka.docker-port} en Kafka, el listener que usan los contenedores de la
app), así que se pueden ejecutar varios a la vez. postgres-app y mountebank-app
llaman a la app por HTTP con * url appUrl; los demás comprueban el mock con los
helpers del launcher. mountebank-app no es seguro de ejecutar en paralelo consigo
mismo: su impostor escucha en el puerto fijo 4545.
CI
examples/ci/jenkins
levanta un Jenkins local que ejecuta los pipelines de ejemplo con gtool, y
examples/postgres-app/Jenkinsfile muestra un pipeline que ejecuta sus tests de
componente.