4NK_node/tests/README.md
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

185 lines
4.2 KiB
Markdown

# 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`