Testing i Debugging de Workflows
Testing i Debugging
Execució pas a pas
Mètode 1: Execute Node (recomanat per debugging)
1. Crear workflow
2. Configurar primer node (trigger)
3. Click "Execute Node" NOMÉS al primer node
4. Veure output
5. Configurar segon node
6. Click "Execute Node" al segon node
7. Repetir per cada node
Avantatges: - ✅ Veus resultat de cada pas - ✅ No necessites executar tot - ✅ Ideal per desenvolupament
Mètode 2: Execute Workflow (testing complet)
Inspecció de dades a cada node
Pestanyes disponibles:
1. INPUT:
2. OUTPUT:
3. JSON:
4. TABLE:
5. BINARY:
Exemple d'inspecció:
Node: HTTP Request
Output: 5 items
TABLE view:
| id | name | email | status |
|-----|-----------|---------------------|---------|
| 1 | Joan | joan@example.com | active |
| 2 | Maria | maria@example.com | active |
| 3 | Pere | pere@example.com | pending |
| 4 | Anna | anna@example.com | active |
| 5 | Marc | marc@example.com | inactive|
JSON view:
[
{
"json": {
"id": 1,
"name": "Joan",
"email": "joan@example.com",
"status": "active"
}
},
...
]
Mock data per a testing
Crear dades de prova:
Mètode 1: Manual Trigger + Set Node
[Manual Trigger]
↓
[Set Node]
Items: Multiple
Item 1:
user_id: 1
name: "Joan"
email: "joan@test.com"
Item 2:
user_id: 2
name: "Maria"
email: "maria@test.com"
↓
[Rest of workflow...]
Mètode 2: Function Node amb dades mock
// Generar dades de test
const mockUsers = [
{id: 1, name: "Joan", age: 30, city: "Barcelona"},
{id: 2, name: "Maria", age: 25, city: "Girona"},
{id: 3, name: "Pere", age: 35, city: "Tarragona"},
];
return mockUsers.map(user => ({json: user}));
Mètode 3: Pinned Data
1. Executar node una vegada amb dades reals
2. Click "Pin Data" al output
3. Les dades queden fixades
4. Següents execucions usen dades pinnades
5. Útil per a:
- Testing sense cridar API cada vegada
- Desenvolupament offline
- Dades consistents per a testing
Logs i manejo d'errors
Nivells de log:
Veure logs:
# Docker
docker logs -f n8n
# Docker Compose
docker compose logs -f n8n
# Filtrar per nivell
docker logs n8n 2>&1 | grep ERROR
Error handling a workflows:
1. Continue On Fail (node level)
Node Configuration:
Continue On Fail: true
Comportament:
- Si node falla, workflow continua
- Error es pot capturar després
2. Error Trigger (workflow level)
3. Try-Catch pattern
[Try Process]
↓
[IF: Success?] ──true──> [Continue workflow]
│
└──false──> [Error Handler] → [Retry] or [Alert]
Exemple complet d'error handling:
[HTTP Request]
Settings:
Continue On Fail: true
↓
[IF Node]
Condition: {{$json.error}} not exists
↓
true ──> [Process Success]
│
false ─> [Function: Log Error]
↓
[Slack: Alert Team]
↓
[Retry (Wait + Loop)]
Re-execució de workflows
Re-executar workflow complet:
Re-executar des d'un node específic:
Useful per a: - Errors temporals (API down) - Després de fix de bugs - Testing de canvis
Resum Unitat 3:
Hem après: 1. Tipus de nodes i les seves funcions 2. Com crear i connectar workflows 3. Estructura de dades JSON a N8N 4. Expressions per accedir i manipular dades 5. Tècniques de testing i debugging
Conceptes clau: - Nodes són els blocs de construcció - Tot són arrays d'items en format JSON - Expressions {{...}} permeten dinamisme - Execute Node és millor per debugging - Error handling és essencial
Pròxims passos: A la Unitat 4 explorarem nodes més avançats per a transformacions complexes i control de flux sofisticat.