Pruebas sincronizadas para dispositivos móviles en varios dispositivos

Introducción

Si eres desarrollador web y te orientas a la Web multidispositivo, es probable que debas probar tus sitios y apps web en varios dispositivos y configuraciones diferentes. Las pruebas sincronizadas pueden ser útiles en este caso y son una forma eficaz de realizar automáticamente la misma interacción en varios dispositivos y navegadores al mismo tiempo.

Las pruebas sincronizadas pueden ayudar a resolver dos problemas que consumen mucho tiempo:

  • Mantener todos tus dispositivos sincronizados con la URL que deseas probar Cargarlos manualmente en cada dispositivo es algo del pasado, lleva más tiempo y es más fácil pasar por alto las regresiones.
  • Sincroniza las interacciones. Poder cargar una página es excelente para las pruebas visuales, pero, en el caso de las pruebas de interacción, lo ideal es que también puedas sincronizar los desplazamientos, los clics y otros comportamientos.

Afortunadamente, si tienes acceso a algunos de tus dispositivos de destino, hay una serie de herramientas destinadas a mejorar el flujo de tu computadora de escritorio a tus dispositivos móviles. En este artículo, veremos Ghostlab, Remote Preview, Adobe Edge Inspect y Grunt.

Este es mi escritorio. Bueno, solía ser mi escritorio. Ahora es solo un museo móvil.
Este es mi escritorio. Bueno, solía ser mi escritorio. Ahora es solo un museo móvil.

Herramientas

GhostLab (Mac)

GhostLab para Mac de Vanamco
GhostLab para Mac de Vanamco

Ghostlab es una aplicación comercial para Mac (USD 49) diseñada para sincronizar las pruebas de sitios y apps web en varios dispositivos. Con la configuración mínima, puedes sincronizar simultáneamente lo siguiente:

  • Clicks
  • Navegación
  • Desplazamientos
  • Entrada de formularios (p. ej., formularios de acceso o registro)

Esto hace que probar la experiencia del usuario de extremo a extremo de tu sitio en varios dispositivos sea muy sencillo. Una vez que hayas abierto tu página en un navegador de tus dispositivos, cualquier cambio en la navegación (incluidas las actualizaciones) hará que cualquier otro dispositivo conectado se actualice de inmediato. Ghostlab admite la supervisión de directorios locales, por lo que esta actualización también se produce cuando guardas ediciones en archivos locales, lo que mantiene todo sincronizado en todo momento.

La configuración de Ghostlab fue un proceso sencillo. Para comenzar, descarga, instala y ejecuta la prueba (o la versión completa si quieres comprarla). Luego, deberás conectar tu Mac y los dispositivos que quieras probar a la misma red Wi-Fi para que se puedan detectar.

Una vez que Ghostlab esté en ejecución, puedes hacer clic en “+” para agregar una URL para probar o solo arrastrarla desde la barra de direcciones del navegador. Como alternativa, arrastra la carpeta local que deseas probar a la ventana principal y se creará una nueva entrada de sitio. En este artículo, estoy probando una versión en vivo de http://html5rocks.com. ¿Qué tal? ; )

Elige una URL o un directorio local en tu máquina
Elige una URL o un directorio local en tu máquina

Luego, puedes iniciar un nuevo servidor de Ghostlab haciendo clic en el botón de reproducción “>" junto al nombre de tu sitio. Esto inicia un servidor nuevo, disponible en una dirección IP específica de tu red (p. ej., http://192.168.21.43:8080).

Servidor de Ghostlab que usa un proxy local para el contenido de nuestra URL
Servidor de Ghostlab que usa un proxy local para el contenido de nuestra URL

Aquí, conecté un Nexus 4 y dirigí Chrome para Android a la dirección IP que me proporcionó Ghostlab. Eso es todo lo que tengo que hacer. Ghostlab no requiere que instales un cliente dedicado por dispositivo como algunas otras soluciones, lo que significa que puedes comenzar a realizar pruebas aún más rápido.

Cualquier dispositivo que conectes a la URL de Ghostlab se agregará a la lista de clientes conectados en la barra lateral a la derecha de la ventana principal de Ghostlab. Si haces doble clic en el nombre del dispositivo, se mostrarán detalles adicionales, como el tamaño de la pantalla, el SO, etcétera. Ahora deberías poder probar la navegación y la sincronización de clics. ¡Bien!

Ghostlab también puede mostrar algunas estadísticas sobre los dispositivos conectados, como la cadena de UA, el ancho y la altura del viewport, la densidad de píxeles del dispositivo, la relación de aspecto y mucho más. Puedes cambiar manualmente la URL base que estás inspeccionando en cualquier momento haciendo clic en el ícono de ajustes junto a una entrada. Se abrirá una ventana de configuración que se ve de la siguiente manera:

Configura los archivos que se supervisarán, los encabezados HTTP, los conjuntos de caracteres y mucho más.
Configura los archivos que se supervisarán, los encabezados HTTP, los conjuntos de caracteres y mucho más.

Ahora puedo seleccionar uno de mis otros dispositivos conectados, hacer clic en diferentes vínculos de HTML5Rocks y la navegación se sincroniza en mi Chrome para computadoras (donde ingresé la misma URL de Ghostlab) y en todos mis dispositivos.

Lo que es aún mejor es que Ghostlab tiene una opción que te permite usar un proxy para todos los vínculos que pasan por la red, de modo que, en lugar de hacer clic en http://192.168.21.43:8080/www.html5rocks.com para navegar a www.html5rocks.com/en/performance (por ejemplo), lo que rompería la actualización automática en varios dispositivos que sufren otras soluciones, puede traducir este vínculo a http://192.168.21.43/www.htm5rocks.com/en/performance para que la navegación sea completamente fluida en todos mis dispositivos.

Para habilitarlo, marca "Load all content through Ghostlab" en la pestaña "Content Loading".

Ghostlab puede reescribir las URLs para que todos los recursos se carguen a través del proxy de Ghostlab. Es útil para sincronizar la navegación a varias páginas.
Ghostlab puede reescribir URLs para que todos los recursos se carguen a través del proxy de Ghostlab. Útil para sincronizar navegaciones a varias páginas.

Observa cómo funciona:

Pruebas sincronizadas de un teléfono Android, Windows 8 y Firefox OS con Ghostlab
Pruebas sincronizadas de un teléfono Android, Windows 8 y Firefox OS con Ghostlab

Ghostlab puede cargar cualquier cantidad de sitios o ventanas en cualquier navegador compatible. Esto no solo te permite probar tu sitio en diferentes resoluciones, sino también cómo se comporta tu código en diferentes navegadores y plataformas. ¡Bien!

Sincroniza el desplazamiento, los clics y la navegación en todos los dispositivos de prueba.
Sincroniza el desplazamiento, los clics y la navegación en todos los dispositivos de prueba.

Ghostlab te permite configurar el lugar de trabajo del proyecto del que obtienes una vista previa y puedes especificar si deseas que se supervisen y actualicen los cambios en el directorio cuando se detecten. Esto significa que los cambios hacen que se actualicen todos los clientes conectados. No más actualizaciones manuales.

Es posible que te preguntes con qué más puede ayudarte Ghostlab. Si bien no es una navaja suiza, también admite la inspección de código remoto en dispositivos conectados. En la interfaz principal, si haces doble clic en el nombre de cualquier dispositivo, debería aparecer una opción de "depuración" que iniciará una versión de las Herramientas para desarrolladores de Chrome para que puedas probarla.

Ghostlab lo hace posible a través del inspector web remoto Weinre incluido, que te permite depurar secuencias de comandos y ajustar estilos en dispositivos conectados. De manera similar a la experiencia de depuración remota disponible para Chrome para Android, puedes seleccionar elementos, ejecutar algunas secuencias de comandos de generación de perfiles de rendimiento y depuración.

En general, me impresionó la rapidez con la que pude usar Ghostlab para realizar pruebas diarias en todos los dispositivos. Si eres autónomo, es posible que el costo de la licencia comercial te resulte un poco alto (consulta a continuación para ver más opciones). Sin embargo, con gusto te recomiendo Ghostlab.

Adobe Edge Inspect CC (Mac y Windows)

La suscripción a Creative Cloud de Adobe incluye Edge Inspect
La suscripción a Creative Cloud de Adobe incluye Edge Inspect.

Adobe Edge Inspect forma parte del paquete de suscripción a Adobe Creative Cloud, pero también está disponible como prueba gratuita. Te permite controlar varios dispositivos iOS y Android con Chrome (a través de la extensión de Chrome Edge Inspector), de modo que, si navegas a una URL en particular, todos tus dispositivos conectados permanezcan sincronizados.

Para configurarlo, primero regístrate para obtener una cuenta de Adobe Creative Cloud o accede a una cuenta existente si ya tienes una. A continuación, descarga e instala Edge Inspect desde Adobe.com (disponible para Mac y Windows en la actualidad, pero no para Linux, lo sentimos). Ten en cuenta que los documentos de Edge Inspect son útiles para tener a mano.

Una vez que lo hagas, te recomendamos que obtengas la extensión de Edge Inspect para Chrome para que puedas sincronizar la navegación entre los dispositivos conectados.

La extensión de Chrome Edge Inspect CC
La extensión de Chrome de Edge Inspect CC

También deberás instalar un cliente de Edge Inspect en cada dispositivo con el que desees sincronizar acciones. Por suerte, los clientes están disponibles para iOS, Android y Kindle.

Ahora que completamos el proceso de instalación, podemos comenzar a inspeccionar nuestras páginas. Para que esto funcione, deberás asegurarte de que todos tus dispositivos estén conectados a la misma red.

Inicia Edge Inspect en tu computadora de escritorio, la extensión de Edge Inspect en Chrome y, luego, la app en tus dispositivos (consulta a continuación):

Cómo conectar un dispositivo a la extensión de Edge Inspect
Cómo conectar un dispositivo a la extensión de Edge Inspect

Ahora podemos navegar a un sitio como HTML5Rocks.com en una computadora de escritorio, y nuestro dispositivo móvil navegará automáticamente a la misma página.

Cómo dirigir la navegación de una URL en varios dispositivos conectados
Cómo dirigir la navegación de una URL en varios dispositivos conectados

En la extensión, también verás tu dispositivo en la lista con un símbolo <> junto a él, como en la siguiente captura de pantalla. Si haces clic en este botón, se iniciará una instancia de Weinre que te permitirá inspeccionar y depurar tu página.

símbolo junto a ellos, que se puede usar para iniciar el depurador de Weinre" width="800" height="549">
Los dispositivos conectados aparecen con un símbolo <> junto a ellos, que se puede usar para iniciar el depurador de Weinre

Weinre es un visor y una consola de DOM, y carece de funciones de las Herramientas para desarrolladores de Chrome, como la depuración de JavaScript, la generación de perfiles y la cascada de red. Si bien es lo mínimo de las herramientas para desarrolladores, es útil para verificar la integridad del DOM y el estado de JavaScript.

Depuración con Weinre
Depuración con Weinre

La extensión de Edge Inspect también admite la generación de capturas de pantalla desde dispositivos conectados con facilidad. Es útil para probar el diseño o simplemente obtener capturas de tu página para compartirlas con otras personas.

Generación de capturas de pantalla con Edge Inspect
Generación de capturas de pantalla con Edge Inspect

Para los desarrolladores que ya pagan por CC, Edge Inspect es una excelente solución. Sin embargo, tiene algunas advertencias, como que cada dispositivo requiere la instalación de un cliente dedicado y un poco de trabajo de configuración adicional que es posible que no encuentres con una alternativa como Ghostlab.

Vista previa remota (Mac, Windows y Linux)

Remote Preview es una herramienta de código abierto en la que alojas páginas HTML y contenido que puedes mostrar en varios dispositivos.

La vista previa remota ejecuta una llamada XHR en un intervalo de 1100 ms para verificar si cambió una URL en un archivo de configuración. Si lo hace, la secuencia de comandos actualiza el atributo src de un iframe cargado en la página para cada dispositivo y carga la página en él. Si no se detectan cambios, la secuencia de comandos seguirá realizando sondeos hasta que se realice un cambio.

Pruebas de URLs sincronizadas en más de 27 dispositivos
Pruebas de URL sincronizadas en más de 27 dispositivos

Esto es ideal para encadenar dispositivos y cambiar fácilmente una URL en todos ellos. Para comenzar, sigue estos pasos:

  1. Descarga la vista previa remota y mueve todos los archivos a un servidor de acceso local. Puede ser Dropbox, un servidor de desarrollo o cualquier otra cosa.
  2. Carga "index.html" desde esta descarga en todos tus dispositivos de destino. Esta página se usará como controlador y cargará la página que deseas probar con un iframe.
  3. Edita "url.txt" (incluida en la descarga y que ahora se entrega en tu servidor) con la URL que deseas obtener una vista previa. Guarda este archivo.
  4. La vista previa remota notará que el archivo url.txt cambió y actualizará todos los dispositivos conectados para cargar tu URL.

Si bien es una solución de baja fidelidad, la vista previa remota es gratuita y funciona.

Grunt + Live-Reload (Mac, Windows y Linux)

Grunt (y Yeoman) son herramientas de línea de comandos que se usan para crear andamiajes y compilar proyectos en el frontend. Si ya estás usando estas herramientas y tienes la configuración de recarga en vivo, es fácil actualizar tu flujo de trabajo para habilitar pruebas multidispositivo en las que cada cambio que realices en tu editor cause una recarga en cualquiera de los dispositivos en los que abriste tu app local.

Es probable que estés acostumbrado a usar grunt server. Cuando se ejecuta desde el directorio raíz de tu proyecto, detecta cualquier cambio en tus archivos de origen y actualiza automáticamente la ventana del navegador. Esto se debe a la tarea grunt-contrib-watch que ejecutamos como parte del servidor.

Si usaste Yeoman para crear un andamiaje para tu proyecto, se creará un archivo Gruntfile con todo lo que necesitas para que la recarga en vivo funcione en tu computadora de escritorio. Para que funcione en varios dispositivos, solo debes cambiar una propiedad, que es hostname (en tu computadora de escritorio). Debería aparecer en la lista de connect. Si observas que hostname está configurado como localhost, cámbialo a 0.0.0.0. A continuación, ejecuta grunt server y, como de costumbre, se debería abrir una ventana nueva con una vista previa de tu página. Es probable que la URL tenga el siguiente aspecto: http://localhost:9000 (9000 es el puerto).

Inicia una pestaña o terminal nueva y usa ipconfig | grep inet para descubrir la IP interna de tu sistema. Puede verse como 192.168.32.20. El último paso es abrir un navegador como Chrome en el dispositivo con el que deseas sincronizar las actualizaciones en vivo y escribir esta dirección IP seguida del número de puerto anterior, es decir, 192.169.32.20:9000.

Eso es todo. La actualización en vivo ahora debería hacer que cualquier edición que realices en los archivos de origen de tu computadora de escritorio active la actualización en el navegador de escritorio y en el navegador de tu dispositivo móvil. ¡Genial!

Las ediciones guardadas en computadoras ahora activan una actualización en vivo en el navegador para computadoras y en los navegadores para dispositivos móviles en dispositivos con la misma URL.
Las ediciones guardadas en computadoras ahora activan una actualización en vivo en el navegador para computadoras de escritorio y en los navegadores para dispositivos móviles en dispositivos con la misma URL.
Actualización en vivo en varios dispositivos en acción. Cada edición o guardado te brinda una versión en tiempo real de tu página actual, lo que es ideal para las pruebas de diseño responsivo.
Actualización en vivo en varios dispositivos en acción. Cada edición o guardado te brinda una versión en tiempo real de tu página actual, lo que es ideal para las pruebas de diseño responsivo.

Yeoman también tiene un generador para dispositivos móviles disponible que facilita la configuración de este flujo de trabajo.

Emmet LiveStyle

Emmet LiveStyle es un complemento de navegador y editor que lleva la edición de CSS en vivo a tu flujo de trabajo de desarrollo. Actualmente, está disponible para Chrome, Safari y Sublime Text, y admite edición bidireccional (del editor al navegador y viceversa).

Emmet LiveStyle no fuerza una actualización completa del navegador cuando realizas cambios, sino que envía las ediciones de CSS a través del protocolo de depuración remota de DevTools. Esto significa que puedes ver los cambios realizados en el editor para computadoras en cualquier versión conectada de Chrome, ya sea en Chrome para computadoras o en Chrome para Android.

LiveStyle tiene lo que se denomina “modo multiview”, que es ideal para probar y ajustar diseños responsivos en ventanas y dispositivos. En el modo Multiview, todas las actualizaciones del editor se aplican a todas las ventanas, al igual que las actualizaciones de DevTools para la misma página.

Con el paquete LiveStyle instalado, para comenzar a usar la edición en vivo de CSS, haz lo siguiente:

  1. Inicia Sublime Text y abre un archivo CSS en un proyecto.
  2. Inicia Chrome y ve a la página con el CSS que deseas editar.
  3. Abre DevTools y ve al panel LiveStyle. Marca la opción "Habilitar LiveStyle". Nota: DevTools deberá permanecer abierto durante la sesión de edición en vivo de cada ventana para que se apliquen las actualizaciones de estilo.
  4. Cuando se habilite, se mostrará una lista de hojas de estilo a la izquierda y una lista de los archivos del editor a la derecha. Selecciona el archivo del editor que se asociará con el navegador. Eso es todo. Bum

Ahora, la lista de archivos del editor se actualizará automáticamente cuando edites, creas, abras o cierres archivos.

Los cambios en el CSS de Sublime se aplican de inmediato en diferentes ventanas del navegador y en un emulador.
Los cambios en el CSS de Sublime se aplican de inmediato en diferentes ventanas del navegador y en un emulador.

Conclusiones

Las pruebas multidispositivo siguen siendo un espacio nuevo y en constante cambio con muchos nuevos contendientes en desarrollo. Por suerte, existen varias herramientas gratuitas y comerciales para garantizar la compatibilidad y las pruebas en una gran cantidad de conjuntos de dispositivos.

Dicho esto, aún hay mucho potencial de mejora en esta área y te recomendamos que pienses en cómo se pueden mejorar aún más las herramientas para realizar pruebas en todos los dispositivos. Cualquier cosa que reduzca el tiempo de configuración y mejore tu flujo de trabajo multidispositivo es una ventaja.

Problemas

Quizás el mayor problema que encontré durante las pruebas con estas herramientas fue que los dispositivos se suspendían con frecuencia. Esto no es un factor decisivo, pero se vuelve irritante después de un tiempo. Siempre que sea posible, te recomendamos que configures tus dispositivos para que no entren en modo de suspensión como solución alternativa. Sin embargo, ten en cuenta que esto puede agotar la batería, a menos que el dispositivo esté siempre enchufado.

Personalmente, no tuve ningún problema importante con GhostLab. Por USD 49, es posible que algunos usuarios consideren que el precio es un poco alto. Sin embargo, ten en cuenta que, si lo usas con regularidad, se paga por sí solo. Una de las mejores características de la configuración fue no tener que preocuparse por instalar y administrar un cliente por dispositivo de destino. La misma URL funcionó en todas partes.

Con Adobe Edge Inspect, tuve que instalar y usar clientes específicos en cada dispositivo, lo que me resultó un poco tedioso. También descubrí que no actualizaba de forma coherente todos los clientes conectados, lo que significa que tuve que hacerlo yo mismo desde la extensión de Chrome. También requiere una suscripción a Creative Cloud y se limita a cargar sitios en el cliente en lugar de en un navegador seleccionado en tus dispositivos. Esto puede limitar tu capacidad de realizar pruebas precisas.

La vista previa remota funcionó como se anunció, pero es muy liviana. Esto significa que, para hacer algo más que actualizar tu sitio en todos los dispositivos, necesitarás una opción de herramientas más avanzada. Por ejemplo, no sincronizará los clics ni los desplazamientos.

Recomendaciones

Si buscas una solución multiplataforma gratuita para comenzar, te recomiendo que uses la vista previa remota. En mi experiencia, GhostLab ha sido excelente en todo momento para quienes trabajan en una empresa que busca una solución pagada, pero solo está disponible para Mac. Para los usuarios de Windows, Adobe Edge Inspect es la mejor opción y, salvo algunas peculiaridades, suele hacer el trabajo.

Grunt y LiveStyle también son excelentes para mejorar tu iteración en vivo durante el desarrollo.