Skip to Content
TestingPruebas UI de app

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_text verifica texto visible esperado.
  • assert_no_error comprueba frases de error integradas o suministradas.
  • assert_visual compara un hash perceptual con una línea base almacenada.
  • assert_stable muestrea una región por parpadeo/desaparición inesperados.
  • assert_progress verifica que una región en streaming sigue cambiando durante un periodo mínimo.
  • network puede 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.

Relacionado