3.2 KiB
3.2 KiB
🧪 TESTS - Scripts de Verificación Snap7 V2
Este directorio contiene los scripts de test esenciales para validar el sistema de optimización snap7 v2.
📋 Scripts Principales
🚀 test_snap7v2_comprehensive.py
Función: Control de diferencias de velocidad y performance entre métodos legacy y optimizado
- ✅ Comparación de rendimiento con diferentes tamaños de datasets (5, 10, 100 variables)
- ✅ Stress testing con múltiples iteraciones
- ✅ Medición de mejoras de performance (hasta 96% de optimización)
- ✅ Generación de reportes detallados de rendimiento
- ✅ Validación de todas las áreas de memoria (DB, M, E)
🔍 test_simple_data_integrity.py
Función: Control de integridad de datos usando sistema de 2 fases
- ✅ Verificación de que ambos métodos lean exactamente los mismos valores
- ✅ Sistema de doble pasada para descartar variables cambiantes
- ✅ Detección automática de variables que cambien durante las pruebas
- ✅ Validación de consistencia entre lecturas
- ✅ Reporte de integridad con 100% de precisión
🎯 test_db1001_specific_values.py
Función: Verificación de valores hexadecimales específicos en DB1001
- ✅ Validación de 17 valores hexadecimales específicos predefinidos
- ✅ Comparación exacta entre métodos legacy y optimizado
- ✅ Verificación de tipos WORD (16-bit unsigned)
- ✅ Control de precisión hexadecimal exacta
- ✅ Validación de chunking automático
📊 Archivos de Reporte
Reportes JSON
snap7v2_test_report_*.json
- Reportes de performance comprehensivosdata_integrity_simple_*.json
- Reportes de integridad de datossetup_report_*.json
- Reportes de configuración de tests
Documentación
PERFORMANCE_MONITORING.md
- Guía de monitoreo de performance
🎯 Casos de Uso
Para Validar Performance
python test_snap7v2_comprehensive.py
- Mide diferencias de velocidad
- Genera reportes de mejora de rendimiento
- Valida escalabilidad del sistema
Para Validar Integridad de Datos
python test_simple_data_integrity.py
- Verifica que ambos métodos lean valores idénticos
- Usa doble pasada para mayor confiabilidad
- Detecta variables cambiantes automáticamente
Para Validar Valores Específicos
python test_db1001_specific_values.py
- Verifica valores hexadecimales exactos
- Valida lectura correcta de tipos WORD
- Control de precisión bit-level
✅ Estado de Validación
Todos los tests han sido ejecutados exitosamente con los siguientes resultados:
- 🚀 Performance: Mejora de hasta 96% en datasets grandes
- 🔍 Integridad: 100% de precisión en lectura de datos
- 🎯 Valores Específicos: 100% de exactitud en valores hexadecimales
🔧 Configuración
Los tests utilizan la configuración PLC definida en config/data/plc_config.json
:
- PLC: Siemens S7-315
- IP: 10.1.33.11
- Rack: 0, Slot: 2
📝 Notas Técnicas
- Chunking Automático: Los tests validan el límite de 20 variables por llamada read_multi_vars
- Buffer Management: Verificación correcta de allocación de buffers ctypes
- Error Handling: Manejo robusto de errores con fallback automático
- Threading Safety: Validación de operaciones thread-safe