Vigilar los cambios de una página
Guardar una referencia, comparar con ella y enterarse de que algo se ha movido. Incluido lo que nadie menciona: una página viva nunca coincide exactamente consigo misma.
diwall-watch responde a una sola pregunta: ¿ha cambiado esta página desde la última vez?
Guarda una imagen de referencia, compara el estado actual con ella y da un veredicto. Útil tras un despliegue, en una página que usted no controla, o en cualquier cosa que, si no, comprobaría a ojo cada mañana.
Guardar una referencia y comparar
# Una vez — registrar cómo es lo «normal»
diwall-watch --url https://target.local/ --sauver-reference --guide-version 1.3
# Después — tantas veces como quiera
diwall-watch --url https://target.local/ \
--comparer-pixel /opt/diwall/references/target.local/reference.png \
--guide-version 1.3
La comparación es aritmética: una proporción de píxeles distintos, y un veredicto. Ningún modelo, ninguna interpretación, ninguna red más allá de la propia página. La misma entrada da siempre la misma respuesta — por eso sirve para una comprobación que se ejecuta sin supervisión.
Lo que sorprende a todo el mundo
Dos capturas de una página sin cambios no son idénticas.
El renderizado no es perfectamente determinista. El suavizado de subpíxeles, el ajuste de las fuentes a la rejilla de píxeles, un hilo de barra de desplazamiento: dos renderizados tomados con segundos de diferencia de una página que nadie ha tocado pueden diferir en torno al 0,19 % de los píxeles.
Ese es el suelo. Un umbral por debajo señala cambios que no han ocurrido; un cambio real más pequeño se pierde en el ruido. Los dos fallos son silenciosos, y por eso conviene saberlo antes de fiarse de un veredicto.
--seuil-bruit 0.2 # por debajo: ruido
--seuil-stable 0.5 # por encima: un cambio
Excluir lo que debe moverse
Un panel de control con contadores en tiempo real, una marca de hora en una esquina, un banner rotativo: todo eso cambia cada segundo por diseño. Compararlo tal cual da o bien falsas alarmas continuas, o bien un umbral tan alto que oculta todo lo demás.
diwall-watch --url https://target.local/ \
--comparer-pixel reference.png \
--exclure-zone 0,0,400,80 \
--guide-version 1.3
Excluya la zona hecha para cambiar, y el resto de la página se puede vigilar con
un umbral estricto. La lección se aprendió por las malas: una comparación de un
panel de control devolvió una vez stable con un 0,19 % cuando la página
difería de verdad, porque la zona viva se había comido todo el margen.
Varias vistas de la misma página
diwall-watch --url https://target.local/ --sauver-reference \
--nom dashboard --guide-version 1.3
--nom conserva referencias distintas para la misma URL — sin sesión y con
sesión, antes y después de un despliegue, pantalla ancha y estrecha. Sin esta
opción, cada nueva referencia sobrescribe la anterior.
Vigilar una página tras un inicio de sesión
--sauver-reference hace su propia captura, y esa captura no está
autenticada. Para una página protegida, produzca la imagen con un escenario que
inicie sesión, y después pásela:
diwall-rpa --scenario login-dashboard.json --guide-version 1.3
diwall-watch --url https://target.local/dashboard \
--capture /tmp/diwall/…/capture_….png --sauver-reference \
--nom dashboard --guide-version 1.3
--capture toma un PNG existente en lugar de hacer uno. Lo mismo para la
comparación: captura mediante el escenario, comparación con --capture.
La estructura en lugar de los píxeles
Si lo que le importa es que la página siga funcionando, más que que siga viéndose igual, compare la estructura:
diwall-monitor-verifier --scenario page.json --reference page.ref.json
Compara el código HTTP, las estadísticas del DOM y los resultados de las
aserciones evaluer con una referencia guardada — sin píxeles, sin modelo de
visión, inmune a una actualización de fuentes. Otra pregunta, otra herramienta,
y a menudo la mejor para una comprobación sin supervisión.
En resumen
- Guardar una referencia, comparar, leer el veredicto.
- Los renderizados de una página sin cambios difieren en torno al 0,19 %: ese es su suelo de ruido.
--exclure-zonepara todo lo que está hecho para moverse.--nompara varias vistas de una misma URL.--capturepara vigilar una página tras un inicio de sesión.- La comparación de estructura cuando el aspecto no es lo que importa.