- 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
185 lines
4.2 KiB
Markdown
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`
|