# 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 ```bash # Exécuter tous les tests ./tests/run_all_tests.sh ``` ### Tests par Catégorie ```bash # 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 ```bash # 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 ```bash 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 ```bash # 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 ```bash tests/ ├── new_category/ │ ├── test_new_feature.sh │ ├── test_new_feature.py │ └── README.md ``` ### Template de Test ```bash #!/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 ```bash # 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`