Table of Contents
API Testing con Postman
Test scripts
En la propia documentación de Postman hay un montón de ejemplos de todo lo que es posible hacer con los test scripts de esta herramienta:
Newman
Instalar Newman de forma global como comando en tu equipo, listo para ejecutarse directamente desde la consola (Si aún no tienes Node.js instalado, sigue estas instrucciones):
santi@zenbook:$ npm install -g newman
Cómo lanzar una colección de Postman con Newman:
santi@zenbook:$ newman run api-collection.postman_collection.json
Cómo lanzar una colección de Postman con Newman para un entorno determinado:
santi@zenbook:$ newman run -e localhost.postman_environment.json api-collection.postman_collection.json
Puedes encontrar una colección de ejemplo ya preparada con algunos scripts, lista para ser ejecutada con Newman aqui
API testing con Postman automatizado con GitHub Actions
Dockerfile
El primer paso será generar la imagen docker de la API que hemos desarrollado, para que podamos lanzarla luego como un contenedor docker
FROM eclipse-temurin:21-jdk-alpine VOLUME /tmp EXPOSE 8080 COPY target/games-0.1.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"]
Docker compose
El siguiente es un ejemplo de un fichero docker-compose.yml listo para lanzar la API + Base de datos como contenedores docker
name: games services: games-db: image: mariadb:11.3.2 container_name: games-db restart: always environment: MYSQL_USER: games_user MYSQL_PASSWORD: games_password MYSQL_DATABASE: games MYSQL_PORT: 3306 MYSQL_ROOT_PASSWORD: test_root_password ports: - "3306:3306" healthcheck: test: [ CMD, healthcheck.sh, --connect, --innodb_initialized ] interval: 5s timeout: 3s retries: 3 networks: - network-games games-api: image: games-api container_name: games-api ports: - "8080:8080" depends_on: games-db: condition: service_healthy environment: SPRING_APPLICATION_JSON: '{ "spring.application.name": "games", "sever.port": "8080", "spring.jpa.hibernate.ddl-auto": "update", "spring.jpa.properties.hibernate.globally_quoted_identifiers": "true", "spring.datasource.url": "jdbc:mariadb://games-db:3306/games", "spring.datasource.username": "games_user", "spring.datasource.password": "games_password", "spring.jpa.database-platform": "org.hibernate.dialect.MariaDBDialect" }' networks: - network-games networks: network-games: driver: bridge
GitHub action
Por último, configuramos un workflow de GitHub Actions que hará lo siguiente:
- Generamos la imagen docker de nuestra API
- Lanzará nuestra API + Base de datos como contenedores docker
- Instalará Newman
- Lanzará la colección con los tests con Newman sobre la API que se acaba de lanzar
name: Integration tests with Newman on: pull_request: branches: - main - develop jobs: newman: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '21' - run: mvn package - run: docker build -t games-api . - run: docker compose up -d - run: npm install -g newman - run: newman run games.postman_collection.json -e local.postman_environment.json
© 2026 Santiago Faci

