Files
rpa_vision_v3/visual_workflow_builder/test_nouvelles_fonctionnalites.py
Dom a27b74cf22 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>
2026-01-29 11:23:51 +01:00

172 lines
6.0 KiB
Python
Executable File

#!/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())