Ahora hablemos de la ejecución rápida, ya sabes, los desarrolladores y probadores generalmente están muy satisfechos con sus pruebas unitarias porque se ejecutan de manera confiable y son rápidas de ejecutar. Sin embargo, ese no es el caso con las pruebas de extremo a extremo porque dependen de los navegadores y los navegadores pueden ser lentos, especialmente cuando se trata de abrir y cerrar un navegador. Si estás ejecutando cientos de pruebas, poder ejecutar cientos de navegadores es una operación muy costosa y eso realmente hace que tus pruebas sean más lentas.
Para resolver esto en Playwright, hemos introducido una nueva abstracción. Veamos este fragmento de código para mostrarte cómo funciona. En este fragmento, estoy usando Playwright para lanzar una instancia de WebKit, que es el motor de navegador utilizado en Apple Safari. Ahora, en esta instancia del navegador, estoy creando un nuevo contexto con la API browser.newContext. A pesar del contexto, ahora estoy abriendo mis páginas y realizando interacciones como lo hacía antes. Lo que hemos hecho aquí es crear una nueva capa de abstracción sobre esta instancia del navegador llamada contexto del navegador. Este contexto del navegador puede alojar múltiples páginas web en su interior. Ahora, es muy económico crear contextos de navegador, lo que significa que puedes crear múltiples contextos sin tener que preocuparte por el tiempo que lleva abrir y cerrar un navegador. Esto acelera significativamente tus pruebas.
Ahora, hay algunas propiedades de los contextos de navegador que quiero resaltar. La primera es que los contextos de navegador están completamente aislados entre sí, lo que significa que puedes crear múltiples contextos de navegador, ejecutar pruebas aisladas sin tener que preocuparte de que afecten entre sí. En este fragmento de código en particular, estoy lanzando una instancia de Firefox y luego estoy creando dos contextos en él. El primer contexto es un contexto vacío y el segundo contexto es un contexto con autenticación. En el segundo contexto, estoy agregando cookies específicas. Esto significa que puedo ejecutar mi prueba en dos escenarios diferentes. El primero es sin autenticación, un estado vacío, que es una excelente manera de probar tus sitios web de marketing. El segundo contexto es un contexto con autenticación, lo que significa que puedes probar flujos de trabajo que requieren autenticación. Las cookies en el segundo contexto no afectarán al primer contexto. Esto asegura que si tenemos cientos de pruebas, puedan ejecutarse en entornos concurrentes y aislados a través de los contextos de navegador sin tener que perder tiempo abriendo y cerrando navegadores.
Lo otro interesante que permiten los contextos de navegador es la emulación. Hemos visto cómo puedes usar Playwright para automatizar las pruebas de dispositivos para dispositivos iPhone o iPad. En este ejemplo en particular, estoy lanzando una instancia de WebKit y luego estoy especificando los dos dispositivos que quiero probar, el iPhone 11 y el iPad Pro 11. Cuando creo esta instancia del navegador, puedo crear contextos de navegador en ella. Básicamente, estoy recorriendo los dispositivos a probar y creando un nuevo contexto para cada dispositivo que quiero probar. Una vez que tengo ese contexto del navegador, puedo abrir múltiples páginas en él y navegar a las páginas que deseo. Esto significa que teníamos una instancia del navegador pero pudimos reutilizar esa instancia del navegador en forma de contextos de navegador para poder ejecutar múltiples pruebas en múltiples dispositivos. Los contextos de navegador, por lo tanto, no solo hacen que tus pruebas sean más rápidas, sino que también te brindan muchas más capacidades para poder ejecutar escenarios de emulación, por ejemplo.
Comments