7.7 KiB
7.7 KiB
Testing Guide - Linux BenchTools
Guide de test pour vérifier que tout fonctionne correctement.
✅ Checklist de test
1. Installation
# Cloner le projet
git clone https://gitea.maison43.duckdns.org/gilles/linux-benchtools.git
cd linux-benchtools
# Vérifier les fichiers
ls -la
# Exécuter l'installation
./install.sh
Résultat attendu :
- ✅ Docker images construites
- ✅ Conteneurs démarrés
- ✅ Fichier
.envcréé avec un token - ✅ Message de succès avec les URLs
2. Vérification des services
# Vérifier que les conteneurs tournent
docker compose ps
# Devrait afficher :
# linux_benchtools_backend running 0.0.0.0:8007->8007/tcp
# linux_benchtools_frontend running 0.0.0.0:8087->80/tcp
# Tester le backend
curl http://localhost:8007/api/health
# Résultat attendu : {"status":"ok"}
# Tester le frontend
curl -I http://localhost:8087
# Résultat attendu : HTTP/1.1 200 OK
3. Test de l'API Backend
Health Check
curl http://localhost:8007/api/health
# {"status":"ok"}
Stats (base vide)
curl http://localhost:8007/api/stats
# {"total_devices":0,"total_benchmarks":0,"avg_global_score":0,"last_benchmark_at":null}
Liste devices (vide)
curl http://localhost:8007/api/devices
# {"items":[],"total":0,"page":1,"page_size":20}
4. Test du Frontend
Ouvrir dans un navigateur :
http://localhost:8087
Vérifications :
- ✅ Dashboard s'affiche avec le thème Monokai dark
- ✅ Stats affichent "0" partout
- ✅ Message "Aucun device trouvé"
- ✅ Commande de benchmark est affichée
- ✅ Navigation fonctionne (Dashboard, Devices, Settings)
5. Test du script bench.sh
Test d'aide
./scripts/bench.sh --help
Résultat attendu :
- Affiche l'usage
- Liste toutes les options
Test avec erreur (sans paramètres)
./scripts/bench.sh
Résultat attendu :
- Message d'erreur clair
- Indique qu'il manque --server et --token
Test complet (simulation)
Sur la machine serveur (ou n'importe quelle machine Linux) :
# Récupérer le token
TOKEN=$(grep API_TOKEN .env | cut -d= -f2)
# Exécuter le benchmark
curl -s http://localhost:8087/scripts/bench.sh | bash -s -- \
--server http://localhost:8007/api/benchmark \
--token "$TOKEN" \
--short
Résultat attendu :
[INFO] Linux BenchTools Client v1.0.0
[INFO] Checking dependencies...
[INFO] All dependencies satisfied
[INFO] Collecting hardware information...
[INFO] Running benchmarks...
[INFO] Running CPU benchmark...
[INFO] Running memory benchmark...
[INFO] Running disk benchmark...
[INFO] Building JSON payload...
[INFO] Sending results to server...
[INFO] Benchmark submitted successfully!
[INFO] Response: {"status":"ok","device_id":1,"benchmark_id":1,...}
[INFO] Benchmark completed!
Vérifier dans l'interface
-
Rafraîchir le Dashboard (F5)
-
Vérifier que :
- Total Devices : 1
- Total Benchmarks : 1
- Le device apparaît dans le tableau
- Le score global est affiché
-
Cliquer sur "Voir" pour le device
-
Vérifier que :
- Informations hardware affichées
- Dernier benchmark visible
- Onglets fonctionnent
6. Test Upload de document
- Aller sur la page détail d'un device
- Onglet "Documents"
- Sélectionner un fichier PDF
- Choisir un type (ex: "manual")
- Cliquer "Upload"
Résultat attendu :
- ✅ Toast de confirmation
- ✅ Document apparaît dans la liste
- ✅ Bouton "Télécharger" fonctionne
7. Test Liens constructeur
- Page détail device → Onglet "Liens"
- Ajouter un lien :
- Label : "Support HP"
- URL : "https://support.hp.com"
- Cliquer "Ajouter"
Résultat attendu :
- ✅ Lien apparaît
- ✅ Lien cliquable
- ✅ Bouton supprimer fonctionne
8. Test Multiple Benchmarks
Exécuter 3 fois le script bench.sh sur la même machine :
# Bench 1
curl -s http://localhost:8087/scripts/bench.sh | bash -s -- \
--server http://localhost:8007/api/benchmark \
--token "$TOKEN" --short
# Attendre 30s
# Bench 2
curl -s http://localhost:8087/scripts/bench.sh | bash -s -- \
--server http://localhost:8007/api/benchmark \
--token "$TOKEN" --short
# Attendre 30s
# Bench 3
curl -s http://localhost:8087/scripts/bench.sh | bash -s -- \
--server http://localhost:8007/api/benchmark \
--token "$TOKEN" --short
Vérifications :
- ✅ Total Benchmarks : 3
- ✅ Onglet "Historique Benchmarks" affiche 3 entrées
- ✅ Scores peuvent varier légèrement
9. Test Logs
# Voir les logs backend
docker compose logs backend
# Vérifier qu'il n'y a pas d'erreurs Python
# Devrait afficher les requêtes API
10. Test Persistance
# Arrêter les conteneurs
docker compose down
# Vérifier que les données persistent
ls -la backend/data/
# Devrait afficher data.db
ls -la uploads/
# Devrait afficher les documents uploadés
# Redémarrer
docker compose up -d
# Attendre quelques secondes
sleep 5
# Vérifier que les données sont toujours là
curl http://localhost:8007/api/devices
# Devrait afficher les devices précédents
🧪 Tests avancés
Test avec iperf3
Si vous avez un serveur iperf3 :
# Sur le serveur de bench, lancer iperf3
docker run -d --name iperf3-server -p 5201:5201 networkstatic/iperf3 -s
# Exécuter le benchmark avec tests réseau
curl -s http://localhost:8087/scripts/bench.sh | bash -s -- \
--server http://localhost:8007/api/benchmark \
--token "$TOKEN" \
--iperf-server localhost
# Vérifier que network_score n'est pas null
Test sur différentes machines
- Machine 1 (serveur puissant)
- Machine 2 (Raspberry Pi)
- Machine 3 (vieille machine)
Vérifier :
- Scores différents selon les performances
- Classement cohérent dans le Dashboard
Test de charge
# Envoyer 10 benchmarks en parallèle
for i in {1..10}; do
curl -s http://localhost:8087/scripts/bench.sh | bash -s -- \
--server http://localhost:8007/api/benchmark \
--token "$TOKEN" \
--device "test-machine-$i" \
--short &
done
wait
# Vérifier que tous ont été enregistrés
curl http://localhost:8007/api/stats
🐛 Tests d'erreur
Token invalide
curl -X POST http://localhost:8007/api/benchmark \
-H "Authorization: Bearer INVALID_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
# Résultat attendu : HTTP 401
JSON invalide
curl -X POST http://localhost:8007/api/benchmark \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d 'invalid json'
# Résultat attendu : HTTP 400
Device inexistant
curl http://localhost:8007/api/devices/99999
# Résultat attendu : HTTP 404
📊 Résumé des tests
| Test | Commande | Résultat attendu |
|---|---|---|
| Installation | ./install.sh |
Services démarrés |
| Health check | curl localhost:8007/api/health |
{"status":"ok"} |
| Frontend | Navigateur | Dashboard visible |
| Benchmark | ./scripts/bench.sh |
Succès + device créé |
| Upload doc | Interface web | Document uploadé |
| Lien | Interface web | Lien ajouté |
| Persistance | docker compose down/up |
Données conservées |
✅ Tous les tests passent ?
Si oui : Félicitations ! L'application fonctionne parfaitement 🎉
Si non : Consultez DEPLOYMENT.md section Troubleshooting
📞 Problèmes courants
Backend ne démarre pas
docker compose logs backend
Vérifier les erreurs Python
Port déjà utilisé
ss -tulpn | grep 8007
# Changer le port dans .env
Benchmark échoue
# Vérifier les dépendances sur la machine cliente
sysbench --version
fio --version
Happy Testing! 🧪