8.4 KiB
Executable File
8.4 KiB
Executable File
Quick Test Guide - Linux BenchTools v1.1.0
Guide rapide pour tester les nouvelles fonctionnalités après la mise à jour.
🚀 Démarrage Rapide
cd /home/gilles/Documents/vscode/serv_benchmark
# Rebuild et redémarrer
docker compose build backend
docker compose up -d
# Vérifier les logs
docker logs linux_benchtools_backend --tail 20
docker logs linux_benchtools_frontend --tail 20
✅ Tests Backend (v1.0.1)
Test 1 : Health Check
curl http://localhost:8007/api/health
# Attendu: {"status":"ok"}
Test 2 : Stats Endpoint (Fix session DB)
curl http://localhost:8007/api/stats | jq
# Attendu: JSON avec total_devices, total_benchmarks, avg_global_score
Test 3 : Devices Endpoint
curl http://localhost:8007/api/devices?page_size=10 | jq
# Attendu: JSON avec items[], total, page, page_size
Test 4 : Validation des Scores
# Test avec un score invalide (devrait être rejeté)
curl -X POST http://localhost:8007/api/benchmark \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"device_identifier": "test",
"bench_script_version": "1.0",
"hardware": {...},
"results": {
"global_score": 150 # ❌ Invalide (>100)
}
}'
# Attendu: Erreur 422 Unprocessable Entity
✅ Tests Frontend (v1.1.0)
Test 1 : Vérifier les Nouveaux Éléments HTML
# Vérifier la barre de recherche
curl -s http://localhost:8087/ | grep "searchInput"
# Attendu: Ligne avec id="searchInput"
# Vérifier le bouton actualiser
curl -s http://localhost:8087/ | grep "refreshBtn"
# Attendu: Ligne avec id="refreshBtn"
# Vérifier l'horodatage
curl -s http://localhost:8087/ | grep "lastUpdate"
# Attendu: Ligne avec id="lastUpdate"
Test 2 : Vérifier les Fichiers JS/CSS
# Vérifier que dashboard.js contient la fonction de recherche
curl -s http://localhost:8087/js/dashboard.js | grep "filterDevices"
# Attendu: Fonction filterDevices présente
# Vérifier que components.css contient les skeleton loaders
curl -s http://localhost:8087/css/components.css | grep "skeleton"
# Attendu: Classes skeleton présentes
🌐 Tests Manuels dans le Navigateur
Test 1 : Recherche en Temps Réel
- Ouvrir http://localhost:8087/
- Dans la barre de recherche, taper "lenovo"
- ✅ Vérifier que seuls les devices avec "lenovo" s'affichent
- Effacer le texte
- ✅ Vérifier que tous les devices réapparaissent
- Cliquer sur "Effacer"
- ✅ Vérifier que le champ est vidé
Test 2 : Bouton Actualiser
- Ouvrir http://localhost:8087/
- Noter l'horodatage affiché (ex: "Mis à jour: 18:45:32")
- Cliquer sur "🔄 Actualiser"
- ✅ Vérifier que le bouton affiche "⏳ Chargement..."
- ✅ Vérifier que le bouton est désactivé (grisé)
- Attendre la fin du chargement
- ✅ Vérifier que le bouton redevient "🔄 Actualiser"
- ✅ Vérifier que l'horodatage a changé
Test 3 : Gestion d'Erreurs avec Retry
- Arrêter le backend :
docker compose stop backend - Ouvrir http://localhost:8087/
- Cliquer sur "🔄 Actualiser"
- ✅ Vérifier qu'un message d'erreur s'affiche
- ✅ Vérifier le message : "Impossible de se connecter au serveur backend..."
- ✅ Vérifier qu'un bouton "🔄 Réessayer" est présent
- Redémarrer le backend :
docker compose start backend - Attendre 5 secondes (démarrage)
- Cliquer sur "🔄 Réessayer"
- ✅ Vérifier que les données se chargent normalement
Test 4 : Protection Anti-Spam
- Ouvrir http://localhost:8087/
- Ouvrir la console du navigateur (F12)
- Aller dans l'onglet "Network"
- Cliquer rapidement 10 fois sur "🔄 Actualiser"
- ✅ Vérifier qu'une seule requête
/api/devicesapparaît - ✅ Vérifier que le bouton reste désactivé pendant le chargement
Test 5 : Auto-Refresh (30 secondes)
- Ouvrir http://localhost:8087/
- Noter l'horodatage (ex: "Mis à jour: 18:45:32")
- Attendre 30 secondes sans toucher à rien
- ✅ Vérifier que l'horodatage se met à jour automatiquement
- Ouvrir l'onglet Network (F12)
- ✅ Vérifier qu'une requête
/api/devicesapparaît toutes les 30 secondes
Test 6 : Responsive Design (Optionnel)
- Ouvrir http://localhost:8087/
- Redimensionner la fenêtre du navigateur
- ✅ Vérifier que les cartes stats s'adaptent (grid responsive)
- ✅ Vérifier que la toolbar reste utilisable
- Tester sur mobile (F12 → Toggle device toolbar)
- ✅ Vérifier que tout est accessible
🧪 Tests avec Données Réelles
Test 1 : Exécuter un Benchmark
# Sur une machine Linux (ou la machine hôte)
curl -s http://localhost:8087/scripts/bench.sh | bash -s -- \
--server http://localhost:8007/api/benchmark \
--token "YOUR_TOKEN_FROM_ENV" \
--device "test-machine"
Test 2 : Vérifier dans le Dashboard
- Ouvrir http://localhost:8087/
- ✅ Vérifier que "Total Devices" s'incrémente
- ✅ Vérifier que "Total Benchmarks" s'incrémente
- ✅ Vérifier que la nouvelle machine apparaît dans le tableau
- Rechercher la machine par son nom
- ✅ Vérifier qu'elle apparaît dans les résultats
Test 3 : Modifier un Device
- Aller sur http://localhost:8087/devices.html
- Cliquer sur un device
- Modifier la description
- Sauvegarder
- Vérifier dans les logs backend :
docker logs linux_benchtools_backend --tail 50 - ✅ Vérifier qu'une requête PUT /api/devices/{id} apparaît
- Retourner au dashboard
- ✅ Vérifier que le timestamp
updated_ata bien changé (Fix Bug #1)
📊 Tests de Performance
Test 1 : Temps de Chargement Initial
# Mesurer le temps de chargement de la page
curl -o /dev/null -s -w 'Total: %{time_total}s\n' http://localhost:8087/
# Attendu: < 1 seconde
Test 2 : Temps de Réponse API
# Stats endpoint
time curl -s http://localhost:8007/api/stats > /dev/null
# Attendu: < 200ms
# Devices endpoint
time curl -s http://localhost:8007/api/devices?page_size=50 > /dev/null
# Attendu: < 500ms
Test 3 : Recherche avec Beaucoup de Devices
- Insérer 100+ devices dans la base (script de test)
- Ouvrir http://localhost:8087/
- Taper dans la barre de recherche
- ✅ Vérifier que le filtrage est instantané (< 100ms ressenti)
- ✅ Vérifier qu'il n'y a pas de lag
🐛 Tests de Régression
Test 1 : Fonctionnalités Existantes
- Dashboard affiche les stats correctement
- Tableau des devices affiche tous les devices
- Scores sont affichés avec les bonnes couleurs
- Navigation entre pages fonctionne
- Liens "Voir" dans le tableau fonctionnent
- Page device_detail fonctionne
Test 2 : Style Monokai
- Thème sombre est appliqué
- Couleurs sont cohérentes
- Badges de scores ont les bonnes couleurs
- Pas de régression visuelle
✅ Checklist Finale
Backend
/api/healthfonctionne/api/statsfonctionne (Fix Bug #2)/api/devicesfonctionne- Validation des scores rejette les valeurs invalides (Fix Bug #4)
- Timestamp
updated_atse met à jour (Fix Bug #1) - Aucune erreur dans les logs backend
Frontend
- Barre de recherche présente et fonctionne
- Bouton "🔄 Actualiser" présent et fonctionne
- Horodatage s'affiche et se met à jour
- Bouton "Effacer" fonctionne
- Erreurs affichent un bouton "🔄 Réessayer" (Fix Bug #3)
- Protection anti-spam fonctionne
- Auto-refresh fonctionne (30s)
- Aucune erreur dans la console du navigateur
Documentation
- CHANGELOG_2025-12-13.md créé
- BUGFIXES_2025-12-13.md créé
- FRONTEND_IMPROVEMENTS_2025-12-13.md créé
- QUICKTEST.md créé (ce fichier)
🎉 Validation Finale
Si tous les tests ci-dessus passent :
echo "✅ Linux BenchTools v1.1.0 - PRODUCTION READY"
Si des tests échouent :
echo "❌ Des problèmes ont été détectés. Vérifier les logs."
docker logs linux_benchtools_backend --tail 100
docker logs linux_benchtools_frontend --tail 100
📞 Support
En cas de problème :
- Vérifier les logs :
docker logs linux_benchtools_backend --tail 100 - Vérifier la console du navigateur (F12)
- Consulter la documentation :
Version testée : 1.1.0 Date : 13 décembre 2025 Status : ✅ Prêt pour tests