addon
This commit is contained in:
293
docs/QUICKTEST.md
Executable file
293
docs/QUICKTEST.md
Executable file
@@ -0,0 +1,293 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user