Pruebas de aplicaciones macOS: crear pruebas de extremo a extremo para aplicaciones Mac y Safari desde Windows
Pruebas de aplicaciones macOS desde Windows: cree pruebas de extremo a extremo y funcionales de una aplicación Mac o de Safari por escritorio remoto, y ejecútelas en cada build.
Para probar una aplicación macOS de extremo a extremo desde Windows, conéctese a un Mac real con un visor de escritorio remoto, grabe un flujo en esa ventana con GUI Test Studio, añada comprobaciones de lo que muestra la aplicación y ejecute la prueba en cada build.
¿Qué es una prueba de extremo a extremo de una aplicación macOS?
Definición
Una prueba de extremo a extremo de una aplicación macOS recorre un flujo real como lo hace un usuario, desde la primera pantalla hasta el resultado, y comprueba lo que muestra la aplicación en cada paso.
- Una prueba funcional comprueba una función de la misma manera: el botón funciona, el registro se guarda, el total es correcto.
Muchos equipos de QA trabajan en Windows y aun así tienen que comprobar una versión Mac de su aplicación, o un sitio web cuyos visitantes usan Safari.Normalmente lo prueban a mano en el único Mac de la oficina, así que las pruebas de aplicaciones macOS llegan tarde, y rara vez en cada compilación.
Esta guía muestra cómo los equipos de QA y los ingenieros de software crean pruebas funcionales y de extremo a extremo de una aplicación Mac, o de un sitio web en Safari, desde el ordenador Windows que ya usan.Cada prueba se graba una vez y se ejecuta en cada build, sin escribir código.
Por qué no se puede probar Safari directamente en Windows
Apple dejó de hacer Safari para Windows en 2012, y su última versión es demasiado antigua para mostrar un sitio web moderno.Safari, y las aplicaciones escritas para macOS, solo se ejecutan en un Mac.
Cada una de las soluciones habituales deja algo fuera.
- Un navegador basado en WebKit, el motor de Safari, no es Safari: no tiene los formularios, las fuentes, las barras de desplazamiento ni la configuración propios de Safari.
- Un Mac que una persona comprueba a mano es real, pero es lento, y nadie comprueba cada compilación.
- Un Mac al que se accede desde Windows y que se prueba con un software es real y repetible.
Herramientas de pruebas de interfaz en macOS: XCUITest, Appium Mac2 y una prueba grabada
La vía de Apple es XCUITest, la parte de XCTest dedicada a las pruebas de interfaz: las pruebas se escriben en Swift u Objective-C, en Xcode, en un Mac.El driver Appium Mac2 controla las aplicaciones macOS a través del mismo framework XCTest, así que las pruebas pueden escribirse en otros lenguajes, y necesita un Mac con Xcode, como indica su guía de inicio.
| Lo que compara | XCUITest | Driver Appium Mac2 | GUI Test Studio |
|---|---|---|---|
| Cómo se crea una prueba | Escrita en Swift u Objective-C | Escrita como código, en Java, Python, JavaScript u otro lenguaje | Grabada y luego editada en una línea de tiempo, sin código |
| Lo que necesita | Un Mac con Xcode | Un Mac con macOS 11.3 o posterior, Xcode 13 o posterior y un servidor Appium | Un PC con Windows y un visor de escritorio remoto, y un Mac al que conectarse |
| Cómo encuentra los elementos | Mediante la información de accesibilidad de la aplicación | Mediante la información de accesibilidad de la aplicación, con XCTest | A la vista, en la imagen de la pantalla del Mac |
| Para quién es | Desarrolladores que controlan el código de la aplicación | Equipos que ya escriben pruebas con Appium | Equipos de QA en Windows que prueban la aplicación tal como la ven sus usuarios |
Una prueba programada lee la estructura de la aplicación, así que sigue funcionando cuando cambia el aspecto, y necesita un Mac para cada desarrollador que escribe una.Una prueba grabada ve la pantalla como un usuario, así que también detecta lo que se ve mal, y cualquiera del equipo puede crear una desde Windows.
Cómo funciona: el visor es solo una ventana
Un visor de escritorio remoto muestra la pantalla del Mac en una ventana de Windows, y envía su ratón y su teclado al Mac.Para GUI Test Studio, esa ventana es una aplicación como cualquier otra.
Su PC con Windows
GUI Test Studio
Graba la ventana del visor, reproduce en ella el ratón y el teclado, y comprueba lo que muestra.
El Mac
Sobre una mesa, en un rack o en la nube
Ejecuta su aplicación Mac o Safari, con un usuario que ha iniciado sesión.
Conectar
Abrir el visor conectado al Mac
Grabar
Elegir la ventana del visor
Comprobar
Lo que muestra el Mac
Informe
Lo esperado y lo encontrado, uno junto al otro
GUI Test Runner-Recorder graba la ventana del visor, con Una aplicación en su pregunta ¿Qué quiere probar?, o una parte de la pantalla con Un área de la pantalla.Cuando se ejecuta la prueba, mueve el ratón real y pulsa las teclas reales en esa ventana, y el visor las transmite al Mac.Cómo funciona una grabación se explica en Grabar una prueba.
Qué visor de escritorio remoto usar
| Visor en Windows | Lo que se ejecuta en el Mac |
|---|---|
| Un visor VNC, como RealVNC Viewer o TightVNC | La función Compartir pantalla del propio Mac, activada en Ajustes del Sistema.No hay nada que instalar en el Mac. |
| NoMachine | El programa NoMachine, instalado en el Mac. |
| Parsec | La aplicación Parsec, instalada en el Mac. |
| Jump Desktop | Jump Desktop Connect, instalado en el Mac. |
| Chrome Remote Desktop | El host de Chrome Remote Desktop, instalado en el Mac. |
Cualquiera de ellos sirve, porque GUI Test Studio solo necesita lo que ofrece todo visor: una ventana que muestra la pantalla del Mac y recibe el ratón y el teclado.Elija el que ya usa su equipo, o la función Compartir pantalla del propio Mac con un visor VNC gratuito.
De dónde sale el Mac: una mesa, un rack o un Mac en la nube para pruebas
El Mac puede estar en tres sitios, y a la prueba le da igual cuál.
Un Mac sobre una mesa es el comienzo más sencillo: el Mac que ya tienen sus diseñadores o desarrolladores, encendido y con la sesión iniciada.
Un Mac mini en un rack da servicio a todo el equipo desde una sala de servidores, a menudo sin ningún monitor conectado.
Un Mac en la nube, como una instancia Mac de Amazon EC2 o un Mac de MacinCloud o MacStadium, es un Mac real que se alquila y al que se accede por internet.
Un Mac en la nube suele venir solo con una línea de comandos.Siga la guía de su proveedor para activar un escritorio que pueda ver, iniciar la sesión de un usuario y permitir compartir la pantalla, y después conéctese a él como a un Mac sobre su mesa.
Planificar una prueba funcional de una aplicación Mac
Una buena prueba de extremo a extremo sigue un flujo que importa a sus usuarios y demuestra su resultado.Escríbalo en pocas líneas antes de grabar: dónde empieza, qué hace el usuario y qué debe mostrar la pantalla al final.
Una prueba funcional de una aplicación Mac
- 1Abrir la aplicación e iniciar sesiónAserción visual: el botón Iniciar sesión está ahí y se ve bien
- 2Hacer clic en Nuevo cliente y escribir el nombre del clienteAserción visual: el botón y el campo se encuentran antes de cada acción
- 3Hacer clic en GuardarAserción de texto: el mensaje dice Cliente guardado
- 4Abrir la nueva facturaAserción de texto dinámico: el número de factura tiene el formato correcto, sea cual sea su valor
- 5Comprobar la lista de clientesAserción de texto: el nombre del nuevo cliente está en la lista
- Empiece cada ejecución en la misma pantalla, como la primera ventana de la aplicación al abrirse.
- Mantenga un solo flujo por prueba, para que un fallo señale una sola función.
- Compruebe el resultado, no solo los clics: un mensaje de guardado, una fila nueva en una lista, un total.
- Use datos de prueba que no cambien entre ejecuciones, como el mismo nombre de cliente.
Qué comprobación conviene a cada elemento se explica en Elegir la comprobación adecuada.
Crear una prueba automatizada de su aplicación Mac, paso a paso
La conexión con el Mac se configura una sola vez.Después, crear una prueba de Mac es igual que crear cualquier prueba.
- 1
Conseguir un Mac con un usuario que ha iniciado sesión
Use un Mac sobre su mesa, un Mac mini en un rack o un Mac en la nube.Un usuario debe haber iniciado sesión, con un escritorio en la pantalla, porque una conexión que solo abre una línea de comandos no muestra nada que probar.
Impida que el Mac entre en reposo, y desactive el salvapantallas y el bloqueo de pantalla, para que el escritorio esté ahí cuando empiece una ejecución.
- 2
Activar el acceso remoto en el Mac
En Ajustes del Sistema, en General y Compartir, active Compartir pantalla, o Gestión remota.En sus opciones, permita que los visores VNC controlen la pantalla con una contraseña.Con otra herramienta de escritorio remoto, instale en su lugar su host en el Mac.
- 3
Conectarse desde Windows con un tamaño fijo
Abra el visor en el equipo Windows, conéctese al Mac y mantenga su ventana con el mismo tamaño en cada ejecución, con la pantalla del Mac mostrada al 100 %.Desactive cualquier escalado para ajustar a la ventana que cambie la imagen cuando cambia la ventana.
Asigne al Mac una resolución de pantalla fija.Ponga la calidad de imagen del visor en alta, o sin pérdida si tiene ese ajuste, para que los bordes y las letras sigan nítidos.
- 4
Grabar el flujo a través del visor
En GUI Test Runner-Recorder, haga clic en Grabar, elija Una aplicación y seleccione el visor.Haga el flujo en el Mac a través del visor, desde la primera pantalla hasta el resultado, y pulse la tecla para detener.
Para empezar cada ejecución de la misma manera, marque Iniciar la aplicación al principio de la prueba y cerrarla al final.Un paso Ejecutar aplicación también puede iniciar el visor con la dirección del Mac, cuando el visor la acepta en su línea de comandos, y abrirlo maximizado.
- 5
Elegir lo que verifica la prueba
Cuando la grabación se detenga, deje activado Verificar elementos visuales y active Verificar texto cuando importen las palabras de la pantalla.Deje activado Verificar lo que aparece, para que un diálogo o un mensaje de confirmación tenga sus propias comprobaciones.
Cada tarjeta de esa pregunta se explica en Elegir lo que verifica una prueba.
- 6
Añadir las comprobaciones que demuestran el resultado
Abra la prueba en GUI Test Studio y añada una aserción de texto para el mensaje que demuestra que el flujo funcionó, y una aserción de texto dinámico para un valor que cambia en cada ejecución, como un número de pedido o una fecha.
Agrupe los pasos en escenarios, como Inicio de sesión y Creación de un cliente, para que un fallo diga qué parte del flujo se rompió.
- 7
Ejecutarla y leer el Informe de confianza
Haga clic en Ejecutar prueba en GUI Test Runner-Recorder.El Informe de confianza muestra cada paso y, para cada comprobación, lo que se esperaba y lo que mostró el Mac.
- 8
Ejecútelo en cada compilación
Ejecute la prueba con gtr-cli en un agente de build Windows que tenga una sesión de escritorio iniciada y el visor conectado al Mac.
Las comprobaciones de una prueba de interfaz en macOS, encontradas a la vista
En una aplicación de Windows, el GTS Engine pregunta primero a la aplicación dónde está un elemento, mediante la información de accesibilidad que dan las aplicaciones de Windows, y lo encuentra visualmente cuando la aplicación no lo dice.A través de un visor, la pantalla del Mac llega como una imagen: no hay nada que preguntar, así que cada elemento se encuentra visualmente.
| Comprobar | Lo que demuestra en el Mac | Ejemplo |
|---|---|---|
| Aserción visual | Un elemento está en la pantalla y se ve como se grabó.También indica al siguiente clic dónde está ahora el elemento. | El botón Guardar, un icono de la barra de herramientas, un gráfico |
| Aserción de texto | Un texto se lee como se espera, sea cual sea su fuente o su color. | Cliente guardado, el título de una ventana, un total |
| Aserción de texto dinámico | Un valor tiene el formato correcto, sea cual sea. | Un número de factura, la fecha de hoy, un precio |
| Aserción de ausencia de texto | Un texto ha desaparecido, o nunca aparece. | Un mensaje de error tras un inicio de sesión correcto |
| Aserción de grupo | Todo lo que apareció en una pantalla está ahí, junto. | Un diálogo con su título, sus campos y sus botones |
Cada comprobación espera lo que busca hasta su tiempo límite, así que un Mac que responde un poco tarde no es un fallo.Por qué encontrar a la vista es fiable, y cómo distingue los elementos parecidos, se explica en cómo encuentra GUI Test Studio los elementos.
Automatizar pruebas en Safari: una prueba de extremo a extremo en el Safari real
Una prueba de extremo a extremo de una aplicación web en Safari se crea exactamente igual.Abra Safari en el Mac, vaya a la página y grabe la ventana del visor mientras recorre el flujo: registrarse, añadir un producto al carrito, pagar con una tarjeta de prueba y comprobar la confirmación.
- La prueba se ejecuta en el propio Safari, con su propio motor, sus propios controles de formulario y sus propias fuentes.
- Un diseño que solo se rompe en Safari también se rompe en la prueba.
- Una aserción de texto lee lo que Safari muestra realmente, y una aserción visual compara lo que dibuja Safari con lo que dibujó cuando se grabó la prueba.
Empiece cada prueba de Safari en una página conocida, como la página de inicio de sesión en una ventana privada, para que ninguna sesión anterior cambie lo que ve la prueba.
Cómo se cubren los demás navegadores y los dispositivos emulados, y qué navegadores probar primero, se explica en nuestra guía de pruebas entre navegadores.
Leer el resultado de una ejecución
Después de cada ejecución, el Informe de confianza se abre con el veredicto arriba y cada paso debajo.Una comprobación fallida muestra lo que se esperaba junto a lo que mostró el Mac, con la diferencia resaltada, para que vea al momento si la aplicación falla o si la pantalla solo se movió.
Cada parte del informe se explica en Leer el Informe de confianza.
Consejos para pruebas fiables por escritorio remoto
Una prueba a través de un visor se supera siempre cuando la imagen y los tiempos son los mismos en cada ejecución.Estos hábitos le ayudan a conseguirlo.
| Tema | Qué hacer |
|---|---|
| Latencia | Cada aserción espera lo que busca durante su tiempo de espera, 5 segundos por defecto, así que un Mac que responde un poco tarde no es un fallo.Donde el Mac es lento, como después de que se inicie una aplicación, aumente el tiempo de espera de esa aserción o añada una Espera. |
| La tecla Comando | Muchos visores envían la tecla Windows como Comando y Alt como Opción, pero Windows puede interceptar por sí mismo algunos atajos con la tecla Windows.Active la opción del visor que envía las teclas del sistema al equipo remoto, y pruebe cada atajo una vez mientras graba. |
| Calidad de imagen | Un visor que comprime la imagen difumina los bordes de forma un poco distinta en cada ejecución.Ponga su calidad en alta o sin pérdida, y use la exigencia de verificación Flexible en una conexión que no pueda cambiar. |
| Tamaño de la ventana y escala | Mantenga la ventana del visor con un solo tamaño y la pantalla del Mac al 100 % dentro de ella.Una imagen escalada para ajustarse a otra ventana es otra imagen. |
| Retina y resolución | Asigne al Mac una única resolución fija.Un Mac mini sin monitor puede elegir por sí mismo una pequeña: fíjela, o conecte un emulador de pantalla. |
| Notificaciones y ventanas emergentes | Active No molestar en el Mac, para que una notificación nunca tape lo que busca la prueba. |
| El punto de partida | Antes de una ejecución, vuelva a dejar el Mac en la pantalla en la que empezó la grabación.GUI Test Runner-Recorder lo comprueba y le avisa cuando la pantalla no está donde empieza la prueba. |
Un perfil de línea base por Mac guarda una imagen esperada distinta para cada uno, cuando dos Mac dibujan la misma ventana de forma un poco diferente, como dos versiones de macOS.
Ejecutar sus pruebas de Mac en CI/CD desde un agente Windows
Sus agentes de build siguen en Windows.Solo se necesita un Mac, al que se accede a través del visor, y gtr-cli, el ejecutor de línea de comandos, ejecuta las pruebas en Mac como cualquier otra prueba.
gtr-cli run tests\mac --countdown 0 --junit results\junit.xml --artifacts results\artifactsLa preparación de la máquina de build, los códigos de salida y los resultados JUnit se explican en Ejecutar pruebas en CI/CD.
Lo que debe saber antes de empezar
| Límite | Qué significa |
|---|---|
| Se necesita un Mac | La aplicación o Safari se ejecuta en un Mac real, sobre una mesa, en un rack o en la nube.GUI Test Studio, por su parte, se ejecuta en Windows. |
| Solo lo que muestra el visor | La prueba ve y controla lo que muestra la ventana del visor.Mantenga dentro de ella la parte de la pantalla del Mac que prueba. |
| Sin información de accesibilidad | Un visor transmite una imagen de la pantalla del Mac, así que cada elemento se encuentra visualmente y cada texto se lee en la imagen. |
| Safari solo en un Mac | Safari en un iPhone o un iPad se ejecuta en el dispositivo, al que esta configuración no llega. |
Lo esencial
- 1Una prueba de extremo a extremo sigue un flujo completo en el Mac, como iniciar sesión, crear, guardar, y comprueba el resultado en cada paso.
- 2Se necesita un Mac real, porque no existe un Safari actual para Windows y las aplicaciones Mac solo se ejecutan en un Mac.
- 3El Mac puede estar en cualquier sitio: sobre una mesa, en un rack o en la nube, y se accede a él mediante un visor de escritorio remoto.
- 4El visor es una ventana, así que GUI Test Studio la graba, reproduce en ella acciones reales y comprueba lo que muestra con aserciones visuales y aserciones de texto.
- 5Mantenga la imagen estable: un tamaño de ventana fijo, una escala del 100 %, una resolución fija y una calidad de imagen alta, y después ejecute la prueba con gtr-cli en cada compilación.
Preguntas
¿Cómo se crean pruebas de extremo a extremo para una aplicación macOS?
Grabe un flujo real en el Mac, como iniciar sesión, crear un registro y guardarlo, y luego añada comprobaciones de lo que muestra la aplicación.Con GUI Test Studio lo hace desde Windows: un visor de escritorio remoto muestra el Mac, y GUI Test Runner-Recorder graba esa ventana.Después la prueba se ejecuta en cada build con acciones reales de ratón y teclado.
¿Puedo probar Safari en Windows?
No con Safari ejecutándose en Windows: Apple dejó de hacer Safari para Windows en 2012.Puede probar el Safari real desde Windows accediendo a un Mac mediante un visor de escritorio remoto y grabando esa ventana con GUI Test Studio.La prueba se ejecuta entonces en el propio Safari, en el Mac, con entradas reales de ratón y teclado.
¿Qué alternativa hay a XCUITest para probar la interfaz de una aplicación macOS?
Las pruebas de XCUITest se escriben en código, en Xcode, en un Mac.El driver Appium Mac2 permite escribirlas en otros lenguajes, y sigue necesitando un Mac con Xcode.GUI Test Studio graba la prueba en su lugar, desde un ordenador Windows, y comprueba lo que muestra la pantalla del Mac sin nada de código.
¿Necesito un Mac para probar una aplicación Mac?
Sí, en algún sitio.El Mac puede estar en su escritorio, en un rack o en la nube, como una instancia Amazon EC2 Mac o un Mac de MacinCloud o MacStadium, y nadie tiene que estar delante.Las pruebas se graban y se ejecutan desde un ordenador Windows, a través de un visor de escritorio remoto.
¿Puedo ejecutar macOS en una máquina virtual en Windows para hacer pruebas?
La licencia de macOS de Apple solo permite máquinas virtuales de macOS en hardware de Apple, así que un PC con Windows no es el lugar para una.Ejecute la máquina virtual en un Mac, con una herramienta como Parallels Desktop, UTM o VMware Fusion, y acceda a ella desde Windows mediante un visor de escritorio remoto como a cualquier otro Mac.
¿Puede la prueba leer texto en la pantalla del Mac?
Sí.Las aserciones de texto leen lo que muestra el Mac con el propio reconocimiento de texto de GUI Test Studio, como en cualquier pantalla.Mantenga alta la calidad de imagen del visor, para que las letras conserven bordes nítidos.
¿Cómo pulsa la prueba la tecla Comando?
A través del visor, como lo hace su propio teclado.Muchos visores envían la tecla Windows como Comando y Alt como Opción, pero Windows puede reservarse algunos atajos con la tecla Windows.Active la opción del visor que envía las teclas del sistema al equipo remoto, y pruebe cada atajo una vez mientras graba.
¿Se pueden ejecutar pruebas en Mac en un pipeline de CI?
Sí. gtr-cli ejecuta la prueba en un agente de build Windows y da a su pipeline un código de salida y resultados JUnit.El agente necesita un escritorio de Windows real con la sesión iniciada, porque un servicio de Windows no tiene pantalla, y el visor debe estar conectado al Mac cuando empiece la ejecución.
Mac, macOS, Mac mini, Safari, Xcode, XCTest, iPhone, iPad, Appium, Parallels Desktop, UTM, VMware Fusion, Amazon EC2, MacinCloud, MacStadium, RealVNC, TightVNC, NoMachine, Parsec, Jump Desktop, Chrome Remote Desktop y Windows son marcas comerciales de sus respectivos propietarios.
Sigue leyendo
Todos los artículos
Pruebas visuales
Pruebas de capturas de pantalla píxel a píxel perfectas: por qué fallan y qué detecta los bugs visuales reales
12 min de lectura

Automatización de pruebas
Pruebas manuales frente a pruebas automatizadas: por qué las pruebas manuales se quedan cortas en las pruebas de extremo a extremo
15 min de lectura

Pruebas visuales
Pruebas en modo oscuro, otros idiomas, otras pantallas: una sola prueba para todas las variantes
10 min de lectura