v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40) - Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard) - Ollama GPU fonctionnel - Self-healing interactif - Dashboard confiance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
172
visual_workflow_builder/test_nouvelles_fonctionnalites.py
Executable file
172
visual_workflow_builder/test_nouvelles_fonctionnalites.py
Executable file
@@ -0,0 +1,172 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test des nouvelles fonctionnalités - Visual Workflow Builder
|
||||
|
||||
1. Prévisualisation de l'élément sélectionné dans les propriétés
|
||||
2. Nœud "Validation (Enter)" dans la palette
|
||||
"""
|
||||
|
||||
import requests
|
||||
import json
|
||||
import sys
|
||||
import time
|
||||
|
||||
def test_backend_health():
|
||||
"""Test de santé du backend"""
|
||||
print("🔍 Test de santé du backend...")
|
||||
|
||||
try:
|
||||
response = requests.get('http://localhost:5002/health', timeout=5)
|
||||
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
print(f"✅ Backend en bonne santé: {data['status']}")
|
||||
return True
|
||||
else:
|
||||
print(f"❌ Backend pas en bonne santé: {response.status_code}")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Backend inaccessible: {e}")
|
||||
return False
|
||||
|
||||
def test_frontend_access():
|
||||
"""Test d'accès au frontend"""
|
||||
print("🔍 Test d'accès au frontend...")
|
||||
|
||||
try:
|
||||
response = requests.get('http://localhost:3000', timeout=5)
|
||||
|
||||
if response.status_code == 200:
|
||||
print("✅ Frontend accessible")
|
||||
return True
|
||||
else:
|
||||
print(f"❌ Frontend inaccessible: {response.status_code}")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Frontend inaccessible: {e}")
|
||||
return False
|
||||
|
||||
def test_screen_capture_api():
|
||||
"""Test de l'API de capture d'écran"""
|
||||
print("🔍 Test de l'API de capture d'écran...")
|
||||
|
||||
try:
|
||||
response = requests.post(
|
||||
'http://localhost:5002/api/screen-capture/capture',
|
||||
headers={'Content-Type': 'application/json'},
|
||||
json={},
|
||||
timeout=10
|
||||
)
|
||||
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
print(f"✅ Capture d'écran fonctionnelle: {data['width']}x{data['height']}")
|
||||
return True
|
||||
else:
|
||||
print(f"❌ Erreur capture: {response.status_code}")
|
||||
return False
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Exception lors de la capture: {e}")
|
||||
return False
|
||||
|
||||
def print_test_instructions():
|
||||
"""Affiche les instructions de test manuel"""
|
||||
print("\n" + "="*60)
|
||||
print("📋 INSTRUCTIONS DE TEST MANUEL")
|
||||
print("="*60)
|
||||
|
||||
print("\n🎯 Test 1: Prévisualisation de l'élément sélectionné")
|
||||
print("1. Ouvrez http://localhost:3000 dans votre navigateur")
|
||||
print("2. Créez un nouveau workflow")
|
||||
print("3. Glissez un nœud 'Cliquer' sur le canvas")
|
||||
print("4. Double-cliquez sur le nœud pour ouvrir les propriétés")
|
||||
print("5. Cliquez sur 'Sélection visuelle' pour l'élément cible")
|
||||
print("6. Choisissez 'Capturer Application Externe'")
|
||||
print("7. Pendant le countdown, positionnez-vous sur une application")
|
||||
print("8. Cliquez sur un élément dans la capture")
|
||||
print("9. Confirmez la sélection")
|
||||
print("10. ✅ VÉRIFIEZ: Une prévisualisation de l'élément apparaît dans les propriétés")
|
||||
|
||||
print("\n🎯 Test 2: Nœud Validation (Enter)")
|
||||
print("1. Dans la palette de gauche, section 'Actions Web'")
|
||||
print("2. ✅ VÉRIFIEZ: Le nœud 'Valider (Enter)' est présent avec une icône ↵")
|
||||
print("3. Glissez le nœud 'Valider (Enter)' sur le canvas")
|
||||
print("4. ✅ VÉRIFIEZ: Le nœud s'affiche avec l'icône Enter et la couleur verte")
|
||||
print("5. Double-cliquez sur le nœud pour ouvrir les propriétés")
|
||||
print("6. ✅ VÉRIFIEZ: Les paramètres 'Élément cible' et 'Timeout' sont disponibles")
|
||||
|
||||
print("\n🎯 Test 3: Workflow complet avec validation")
|
||||
print("1. Créez un workflow avec cette séquence :")
|
||||
print(" - Nœud 'Saisir du texte' (pour remplir un champ)")
|
||||
print(" - Nœud 'Valider (Enter)' (pour valider la saisie)")
|
||||
print(" - Nœud 'Cliquer' (pour cliquer sur un bouton)")
|
||||
print("2. Connectez les nœuds avec des flèches")
|
||||
print("3. ✅ VÉRIFIEZ: Le workflow se construit correctement")
|
||||
print("4. Sauvegardez le workflow")
|
||||
print("5. ✅ VÉRIFIEZ: Le workflow se sauvegarde avec le nœud validation")
|
||||
|
||||
def print_expected_results():
|
||||
"""Affiche les résultats attendus"""
|
||||
print("\n" + "="*60)
|
||||
print("🎯 RÉSULTATS ATTENDUS")
|
||||
print("="*60)
|
||||
|
||||
print("\n✅ Prévisualisation de l'élément :")
|
||||
print(" - Image miniature de l'élément sélectionné")
|
||||
print(" - Informations : Type, Position, Taille")
|
||||
print(" - Affichage dans le panneau des propriétés")
|
||||
print(" - Bordure verte autour de l'élément dans l'image")
|
||||
|
||||
print("\n✅ Nœud Validation :")
|
||||
print(" - Présent dans la palette 'Actions Web'")
|
||||
print(" - Icône : ↵ (KeyboardReturn)")
|
||||
print(" - Couleur : Vert (#2e7d32)")
|
||||
print(" - Paramètres : Élément cible (optionnel), Timeout")
|
||||
|
||||
print("\n✅ Intégration :")
|
||||
print(" - Drag & drop fonctionnel")
|
||||
print(" - Propriétés configurables")
|
||||
print(" - Connexions avec autres nœuds")
|
||||
print(" - Sauvegarde/chargement de workflow")
|
||||
|
||||
def main():
|
||||
"""Fonction principale de test"""
|
||||
print("🚀 Test des Nouvelles Fonctionnalités - Visual Workflow Builder")
|
||||
print("=" * 70)
|
||||
|
||||
# Tests automatiques
|
||||
tests = [
|
||||
test_backend_health,
|
||||
test_frontend_access,
|
||||
test_screen_capture_api
|
||||
]
|
||||
|
||||
passed = 0
|
||||
total = len(tests)
|
||||
|
||||
for test in tests:
|
||||
if test():
|
||||
passed += 1
|
||||
|
||||
print(f"\n📊 Tests automatiques : {passed}/{total} réussis")
|
||||
|
||||
if passed == total:
|
||||
print("🎉 Tous les tests automatiques sont passés !")
|
||||
print_test_instructions()
|
||||
print_expected_results()
|
||||
|
||||
print("\n" + "="*60)
|
||||
print("🚀 PRÊT POUR LES TESTS MANUELS")
|
||||
print("="*60)
|
||||
print("L'application est prête. Suivez les instructions ci-dessus.")
|
||||
return 0
|
||||
else:
|
||||
print("❌ Certains tests automatiques ont échoué.")
|
||||
print(" Assurez-vous que l'application est démarrée avec ./start_full.sh")
|
||||
return 1
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user