Pruebas para la Web Moderna con Playwright

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

La plataforma web moderna está en constante evolución. Las aplicaciones web de hoy en día son más sofisticadas que nunca y las pruebas para la web moderna requieren primitivas modernas. En esta charla, cubriremos cómo Playwright permite de manera única a los desarrolladores web enviar más rápido y con más confianza.

This talk has been presented at TestJS Summit - January, 2021, check out the latest edition of this JavaScript Conference.

FAQ

Playwright es una biblioteca desarrollada por Microsoft para realizar pruebas de extremo a extremo en múltiples navegadores de aplicaciones web. Se utiliza para automatizar pruebas en diferentes navegadores como Chromium, Firefox y WebKit, asegurando que las aplicaciones funcionen correctamente en diversos entornos.

Playwright permite la automatización de pruebas en múltiples navegadores sin compromisos, proporciona herramientas para ejecutar pruebas de manera confiable evitando problemas de inestabilidad y tiempos de espera, y facilita una ejecución rápida de pruebas, similar a las pruebas unitarias.

Playwright mejora la eficiencia del proceso de prueba permitiendo a los equipos de desarrollo y prueba automatizar completamente sus pruebas de extremo a extremo, reduciendo los tiempos de espera y los problemas de inestabilidad, y acelerando los ciclos de lanzamiento con ejecuciones más rápidas.

Playwright está disponible en varios lenguajes de programación, incluidos JavaScript, Python, C-Sharp y Java, lo que permite a los equipos utilizar la herramienta en el lenguaje que prefieran o se ajuste mejor a sus proyectos.

Playwright ofrece automatización sin compromisos, con soporte para múltiples navegadores y plataformas, incluido un soporte robusto para WebKit en diferentes sistemas operativos. Además, permite pruebas más complejas que involucran múltiples páginas, iframes de diferentes dominios y eventos de entrada nativos.

Playwright puede emular dispositivos móviles y permite la ejecución de pruebas en modos sin cabeza y con interfaz gráfica en todas las plataformas. Esto facilita probar aplicaciones en diferentes dispositivos y configuraciones, asegurando una cobertura amplia y efectiva.

El equipo de desarrollo de Playwright se enfoca en mejorar la facilidad de inicio y depuración de las pruebas. Están trabajando en un runner de pruebas integrado y en mejorar la interfaz de depuración para simplificar el proceso de mantenimiento de las pruebas a lo largo del tiempo.

Arjun Attam
Arjun Attam
30 min
15 Jun, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Arjun presenta Playwright, una biblioteca para pruebas de extremo a extremo de aplicaciones web en múltiples navegadores. Los desafíos en las pruebas web modernas incluyen la evolución de la plataforma web y los frameworks reactivos. Playwright ofrece automatización capaz, confiable y rápida, con la capacidad de capturar eventos y mejorar la confiabilidad de las pruebas. Utiliza contextos de navegador para una ejecución más rápida y admite múltiples lenguajes y frameworks. Playwright es utilizado por empresas como VS Code, Bing, Adobe y Material UI, y ofrece soporte multi-navegador y una hoja de ruta en constante mejora.

1. Introducción a las pruebas en la web moderna

Short description:

Hola, mi nombre es Arjun y estoy emocionado de estar aquí en Test.js y hablarles sobre las pruebas. Soy un gerente de programa en Microsoft, donde mi equipo está construyendo Playwright. Playwright es una nueva biblioteca para pruebas de extremo a extremo en múltiples navegadores de aplicaciones web. En esta charla les hablaré sobre las pruebas en la web moderna. Mi equipo y yo hemos interactuado con cientos de probadores y desarrolladores que están construyendo aplicaciones web modernas, y hemos diseñado Playwright para satisfacer sus necesidades.

Hola, mi nombre es Arjun y estoy emocionado de estar aquí en Test.js y hablarles sobre las pruebas. Soy un gerente de programa en Microsoft, donde mi equipo está construyendo Playwright. Playwright es una nueva biblioteca para pruebas de extremo a extremo en múltiples navegadores de aplicaciones web.

En esta charla les hablaré sobre las pruebas en la web moderna. Mi equipo y yo hemos interactuado con cientos de probadores y desarrolladores que están construyendo aplicaciones web modernas, y hemos diseñado Playwright para satisfacer sus necesidades. También les mostraré las ideas principales detrás de Playwright y espero convencerlos de por qué Playwright es la herramienta de pruebas adecuada si están construyendo una aplicación web moderna.

Comencemos. Empecemos hablando sobre la plataforma web moderna. La plataforma web moderna es más capaz que nunca. Los navegadores web han madurado significativamente en los últimos años. Se ejecutan en todos los dispositivos que tenemos, incluyendo nuestro escritorio, nuestros teléfonos y televisores inteligentes. También ha habido una continua incorporación de nuevas características en la plataforma web. Por ejemplo, la web ahora puede detectar tu ubicación actual, puede conectarse a dispositivos Bluetooth y también interactuar con tu sistema de archivos. El ritmo de innovación en la plataforma web ha sido increíble.

2. Desafíos en las Pruebas en la Web Moderna

Short description:

Estos cambios en la plataforma web han impulsado la innovación en el mundo de las aplicaciones. Las aplicaciones web de hoy en día son aplicaciones completas con interacciones ricas y receptivas. Los equipos están luchando por automatizar todas las partes de su aplicación debido a la evolución de la plataforma web y los desafíos planteados por los marcos reactivos. Esto ha resultado en que las pruebas de extremo a extremo ralenticen a los equipos en lugar de ayudarles a avanzar más rápido. Las pruebas en la web moderna deben ser capaces, confiables y rápidas para mantenerse al día con el cambiante panorama web.

Estos cambios en la plataforma web han impulsado la innovación en el mundo de las aplicaciones. Si observamos las aplicaciones de escritorio, son muy similares a lo que eran hace 10 años, pero las aplicaciones web son muy diferentes. Las aplicaciones web de hoy en día son aplicaciones completas que tienen interacciones ricas y receptivas. Estamos construyendo aplicaciones de una sola página que se crean con nuevos frameworks reactivos de JavaScript. También estamos construyendo PWAs que están reemplazando a las aplicaciones nativas. Tanto la plataforma como nuestras aplicaciones en la web han evolucionado significativamente.

Con estos cambios, también hemos visto cambios en la forma en que los equipos operan. Los equipos de desarrolladores y probadores están avanzando más rápido. Muchos equipos están construyendo aplicaciones hoy en día y hay presiones competitivas que los empujan a lanzar más rápido, porque así es como logran sus objetivos comerciales. Esto ha llevado a los equipos a adoptar flujos de trabajo más nuevos como CI, CD y despliegue continuo. Los equipos también están buscando soluciones de pruebas automatizadas para poder lanzar aún más rápido. Desafortunadamente, las pruebas de extremo a extremo no han evolucionado tan rápido como la web misma. Hablemos un poco más sobre eso.

Las pruebas de extremo a extremo deben evolucionar para los cambios que hemos mencionado en la web moderna. Por ejemplo, las pruebas deben poder automatizar las nuevas características de la plataforma que están apareciendo en los navegadores. Estas incluyen capacidades disponibles en navegadores de escritorio, capacidades disponibles en navegadores móviles e incluso capacidades que se están impulsando en televisores inteligentes. Los equipos están luchando por poder automatizar todas las partes de su aplicación porque sus pruebas no pueden cubrir todas las capacidades que están utilizando. Las aplicaciones de hoy en día también son más difíciles de automatizar. Las pruebas no pueden mantenerse al día con cómo funcionan los frameworks reactivos. Por lo tanto, los equipos que están construyendo aplicaciones de una sola página con interacciones ricas encuentran que sus pruebas de extremo a extremo son inestables. No pueden automatizar de manera confiable las interacciones del usuario en sus aplicaciones. Lo que sucede como resultado es que las pruebas de extremo a extremo que en realidad deberían ayudarte a avanzar más rápido, en realidad están ralentizando a los equipos. Los equipos terminan teniendo que agregar tiempos de espera o reintentos para poder manejar problemas de confiabilidad. Los equipos están luchando con problemas de cobertura porque no pueden automatizar todas las partes de su aplicación. Por lo tanto, las pruebas de extremo a extremo están ralentizando a los equipos cuando realmente necesitan poder lanzar más rápido. Estos tres problemas son la razón por la cual las pruebas de extremo a extremo no han podido evolucionar para la web moderna. Y estos tres problemas nos dan realmente los tres pilares de las pruebas en la web moderna. Las pruebas en la web moderna deben ser capaces para poder automatizar todas las posibles capacidades de la plataforma web moderna. Las pruebas en la web moderna también deben ser confiables, lo que significa que deben poder automatizar de manera confiable las interacciones del usuario con aplicaciones web altamente ricas y receptivas. Y finalmente, las pruebas en la web moderna deben ser rápidas, lo que significa que deben poder acelerar nuestros procesos de envío y lanzamiento en lugar de ralentizarlos.

3. Capabilities of Playright for Modern Web Testing

Short description:

Cualquier solución de pruebas para la web moderna debe ser capaz, confiable y rápida. Playright se enfoca en una automatización capaz sin compromisos, una automatización confiable sin fallos y una ejecución rápida. Puedes usar Playright para automatizar interacciones del navegador, lanzar instancias de Chromium, Firefox y WebKit, y probar en todas las plataformas. Playright permite ejecutar navegadores en modo sin cabeza y con interfaz gráfica, brindando flexibilidad para probar aplicaciones web modernas.

Cualquier solución de pruebas para la web moderna debe ser capaz, confiable y rápida, los tres pilares de las pruebas modernas en la web. Nos hemos enfocado en estas tres ideas principales al construir Playright, lo que significa que Playright se enfoca en una automatización capaz sin compromisos. También se enfoca en una automatización confiable sin fallos ni problemas de tiempo. Y finalmente, Playright permite una ejecución rápida, al igual que las pruebas unitarias. Por lo tanto, puedes utilizar pruebas de extremo a extremo con Playright para acelerar tus flujos de trabajo de pruebas y no ralentizarlos.

Para el resto de la charla, me enfocaré en cada una de estas tres ideas principales y te mostraré código sobre cómo se implementan en Playright y cómo puedes aprovechar al máximo estas capacidades en tus pruebas mientras envías tus aplicaciones. Comencemos con la capacidad. Automatización capaz sin compromisos. Veamos un poco de código. Aquí tengo un fragmento muy simple que utiliza Playright en JavaScript. Playright es, en su esencia, una herramienta para escribir pruebas de extremo a extremo para tu aplicación web, lo que significa que con la API de Playright puedes automatizar interacciones del navegador. Puedes lanzar un navegador y automatizar las interacciones que ocurren dentro de esa ventana del navegador. En este fragmento de código en particular, estoy utilizando Playright para lanzar una instancia de Chromium. Chromium es el motor de navegador que se utiliza en Google Chrome y Microsoft Edge. Una vez que he lanzado ese navegador, abro una nueva página, lo que significa que abro una nueva pestaña en esa ventana del navegador con Playright. Luego, esa página en particular navega a la página de inicio de TestJS. Por último, cierro el navegador y finalizo mi script básico. Playright permite esto, lo que significa que puedes utilizar Playright para automatizar Chromium. Junto con Chromium, también puedes utilizar Playright para automatizar Firefox y WebKit. Estos tres hacen de Playright la herramienta de pruebas multi-navegador adecuada para la web moderna, ya que Chromium, Firefox y WebKit cubren los tres principales motores de navegador que se utilizan en los navegadores modernos hoy en día. Hemos hablado de Chromium, que impulsa Microsoft Edge y Google Chrome, Firefox impulsa Mozilla Firefox y WebKit es el motor de navegador utilizado en Apple Safari. Playright te proporciona una API que puede automatizar los tres navegadores. En este fragmento de código en particular, estamos lanzando una instancia de WebKit y luego realizando la misma interacción. Algo notable aquí es que Playright WebKit está disponible en todas las plataformas, lo que significa que puedes utilizar WebKit para probar problemas de Safari en tus entornos de CI de Linux, por ejemplo, y eso es posible gracias a Playright.

Veamos cómo funcionan más de estas capacidades. Con Playright, puedes tener navegadores ejecutándose tanto en modo sin cabeza como en modo con interfaz gráfica. Esto significa que puedo ejecutar mis pruebas en CI en modo sin cabeza, para que la interfaz de usuario no sea visible y mis pruebas se ejecuten más rápido. Pero también puedo ejecutar estas pruebas localmente en modo con interfaz gráfica, donde puedo ver la interfaz de usuario y ver lo que ha sucedido en el navegador. Esta funcionalidad, nuevamente, está disponible en todas las plataformas. Cuando probamos nuestras aplicaciones web modernas hoy en día, no se trata solo de probarlas en nuestros entornos de escritorio.

4. Capabilities of Playwright and Reliability

Short description:

Con Playwright podemos emular entornos móviles, utilizar nuevas características web, interceptar la actividad de red y automatizar interacciones en múltiples páginas. Proporciona automatización sin compromisos, cobertura para las API de la plataforma web moderna y resuelve el problema de las pruebas inestables al escuchar los eventos del navegador.

También estamos desarrollando aplicaciones para dispositivos móviles. Con Playwright, podemos emular entornos móviles en nuestras pruebas multi-navegador. Por ejemplo, al lanzar una instancia de WebKit, especificamos que la página de WebKit debe emular el dispositivo iPhone 11. Esto significa que mi página tendrá el mismo tamaño de vista que un iPhone 11 y habilitará funciones específicas para dispositivos móviles, como eventos táctiles.

Hablando más sobre las capacidades, mencionamos cómo la web actual puede detectar tu ubicación actual. Al lanzar un navegador con Playwright, puedes utilizar estas nuevas características web. En este fragmento en particular, estoy lanzando el navegador y especificando que se habilite el modo oscuro. También estoy especificando una ubicación geográfica particular para esa ventana del navegador, así como una serie de permisos y configuraciones locales. De esta manera, mi navegador funciona como si tuviera una ubicación simulada. Esto te brinda una vista previa rápida de cómo Playwright permite las nuevas características web para que puedas probar tus aplicaciones con esas capacidades.

Otra capacidad importante que quiero resaltar es que Playwright también puede interceptar la actividad de red. En este fragmento en particular, cuando lanzo un navegador y creo una nueva página, configuro una API simulada para que mi punto final de API devuelva un código de error. Esto me permite probar escenarios de error con las capacidades de red de Playwright. Y finalmente, otra capacidad destacada es que Playwright puede automatizar interacciones en múltiples páginas. No estás limitado a una sola página. En este ejemplo, estoy lanzando una instancia del navegador, creando una nueva página y luego abriendo un nuevo popup. Luego podemos automatizar ese popup con Playwright.

Lo que acabamos de ver fue una automatización sin compromisos. Pudimos automatizar todos los navegadores web modernos, obtener ejecución tanto en modo sin cabeza como en modo con interfaz gráfica en todas las plataformas. También vimos la emulación de dispositivos para pruebas móviles y la mejor cobertura para las API de la plataforma web moderna. Si estás utilizando alguna de estas API, Playwright es realmente la mejor herramienta para crear tus pruebas de extremo a extremo y asegurarte de que todas las características de tu aplicación estén cubiertas. Esto concluye la sección de capacidades.

Ahora hablemos de la confiabilidad. Como mencionamos anteriormente, la confiabilidad es básicamente el problema de poder automatizar las interacciones del usuario en tu aplicación sin que tus pruebas sean inestables. En muchos casos, los usuarios tienen que establecer tiempos de espera, lo que significa que deben hacer que sus pruebas esperen un tiempo determinado para poder automatizar de manera confiable. Esto crea una serie de problemas porque los tiempos de espera pueden generar inestabilidad. Playwright resuelve estos problemas de una manera muy única. Veamos cómo. Lo más importante a tener en cuenta sobre Playwright es que puede escuchar los eventos del navegador.

5. Capturing Events and Enhancing Test Reliability

Short description:

Playwright puede capturar eventos del navegador y comprender el comportamiento de la aplicación. Al lanzar una instancia del navegador, crear una nueva página y configurar los escuchadores de eventos, puedes capturar registros de consola y otros eventos como la carga del contenido del DOM. Estos escuchadores de eventos mejoran la confiabilidad de tus pruebas.

En realidad, puede obtener eventos del navegador y comprender lo que está sucediendo en tu aplicación cuando se está ejecutando dentro del navegador. En este fragmento en particular, estoy lanzando una instancia de Firefox, estoy creando una nueva página y luego estoy configurando un nuevo escuchador de eventos para esa página en particular. Básicamente, estoy diciendo que cada vez que mi aplicación genere un registro de consola, debería mostrarse en mi prueba. Playwright no se limita a los registros de consola. También puedo escuchar otros eventos, como el evento de carga del contenido del DOM. El evento de carga del contenido del DOM es un evento importante del ciclo de vida cuando tu aplicación o tu página web se carga dentro del navegador. Y puedo escuchar este evento como parte de mi prueba.

6. Listening to Events and Enhancing Reliability

Short description:

La capacidad de Playwright para escuchar eventos le brinda la capacidad de esperar eventos precisos, lo que hace que las pruebas sean altamente confiables. El método page.click de Playwright espera automáticamente las condiciones adecuadas, como la visibilidad del elemento, la finalización de la animación y la recepción del evento de clic. Esto elimina la necesidad de condiciones de espera personalizadas o temporizadores de espera, lo que facilita la escritura y el mantenimiento de las pruebas. Playwright también proporciona APIs para condiciones de espera personalizadas, garantizando pruebas precisas y confiables. Esta característica distingue a Playwright de otras herramientas de prueba y mejora la confiabilidad.

También puedo escuchar la actividad de la red. Por ejemplo, puedo verificar si se ha abierto una conexión de WebSocket específica. Esta capacidad de escuchar eventos le brinda a Playwright la capacidad de esperar eventos precisos en lugar de tener que esperar de manera generalizada y utilizar temporizadores de espera. Esto hace que tus pruebas sean altamente confiables.

Playwright utiliza esta funcionalidad internamente en cada interacción. En este fragmento, estoy lanzando una instancia de Firefox y luego voy a github.com y luego hago clic en un botón. Observa que no tuve que usar ningún temporizador de espera. Esto se debe a que el método page.click de Playwright espera automáticamente las condiciones adecuadas. Espera a que el elemento sea visible, espera a que el elemento deje de animarse, espera a que el elemento reciba eventos de clic. Todo esto se hace internamente para que tus interacciones de usuario puedan ir de manera confiable a tus aplicaciones y probar tus aplicaciones. Esto hace que tus pruebas sean significativamente más fáciles de escribir y mantener a lo largo del tiempo, porque no tienes que preocuparte por condiciones de espera personalizadas o temporizadores de espera. En muchos casos, estas configuraciones predeterminadas funcionan sin problemas, pero en caso de que estés buscando más control, Playwright también te proporciona APIs para ofrecer tus propias condiciones de espera personalizadas. Estas condiciones de espera utilizan la misma lógica de eventos completa, lo que significa que no tienes que preocuparte por adivinar cuánto tiempo tomará. Puedes escribir esa condición precisa y asegurarte de que tus pruebas realmente esperen por ella. Esto muestra cómo Playwright es más confiable. Básicamente, esto significa que no necesitas adivinar cuánto tiempo tomará algo. Puedes usar eventos para verificar el estado de la aplicación. Y esto está, ya sabes, envuelto automáticamente para todas las interacciones dentro de Playwright, lo que significa que todo lo que haces en Playwright tiene esperas y reintentos automáticos incorporados. Y finalmente, si tu aplicación requiere lógica personalizada, tienes APIs de espera poderosas que puedes usar y crear tus propias condiciones de espera. Esta característica diferencia a Playwright de otras herramientas de testing y mejora la confiabilidad.

7. Fast Execution and Browser Contexts

Short description:

Los desarrolladores y probadores generalmente están satisfechos con sus pruebas unitarias, ya que se ejecutan de manera confiable y son rápidas. Sin embargo, las pruebas de extremo a extremo pueden ser lentas debido a la dependencia de los navegadores. Playwright introduce una nueva abstracción llamada contextos de navegador para resolver este problema. Los contextos de navegador permiten alojar múltiples páginas web y se pueden crear de forma económica, acelerando significativamente las pruebas. Estos contextos están completamente aislados entre sí, lo que permite pruebas concurrentes y aisladas. Los contextos de navegador también permiten la emulación, lo que permite ejecutar pruebas en múltiples dispositivos.

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.

8. Playwright: Más rápido, Capaz y Confiable

Short description:

Playwright hace que las pruebas de extremo a extremo sean más rápidas utilizando contextos de navegador para la ejecución en paralelo. Permite una automatización capaz, confiable y rápida, admite múltiples lenguajes y frameworks, y se puede utilizar en cualquier entorno CI-CD. Obtén más información en playwright.dev, GitHub y únete a nuestra comunidad en Slack.

Básicamente, así es como Playwright hace que tus pruebas de extremo a extremo sean mucho más rápidas, ¿verdad? A pesar de que los navegadores son lentos, podemos crear una nueva capa de abstracción llamada contextos de navegador que son mucho más rápidos. El contexto del navegador paraleliza la ejecución con una sola instancia, lo que significa que solo necesitas lanzar un navegador pero luego crear entornos de ejecución paralelos. Cada uno de ellos está aislado de los demás y puedes tener varias páginas abiertas dentro de un contexto de navegador. Esto hace que tus pruebas sean significativamente más rápidas y te brinda más capacidades como acabamos de mencionar.

Capaz, confiable y rápido. Estas son básicamente las tres ideas principales detrás de Playwright. Hemos hablado de cómo Playwright permite una automatización capaz sin compromisos, cómo permite una automatización confiable sin tener que preocuparse por la inestabilidad o los tiempos de espera, y cómo permite una ejecución rápida, al igual que tus pruebas unitarias.

Para usar Playwright, simplemente usa npm, la instalación de Playwright puede configurarte con la última versión estable. Cuando instalas Playwright por primera vez, descargará tus navegadores, lo que significa que estás listo para realizar pruebas en múltiples navegadores. Si prefieres usar algo diferente a JavaScript, también puedes usar Playwright en otros lenguajes. Playwright se adapta a tu conjunto de herramientas preferido, lo que significa que puedes usar Playwright en JavaScript, Python, C-Sharp o incluso Java. También puedes usar Playwright con cualquier framework de pruebas y cualquier biblioteca de aserciones y implementarlo en tu entorno CI-CD preferido.

Y finalmente, ya sabes, para obtener más información sobre Playwright, solo para concluir con algunos enlaces interesantes. El primero es nuestro sitio web de documentación en playwright.dev. También nos puedes encontrar en GitHub en la organización de Microsoft bajo el nombre del repositorio Playwright. Y finalmente, puedes unirte a nuestro Slack para interactuar con otros usuarios que están utilizando Playwright para sus pruebas de extremo a extremo y también comunicarte con el equipo de Playwright. Todos estamos en Slack. Muchas gracias por asistir a esta charla.

9. Empresas que utilizan Playwright y sus capacidades

Short description:

Playwright es un repositorio de código abierto que ha sido utilizado por miles de desarrolladores y probadores en diferentes lenguajes de programación, incluyendo JavaScript, Python y Java. Equipos internos como VS Code y Bing, así como equipos externos como Adobe y la biblioteca material UI, están entre los usuarios de Playwright. Ofrece capacidades que Cypress no puede automatizar completamente, como escenarios de automatización en diferentes dominios y eventos de entrada nativos. Playwright se enfoca en la automatización sin compromisos y es adecuado para pruebas que requieren herramientas de automatización altamente capaces. También cubre las brechas en el mercado que Cypress no aborda, como el soporte para diferentes lenguajes como Python y Java.

¡Hola, bienvenido! ¿Estás satisfecho con estos números, el 18% de las personas que dicen que lo van a probar? Sí. Siempre me emociona ver a las personas probar nuevas herramientas. Playwright es algo que lanzamos el año pasado y hemos estado viendo un buen resumen anual con nuestro resumen de estrellas en ascenso y la encuesta sobre el estado de JavaScript. Y es emocionante ver el interés y la emoción en torno a Playwright. Estoy seguro de que solo crecerá y estaremos constantemente rastreando esos números y asegurándonos de satisfacer ese interés con el producto.

Sí, estás hablando de adaptaciones. ¿Puedes compartir algunas ideas, tal vez algunos secretos sobre las empresas que están utilizando Playwright? Sí, lanzamos Playwright como un repositorio de código abierto hace casi un año. De hecho, el 21 de enero del año pasado y lanzamos la versión 1.0 en mayo. Así que hemos estado listos para producción durante aproximadamente siete meses. Y desde entonces hemos tenido miles de desarrolladores y probadores que utilizan Playwright en diferentes lenguajes de programación. Puedes usar Playwright en JavaScript o Python y recientemente también lanzamos soporte para Java. Hay varios equipos internos que están utilizando Playwright. Por ejemplo, el equipo de VS Code está probando todo en Playwright. El equipo de Bing ejecuta alrededor de 40,000 pruebas en Playwright y también hay varios equipos externos que están utilizando Playwright. Adobe es un gran cliente. Tienen varios equipos internos que utilizan Playwright. En cuanto a proyectos de código abierto, la biblioteca material UI es un gran usuario de Playwright. Recientemente actualizamos nuestra página de inicio, así que si vas a Playwright.dev, en realidad muestra los logotipos de los clientes y ese es un buen lugar para ver los nombres importantes que están en el tren de Playwright. Bueno, probablemente después de hoy podremos agregar algunos logotipos en la página de inicio del sitio web.

Quiero hacerte dos preguntas de nuestra audiencia. La primera es de Aaron McAdam. ¿Para qué casos de uso en particular es bueno Playwright en comparación con Cypress? Claro, sí. Sabes que Cypress es una herramienta increíble y estamos muy impresionados con su experiencia de desarrollo. En general, hemos tratado de enfocarnos, al principio, en algunos de los escenarios que Cypress no puede automatizar completamente. Por ejemplo, si quieres ejecutar escenarios de automatización que abarquen diferentes dominios, múltiples páginas, iframes de diferentes dominios, Playwright es muy adecuado para eso. Si quieres tener pruebas que involucren eventos de entrada nativos, como movimientos del mouse o eventos táctiles, algunas de estas capacidades son mucho más fáciles de hacer en Playwright. En general, Playwright tiene muy pocas compensaciones y nuestra propuesta realmente es la automatización sin compromisos, por lo que si tus pruebas requieren herramientas de automatización altamente capaces, Playwright es la herramienta adecuada para ti. Además de la cuestión de las capacidades, Playwright también se enfoca en algunas brechas en el mercado en las que Cypress no se enfoca. Por ejemplo, si prefieres un lenguaje diferente, si tu equipo prefiere usar algo como Python o Java para las pruebas automatizadas, puedes usar eso con Playwright mismo y obtener la mejora de velocidad y confiabilidad que Playwright ofrece en JavaScript.

10. Soporte multi-navegador y hoja de ruta

Short description:

Otros lenguajes son posibles. El soporte multi-navegador en Playwright es mejor, incluyendo pruebas para WebKit. La hoja de ruta de Playwright se enfoca en mejorar la experiencia de autoría y depuración. El runner de pruebas integrado simplifica el inicio, y las próximas versiones incluirán una interfaz de depuración. Playwright valora los comentarios de los usuarios y fomenta la participación en la formación de la hoja de ruta a través de GitHub y Slack.

Entonces, otros lenguajes también son posibles. Incluso el soporte multi-navegador en Playwright es mejor en el sentido de que realmente puedes probar para WebKit, que es el motor de navegador utilizado en Apple Safari. Y notablemente, el soporte de Playwright para WebKit es multiplataforma. Esto significa que realmente puedes usar WebKit testing en Mac OS o en Linux o Windows. Entonces, si tienes una aplicación web móvil, que es utilizada por usuarios en Safari, y tienes un agente de CI/CD en Linux, puedes usar Playwright para ejecutar tus pruebas automatizadas para WebKit. Entonces, mejor soporte de navegadores, mejores enlaces de lenguaje y capacidad, automatización realmente sin compromisos es realmente nuestra propuesta para Cypress. Sí. Muy bueno que también puedas ejecutar este WebKit en una máquina con Windows. Creo que eso realmente ayuda si tienes un gran equipo donde las personas están usando Mac OS y Linux y Windows, por supuesto. Muy poderoso, supongo. La siguiente pregunta es de Danny. ¿Puedes compartir algo sobre tu hoja de ruta para el próximo año? Sí, claro. Creo que lo sorprendente en realidad es que hemos visto mucho impulso increíble durante el último año. Y con cualquier tipo de nueva herramienta, hay toneladas de comentarios de los usuarios, toneladas de problemas en GitHub o mensajes de la comunidad en Slack o simplemente usuarios comprometidos que se unen a las conversaciones con nosotros. Y eso es esencialmente lo que nos ayuda a dar forma a nuestra hoja de ruta para este año. Nuestro enfoque actual se centra en hacer que la experiencia de inicio de la autoría de tus pruebas sea aún más fácil. Y hacer que la depuración de tus pruebas sea más fácil. Entonces, una de las cosas que lanzamos en vista previa el año pasado fue un runner de pruebas, un runner integrado de pruebas para Playwright. Lo que significa que en realidad no necesariamente tienes que usar algo como Mocha o Jest y descubrir esa integración por ti mismo. Con el runner de pruebas integrado, en realidad obtendrás una herramienta completa de pruebas de extremo a extremo que simplificará significativamente la experiencia de inicio. De manera similar, mantener tus pruebas a lo largo del tiempo es obviamente la parte más difícil cuando se trata de pruebas de extremo a extremo y una mejor depuración es algo que muchos de nuestros usuarios han solicitado y algo que siempre hemos querido construir, pero esto es una prioridad para este trimestre. Hemos estado haciendo lanzamientos mensuales. Playwright 1.8 estuvo en vivo la semana pasada. Playwright 1.9 se lanza en febrero y en realidad tiene una increíble interfaz de depuración que realmente te ayudará a mantener tus pruebas a lo largo del tiempo. Entonces, muchas mejoras en la autoría y depuración, realmente, que estarán en vivo durante el próximo trimestre más o menos. Y esa es realmente nuestra prioridad. Entonces, esa es nuestra hoja de ruta para Playwright. Y las personas pueden influir en ella uniéndose a tu servidor de Slack, entiendo. Entonces, Danny, si quieres influir en ella, puedes hacerlo. Sí, sabes, creo que esa es la belleza del software de código abierto, ¿verdad? Quiero decir, problemas en GitHub o Slack, sabes, nuestro desarrollo de productos y hoja de ruta es completamente transparente y siempre estamos buscando comentarios. De acuerdo. Entonces, Danny, si quieres agregar algo a la hoja de ruta, puedes hacerlo tú mismo. Para el resto de las preguntas, Arjun ahora va a ir a su sala de oradores. Y si quieres hablar más con él sobre Playwright, ahora es el momento. Arjun, quiero agradecerte mucho por unirte aquí. Y espero verte de nuevo pronto en el próximo gran evento. Gracias por tenerme aquí.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Pruebas de Aplicaciones Web con Playwright
TestJS Summit 2022TestJS Summit 2022
20 min
Pruebas de Aplicaciones Web con Playwright
Top Content
Testing web applications with Playwright, a reliable end-to-end testing tool. Playwright offers fast execution, powerful tooling, and support for multiple languages. It provides precise selectors, web-first assertions, and code generation for easy testing. Playwright also offers features like live debugging, tracing, and running tests on CI. The future of Playwright aims to make testing easy and fun, with a focus on creating frustration-free web experiences.
Pruebas de ciclo completo con Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Pruebas de ciclo completo con Cypress
Top Content
Cypress is a powerful tool for end-to-end testing and API testing. It provides instant feedback on test errors and allows tests to be run inside the browser. Cypress enables testing at both the application and network layers, making it easier to reach different edge cases. With features like AppActions and component testing, Cypress allows for comprehensive testing of individual components and the entire application. Join the workshops to learn more about full circle testing with Cypress.
Todos pueden escribir pruebas fácilmente
TestJS Summit 2023TestJS Summit 2023
21 min
Todos pueden escribir pruebas fácilmente
Playwright is a reliable end-to-end testing tool for modern web apps that provides one API, full isolation, fast execution, and supports multiple languages. It offers features like auto-weighting, retrying assertions, seamless testing of iframes and shadow DOM, test isolation, parallelism, and scalability. Playwright provides tools like VS Code extension, UiMode, and Trace Viewer for writing, debugging, and running tests. Effective tests prioritize user-facing attributes, use playwright locators and assertions, and avoid testing third-party dependencies. Playwright simplifies testing by generating tests, providing code generation and UI mode, and allows for easy running and debugging of tests. It helps in fixing failed tests and analyzing DOM changes, fixing locator mismatches, and scaling tests. Playwright is open source, free, and continuously growing.
Pruebas pequeñas, grandes resultados
TestJS Summit 2022TestJS Summit 2022
21 min
Pruebas pequeñas, grandes resultados
Automated atomic tests are a great way to improve UI tests by making them less brittle and faster. The tests focus on testing a single feature or component and have minimal UI interactions. The Talk explores examples of automated atomic tests and their implementation on web applications. It also discusses the analysis of atomic tests, login tests, and working with JSON Web Tokens for authentication and authorization. The Talk concludes by highlighting the use of UI and web requests in automated atomic testing.
Quizá No Necesitemos Pruebas de Componentes
Vue.js Live 2024Vue.js Live 2024
26 min
Quizá No Necesitemos Pruebas de Componentes
Component testing is a gray area between integration and unit testing. The demo app focuses on the cart component and writing test cases for Playwright component test and VTest. The first cart test encounters a bug with the invisible method in View Test.
Prueba del Servicio de Correo con Playwright
TestJS Summit 2022TestJS Summit 2022
17 min
Prueba del Servicio de Correo con Playwright
Top Content
This Talk discusses how to test mail service with Playwright, covering e-mail verification, reset password user journey, and more. It explores the use of third-party providers for reliable e-mail delivery and demonstrates how Playwright can help perform checks on e-mail content. The Talk also introduces the concept of a fake SMTP server and showcases how fixtures can be used to access the SMTP server and perform assertions on the HTML body of emails. Playwright's HTML rendering feature allows for interaction with email content as if it were a regular web page. It highlights the ability to render HTML from API calls, perform assertions on the rendered page, and exclude dynamically generated data from visual regression tests.

Workshops on related topic

Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
React Summit 2022React Summit 2022
117 min
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
Top Content
Workshop
Yevheniia Hlovatska
Yevheniia Hlovatska
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles.
Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador.
Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E.
Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes.
Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
Testing Web Applications Using Cypress
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
Top Content
Workshop
Gleb Bahmutov
Gleb Bahmutov
Esta masterclass te enseñará los conceptos básicos para escribir pruebas end-to-end útiles utilizando Cypress Test Runner.
Cubriremos la escritura de pruebas, cubriendo cada característica de la aplicación, estructurando pruebas, interceptando solicitudes de red y configurando los datos del backend.
Cualquiera que conozca el lenguaje de programación JavaScript y tenga NPM instalado podrá seguir adelante.
Construyendo una suite de pruebas significativa que no sea todo E2E
TestJS Summit 2023TestJS Summit 2023
89 min
Construyendo una suite de pruebas significativa que no sea todo E2E
Workshop
David Burns
David Burns
Todos somos enseñados a seguir la Pirámide de Pruebas pero la realidad es que construimos el Árbol de Pruebas de Navidad. En esta masterclass, David te explicará cómo desglosar proyectos y poner las pruebas donde necesitan estar. Al final de la masterclass, podrás actualizar tus proyectos para que cualquiera y todos puedan empezar a contribuir y realmente vivir según "La calidad es el trabajo de todos".
Te guiará a través de:- Pruebas de Componentes- Pruebas de API- Pruebas de Regresión Visual- Pruebas A11Y
También te explicará cómo configurar todo esto en tu pipeline de CI/CD para que puedas obtener ciclos de feedback más cortos y rápidos.
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
TestJS Summit 2021TestJS Summit 2021
146 min
Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida
Workshop
Serkan Ozal
Oguzhan Ozdemir
2 authors
En este masterclass, construiremos un entorno de pruebas para una aplicación preconstruida, luego escribiremos y automatizaremos pruebas de extremo a extremo para nuestra aplicación serverless. Y en el último paso, demostraremos lo fácil que es entender la causa raíz de una prueba errónea utilizando pruebas distribuidas y cómo depurarla en nuestro pipeline de CI/CD con Thundra Foresight.

Tabla de contenidos:
- Cómo configurar y probar tu infraestructura en la nube
- Cómo escribir y automatizar pruebas de extremo a extremo para tus cargas de trabajo serverless
- Cómo depurar, rastrear y solucionar problemas de fallas en las pruebas con Thundra Foresight en tus pipelines de CI/CD
Infraestructura Uniforme de Automatización de Navegadores
TestJS Summit - January, 2021TestJS Summit - January, 2021
127 min
Infraestructura Uniforme de Automatización de Navegadores
Workshop
Ivan Krutov
Ivan Krutov
En este masterclass, te mostraré cómo implementar y utilizar rápidamente una infraestructura de automatización de navegadores con la solución Moon. Comenzaremos implementando todo en tu estación de trabajo y pronto podrás ejecutar pruebas de Selenium, Playwright y Puppeteer en paralelo en el mismo clúster. Luego, te demostraré cómo ofrecer la misma experiencia de manera sencilla para tu equipo utilizando un clúster remoto en la plataforma de la nube.