Pruebas UI de app
OpenFactory puede ejecutar flujos reutilizables en navegador en VM tester de escritorio gestionadas. La aplicación puede desplegarse con OpenFactory u hospedarse donde la VM tester pueda alcanzar.
Los escenarios combinan acciones semánticas como open, click, type, key, wait y assert con capturas, diagnósticos del navegador y un veredicto registrado. Son mejores para un flujo de usuario conocido; usa el walker autónomo para descubrimiento acotado.
Crear y ejecutar un escenario
Obtén la VM tester de la app:
ensure_tester_vm(app="my-app", app_url="https://staging.example.com")Luego guarda un escenario cuyos pasos usen etiquetas visibles significativas:
[
{ "action": "open_url", "value": "${APP_URL}" },
{ "action": "type", "target": "email field", "value": "${EMAIL}" },
{ "action": "type", "target": "password field", "value": "${PASSWORD}" },
{ "action": "click", "target": "Sign in" },
{ "action": "assert_text", "expect": "Dashboard" },
{ "action": "assert_no_error" }
]Usa create_app_scenario, luego ejecuta el ID de escenario devuelto con run_app_scenario. La primera ejecución resuelve elementos mediante OmniParser. Las siguientes pueden reutilizar la caché de elementos endurecida y re-resolver solo pasos cambiados. Revisa si cada paso fue cacheado o parseado al diagnosticar un resultado.
Qué significa una ejecución superada
Un informe cuenta como validación solo cuando:
- su estado es
passed; - apuntó al entorno y revisión previstos;
- cualquier protección de staging y login de aplicación completaron; y
- las aserciones se ejecutaron dentro del producto, no en una página de login o protección.
Un escenario superado demuestra solo el flujo y aserciones declarados. No establece corrección completa de aplicación, accesibilidad, seguridad ni comportamiento cross-browser.
Variables y secretos
Los pasos referencian valores como ${VAR} y seeds TOTP como ${totp:VAR}. Los valores por defecto no secretos pueden vivir con el escenario. Los secretos pueden almacenarse en el almacén cifrado del propietario al crear el escenario; overrides de una sola ejecución pasados a run_app_scenario se fusionan para esa ejecución y no se persisten.
No coloques contraseñas, tokens o seeds TOTP literales en texto de paso, descripciones de escenario, capturas o exportaciones de incidencias. Para códigos de un solo uso por correo, la acción email_otp requiere una integración Gmail conectada explícitamente y activa para el propietario del escenario.
Aserciones útiles
assert_textverifica texto visible esperado.assert_no_errorcomprueba frases de error integradas o suministradas.assert_visualcompara un hash perceptual con una línea base almacenada.assert_stablemuestrea una región por parpadeo/desaparición inesperados.assert_progressverifica que una región en streaming sigue cambiando durante un periodo mínimo.networkpuede interrumpir y restaurar la red de la VM tester para pruebas de recuperación.
Las aserciones visuales y temporales son heurísticas. Ajusta umbrales contra datos de prueba estables e inspecciona fotogramas capturados antes de tratar deriva como defecto de producto.
Prueba directa y grabada
Para trabajo exploratorio, conduce la VM con desktop_open_url, desktop_screenshot, desktop_click, desktop_type y herramientas desktop relacionadas. Usa start_app_test, record_app_test_step y finish_app_test cuando esa secuencia manual deba convertirse en una ejecución auditable.
annotate_screenshot puede añadir cajas etiquetadas a la evidencia. Una anotación explica qué debe inspeccionar un revisor; no prueba por sí sola que el elemento funcionó.
Notas operativas
- Las VM tester se reutilizan por app/host. Escala el pool tester para trabajo paralelo en lugar de crear duplicados arbitrarios.
- El tester por defecto no tiene disco de persistencia extra. Solicita persistencia solo cuando el estado deba sobrevivir a un reinicio y acepta el arranque inicial más largo.
- Un timeout de cliente no cancela necesariamente el trabajo del backend; inspecciona la ejecución antes de reintentar.
- Mantén informes privados salvo que sus capturas y diagnósticos se hayan revisado por datos sensibles.