Salta el contingut

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)

Click "Execute Workflow"
→ Executa tot el workflow de cop
→ Veure resultats finals

Inspecció de dades a cada node

Pestanyes disponibles:

1. INPUT:

Què rep el node
Dades del node anterior

2. OUTPUT:

Què retorna el node
Dades processades

3. JSON:

Vista raw JSON
Copia/pega fàcil
Estructura completa

4. TABLE:

Vista tabular
Millor per a múltiples items
Filtrable i ordenable

5. BINARY:

Fitxers (imatges, PDFs, etc.)
Preview visual
Descàrrega

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:

DEBUG:   Informació detallada
INFO:    Informació general
WARN:    Advertències
ERROR:   Errors

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)

[Workflow principal]
  ↓ (si falla)
[Error Trigger] → [Send alert] → [Log to DB]

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:

Execution History → Select execution → "Retry Execution"

Re-executar des d'un node específic:

1. Execution History
2. Select execution
3. Click node on vols començar
4. "Execute from here"

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.