# Quick Test Guide - Linux BenchTools v1.1.0 Guide rapide pour tester les nouvelles fonctionnalités après la mise à jour. --- ## 🚀 Démarrage Rapide ```bash 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 ```bash curl http://localhost:8007/api/health # Attendu: {"status":"ok"} ``` ### Test 2 : Stats Endpoint (Fix session DB) ```bash curl http://localhost:8007/api/stats | jq # Attendu: JSON avec total_devices, total_benchmarks, avg_global_score ``` ### Test 3 : Devices Endpoint ```bash curl http://localhost:8007/api/devices?page_size=10 | jq # Attendu: JSON avec items[], total, page, page_size ``` ### Test 4 : Validation des Scores ```bash # 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 ```bash # 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 ```bash # 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 1. Ouvrir http://localhost:8087/ 2. Dans la barre de recherche, taper "lenovo" 3. ✅ Vérifier que seuls les devices avec "lenovo" s'affichent 4. Effacer le texte 5. ✅ Vérifier que tous les devices réapparaissent 6. Cliquer sur "Effacer" 7. ✅ Vérifier que le champ est vidé ### Test 2 : Bouton Actualiser 1. Ouvrir http://localhost:8087/ 2. Noter l'horodatage affiché (ex: "Mis à jour: 18:45:32") 3. Cliquer sur "🔄 Actualiser" 4. ✅ Vérifier que le bouton affiche "⏳ Chargement..." 5. ✅ Vérifier que le bouton est désactivé (grisé) 6. Attendre la fin du chargement 7. ✅ Vérifier que le bouton redevient "🔄 Actualiser" 8. ✅ Vérifier que l'horodatage a changé ### Test 3 : Gestion d'Erreurs avec Retry 1. Arrêter le backend : `docker compose stop backend` 2. Ouvrir http://localhost:8087/ 3. Cliquer sur "🔄 Actualiser" 4. ✅ Vérifier qu'un message d'erreur s'affiche 5. ✅ Vérifier le message : "Impossible de se connecter au serveur backend..." 6. ✅ Vérifier qu'un bouton "🔄 Réessayer" est présent 7. Redémarrer le backend : `docker compose start backend` 8. Attendre 5 secondes (démarrage) 9. Cliquer sur "🔄 Réessayer" 10. ✅ Vérifier que les données se chargent normalement ### Test 4 : Protection Anti-Spam 1. Ouvrir http://localhost:8087/ 2. Ouvrir la console du navigateur (F12) 3. Aller dans l'onglet "Network" 4. Cliquer rapidement 10 fois sur "🔄 Actualiser" 5. ✅ Vérifier qu'une seule requête `/api/devices` apparaît 6. ✅ Vérifier que le bouton reste désactivé pendant le chargement ### Test 5 : Auto-Refresh (30 secondes) 1. Ouvrir http://localhost:8087/ 2. Noter l'horodatage (ex: "Mis à jour: 18:45:32") 3. Attendre 30 secondes sans toucher à rien 4. ✅ Vérifier que l'horodatage se met à jour automatiquement 5. Ouvrir l'onglet Network (F12) 6. ✅ Vérifier qu'une requête `/api/devices` apparaît toutes les 30 secondes ### Test 6 : Responsive Design (Optionnel) 1. Ouvrir http://localhost:8087/ 2. Redimensionner la fenêtre du navigateur 3. ✅ Vérifier que les cartes stats s'adaptent (grid responsive) 4. ✅ Vérifier que la toolbar reste utilisable 5. Tester sur mobile (F12 → Toggle device toolbar) 6. ✅ Vérifier que tout est accessible --- ## 🧪 Tests avec Données Réelles ### Test 1 : Exécuter un Benchmark ```bash # 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 1. Ouvrir http://localhost:8087/ 2. ✅ Vérifier que "Total Devices" s'incrémente 3. ✅ Vérifier que "Total Benchmarks" s'incrémente 4. ✅ Vérifier que la nouvelle machine apparaît dans le tableau 5. Rechercher la machine par son nom 6. ✅ Vérifier qu'elle apparaît dans les résultats ### Test 3 : Modifier un Device 1. Aller sur http://localhost:8087/devices.html 2. Cliquer sur un device 3. Modifier la description 4. Sauvegarder 5. Vérifier dans les logs backend : ```bash docker logs linux_benchtools_backend --tail 50 ``` 6. ✅ Vérifier qu'une requête PUT /api/devices/{id} apparaît 7. Retourner au dashboard 8. ✅ Vérifier que le timestamp `updated_at` a bien changé (Fix Bug #1) --- ## 📊 Tests de Performance ### Test 1 : Temps de Chargement Initial ```bash # 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 ```bash # 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 1. Insérer 100+ devices dans la base (script de test) 2. Ouvrir http://localhost:8087/ 3. Taper dans la barre de recherche 4. ✅ Vérifier que le filtrage est instantané (< 100ms ressenti) 5. ✅ 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/health` fonctionne - [ ] `/api/stats` fonctionne (Fix Bug #2) - [ ] `/api/devices` fonctionne - [ ] Validation des scores rejette les valeurs invalides (Fix Bug #4) - [ ] Timestamp `updated_at` se 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 : ```bash echo "✅ Linux BenchTools v1.1.0 - PRODUCTION READY" ``` Si des tests échouent : ```bash 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 : 1. Vérifier les logs : `docker logs linux_benchtools_backend --tail 100` 2. Vérifier la console du navigateur (F12) 3. Consulter la documentation : - [BUGFIXES_2025-12-13.md](BUGFIXES_2025-12-13.md) - [FRONTEND_IMPROVEMENTS_2025-12-13.md](FRONTEND_IMPROVEMENTS_2025-12-13.md) - [README.md](README.md) --- **Version testée** : 1.1.0 **Date** : 13 décembre 2025 **Status** : ✅ Prêt pour tests