Nicolas Cantu b935cbab20 Réorganisation complète : tests, documentation et nettoyage
- Réorganisation des tests par catégorie (unit, integration, connectivity, external)
- Création de scripts d'exécution automatisés pour les tests
- Création de guides techniques complets (ARCHITECTURE.md, API.md)
- Transfert des informations depuis specs/ vers docs/
- Nettoyage et archivage des fichiers obsolètes
- Documentation complète des tests avec exemples
- Scripts de maintenance et nettoyage automatique
- Structure professionnelle prête pour l'évolution
2025-08-25 14:13:26 +02:00
..

Tests Documentation

Ce répertoire contient tous les tests pour l'infrastructure 4NK Node, organisés par catégorie.

Structure des Tests

📁 unit/ - Tests Unitaires

Tests individuels pour les composants spécifiques :

  • test_healthcheck.sh - Test du healthcheck de sdk_relay
  • test_docker.sh - Test de la configuration Docker
  • test_simple.sh - Test simple de sdk_relay
  • test_final.sh - Test final de sdk_relay

📁 integration/ - Tests d'Intégration

Tests qui vérifient l'interaction entre plusieurs services :

  • test_3_relays.sh - Test de 3 instances sdk_relay
  • test_final_sync.sh - Test complet de synchronisation
  • test_sync_logs.sh - Test des logs de synchronisation
  • test_messages.sh - Test des messages entre relais

📁 connectivity/ - Tests de Connectivité

Tests de connectivité réseau et WebSocket :

  • test_connectivity.sh - Test de connectivité des services
  • test_websocket_messages.py - Test des messages WebSocket

📁 external/ - Tests de Nœuds Externes

Tests pour l'intégration avec des nœuds externes :

  • test_dev3_simple.py - Test simple de dev3.4nkweb.com
  • test_dev3_connectivity.py - Test de connectivité dev3
  • test_integration_dev3.sh - Test d'intégration dev3

📁 performance/ - Tests de Performance

Tests de performance (à créer) :

  • Tests de charge
  • Tests de latence
  • Tests de débit

Exécution des Tests

Test Complet

# Exécuter tous les tests
./tests/run_all_tests.sh

Tests par Catégorie

# Tests unitaires
./tests/run_unit_tests.sh

# Tests d'intégration
./tests/run_integration_tests.sh

# Tests de connectivité
./tests/run_connectivity_tests.sh

# Tests externes
./tests/run_external_tests.sh

Test Individuel

# Exemple pour un test spécifique
./tests/integration/test_3_relays.sh
python3 tests/external/test_dev3_simple.py

Prérequis

Services Requis

  • Docker et Docker Compose
  • Bitcoin Core (signet)
  • Blindbit
  • sdk_relay (3 instances)

Dépendances Python

pip install websockets asyncio json

Variables d'Environnement

Assurez-vous que les variables suivantes sont définies :

  • BITCOIN_RPC_URL
  • BLINDBIT_API_URL
  • RELAY_WEBSOCKET_URL

Interprétation des Résultats

Codes de Sortie

  • 0 : Test réussi
  • 1 : Test échoué
  • 2 : Test ignoré (prérequis non satisfaits)

Logs

  • Les logs détaillés sont écrits dans tests/logs/
  • Format : YYYY-MM-DD_HH-MM-SS_test-name.log

Rapports

  • Les rapports de test sont générés dans tests/reports/
  • Format JSON et HTML disponibles

Dépannage

Problèmes Courants

  1. Services non démarrés : Vérifiez que tous les services Docker sont actifs
  2. Connectivité réseau : Vérifiez les ports et pare-feu
  3. Certificats SSL : Pour les tests externes, vérifiez les certificats

Debug

# Mode verbose
./tests/run_all_tests.sh --verbose

# Mode debug
./tests/run_all_tests.sh --debug

# Test spécifique avec debug
./tests/integration/test_3_relays.sh --debug

Ajout de Nouveaux Tests

Structure Recommandée

tests/
├── new_category/
│   ├── test_new_feature.sh
│   ├── test_new_feature.py
│   └── README.md

Template de Test

#!/bin/bash
# Test: Description du test
# Auteur: Nom
# Date: YYYY-MM-DD

set -e

# Configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_FILE="tests/logs/$(date +%Y-%m-%d_%H-%M-%S)_test_name.log"

# Fonctions
log() {
    echo "[$(date +%Y-%m-%d\ %H:%M:%S)] $1" | tee -a "$LOG_FILE"
}

# Test principal
main() {
    log "Début du test"

    # Vérifications préliminaires
    check_prerequisites

    # Exécution du test
    run_test

    # Vérification des résultats
    verify_results

    log "Test terminé avec succès"
}

# Exécution
main "$@"

Maintenance

Nettoyage

# Nettoyer les logs anciens
./tests/cleanup.sh --days 7

# Nettoyer les rapports anciens
./tests/cleanup.sh --reports --days 30

Mise à Jour

  • Vérifiez régulièrement la compatibilité avec les nouvelles versions
  • Mettez à jour les tests lors de changements d'API
  • Documentez les changements dans CHANGELOG.md