¿Qué es Bruno y por qué usarlo en QA?
Bruno es una herramienta de testing de APIs open source que está ganando popularidad como alternativa a Postman. Desarrollada con tecnología moderna, Bruno se destaca por ser completamente gratuita, no requerir cuenta obligatoria y almacenar los datos localmente en tu equipo, garantizando privacidad total.
A diferencia de Postman, Bruno utiliza un formato de archivo plano llamado Bru que es compatible con Git, facilitando la colaboración en equipo y el versionado de tus colecciones de APIs. Esto la convierte en una opción ideal para equipos de QA que buscan integrar el testing de APIs en sus flujos de CI/CD.
Prerrequisitos
Antes de comenzar con Bruno, necesitarás:
- Conocimientos básicos de APIs REST y métodos HTTP
- Experiencia previa con herramientas de testing de APIs (Postman, Insomnia, etc.)
- Una API de prueba para practicar (usaremos JSONPlaceholder)
- Git instalado en tu sistema (opcional, pero recomendado)
Instalación de Bruno
Bruno está disponible para Windows, macOS y Linux. Puedes descargarlo desde su sitio oficial o instalarlo usando gestores de paquetes:
Paso 1: Descarga e Instalación
Opción A: Descarga directa
Ve a usebruno.com y descarga la versión correspondiente a tu sistema operativo.
Opción B: Usando Homebrew (macOS)
brew install bruno
Opción C: Usando Chocolatey (Windows)
choco install bruno
Paso 2: Primera Ejecución
Una vez instalado, abre Bruno. Notarás inmediatamente la interfaz limpia y moderna, similar a Postman pero con un enfoque más minimalista.
Creando tu Primera Colección
Paso 3: Crear Nueva Colección
1. Haz clic en “Create Collection”
2. Nombra tu colección: “API Testing QA”
3. Selecciona una carpeta en tu sistema donde Bruno guardará los archivos
Bruno creará automáticamente una estructura de carpetas con archivos .bru que puedes versionar con Git.
Paso 4: Tu Primera Request
Vamos a crear una request GET básica usando la API de JSONPlaceholder:
1. Haz clic derecho en tu colección y selecciona “New Request”
2. Nombra la request: “Get All Users”
3. Configura la request:
Method: GET
URL: https://jsonplaceholder.typicode.com/users
4. Haz clic en “Send”
Deberías recibir una respuesta JSON con una lista de usuarios. Bruno mostrará automáticamente el código de estado, tiempo de respuesta y el cuerpo formateado.
Testing Avanzado con Bruno
Paso 5: Agregando Tests y Assertions
Bruno incluye un sistema de tests integrado usando JavaScript. En la pestaña “Tests” de tu request, agrega:
test('Status code should be 200', function() {
expect(res.getStatus()).to.equal(200);
});
test('Response should be an array', function() {
expect(res.getBody()).to.be.an('array');
});
test('First user should have required fields', function() {
const users = res.getBody();
expect(users[0]).to.have.property('name');
expect(users[0]).to.have.property('email');
expect(users[0]).to.have.property('username');
});
Paso 6: Usando Variables y Environments
Bruno maneja variables de manera similar a Postman. Crea un environment:
1. Ve a “Environments” en el panel izquierdo
2. Crea un nuevo environment llamado “Testing”
3. Agrega variables:
baseUrl: https://jsonplaceholder.typicode.com
userId: 1
4. Modifica tu request para usar variables:
URL: {{baseUrl}}/users/{{userId}}
Paso 7: Request POST con Datos
Creemos una request POST para crear un nuevo usuario:
1. Nueva request: “Create User”
2. Configuración:
Method: POST
URL: {{baseUrl}}/users
Headers:
Content-Type: application/json
3. Body (JSON):
{
"name": "Jorge Escorcia",
"username": "jorgeqa",
"email": "jorge@mundoqa.com",
"address": {
"street": "QA Street",
"suite": "Suite 123",
"city": "Bogotá",
"zipcode": "110111"
}
}
4. Tests para POST:
test('User created successfully', function() {
expect(res.getStatus()).to.equal(201);
});
test('Response contains created user data', function() {
const user = res.getBody();
expect(user).to.have.property('name', 'Jorge Escorcia');
expect(user).to.have.property('email', 'jorge@mundoqa.com');
});
Casos de Uso Reales en Proyectos QA
Caso 1: Testing de Autenticación
Para APIs que requieren autenticación, Bruno maneja tokens de manera eficiente:
// En Pre-request Script
const loginResponse = await bru.post({
url: '{{baseUrl}}/auth/login',
body: {
username: 'admin',
password: 'password123'
}
});
const token = loginResponse.data.token;
bru.setVar('authToken', token);
Luego usa el token en headers:
Authorization: Bearer {{authToken}}
Caso 2: Testing de Flujos Completos
Bruno permite crear flujos de testing secuenciales:
1. Login → Obtiene token
2. Create Resource → Usa token para crear
3. Get Resource → Verifica creación
4. Update Resource → Modifica datos
5. Delete Resource → Limpia datos
Caso 3: Integración con CI/CD
Bruno CLI permite ejecutar colecciones en pipelines:
# Instalar Bruno CLI
npm install -g @usebruno/cli
# Ejecutar colección
bru run collection-path --env testing
Comparación con Postman
Ventajas de Bruno:
- Open Source y Gratuito: Sin limitaciones de requests
- Local First: Datos almacenados localmente
- Git Friendly: Archivos planos versionables
- No requiere cuenta: Funciona offline completamente
- Rendimiento: Más liviano que Postman
Consideraciones:
- Ecosistema más pequeño que Postman
- Menos integraciones de terceros
- Comunidad en crecimiento
Mejores Prácticas para QA
1. Organización de Colecciones
API-Testing/
├── environments/
│ ├── dev.bru
│ ├── staging.bru
│ └── prod.bru
├── auth/
│ └── login.bru
├── users/
│ ├── get-users.bru
│ ├── create-user.bru
│ └── delete-user.bru
└── bruno.json
2. Naming Conventions
- Usa nombres descriptivos para requests
- Agrupa requests por funcionalidad
- Prefija con números para orden de ejecución
3. Documentación
Bruno permite agregar documentación en formato Markdown a cada request, facilitando el mantenimiento del equipo.
Conclusión y Próximos Pasos
Bruno representa una excelente alternativa a Postman para equipos QA que valoran la privacidad, el control local de datos y la integración con Git. Su enfoque open source y su arquitectura moderna lo convierten en una herramienta prometedora para el futuro del testing de APIs.
Próximos Pasos Recomendados:
- Practica con APIs reales: Aplica Bruno en tus proyectos actuales
- Explora Bruno CLI: Integra testing automatizado en tus pipelines
- Colabora en equipo: Configura repositorios Git para compartir colecciones
- Contribuye al proyecto: Bruno es open source y acepta contribuciones
- Mantente actualizado: Sigue el desarrollo en GitHub para nuevas features
Como QA Testers, adoptar herramientas modernas y eficientes como Bruno nos permite enfocarnos en lo importante: garantizar la calidad del software. La curva de aprendizaje es mínima si ya usas Postman, pero los beneficios a largo plazo son significativos.
¿Has probado Bruno en tus proyectos? ¿Qué otras alternativas a Postman recomendarías? Comparte tu experiencia en los comentarios.
¿Te resultó útil este artículo?
Compártelo con otros QA Testers hispanohablantes.
Si tienes preguntas o quieres profundizar en algún tema,
escríbeme — estoy aquí para ayudarte.





