Pruebas para la Web Moderna con Playwright

Rate this content
Bookmark

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.

30 min
15 Jun, 2021

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.

Available in English

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

TestJS Summit 2022TestJS Summit 2022
27 min
Full-Circle Testing With Cypress
Top Content
Cypress has taken the world by storm by brining an easy to use tool for end to end testing. It’s capabilities have proven to be be useful for creating stable tests for frontend applications. But end to end testing is just a small part of testing efforts. What about your API? What about your components? Well, in my talk I would like to show you how we can start with end-to-end tests, go deeper with component testing and then move up to testing our API, circ
TestJS Summit 2022TestJS Summit 2022
20 min
Testing Web Applications with Playwright
Top Content
Testing is hard, testing takes time to learn and to write, and time is money. As developers we want to test. We know we should but we don't have time. So how can we get more developers to do testing? We can create better tools.Let me introduce you to Playwright - Reliable end-to-end cross browser testing for modern web apps, by Microsoft and fully open source. Playwright's codegen generates tests for you in JavaScript, TypeScript, Dot Net, Java or Python. Now you really have no excuses. It's time to play your tests wright.
TestJS Summit 2023TestJS Summit 2023
21 min
Everyone Can Easily Write Tests
Let’s take a look at how Playwright can help you get your end to end tests written with tools like Codegen that generate tests on user interaction. Let’s explore UI mode for a better developer experience and then go over some tips to make sure you don’t have flakey tests. Then let’s talk about how to get your tests up and running on CI, debugging on CI and scaling using shards.
TestJS Summit 2022TestJS Summit 2022
21 min
Tiny Tests, Large Results
Yes, Big things do come in small packages. For example, isn’t a unit test’s speed, feedback, and reliability fantastic? Did you know we can also have fast, focused, and reliable feedback from our functional e2e tests? Atomic e2e tests are those that are targeted and focused. They’re tiny in size but large in their impact. This tutorial will teach you how to create atomic e2e tests with several code examples. First, we will use Cypress.io to authenticate by setting a cookie. Instead of using a UI. Second, we will use Cypress.io to set a JSON Web Token for authentication. Join me, and let’s write tiny tests for large results.
Vue.js Live 2024Vue.js Live 2024
26 min
We May Not Need Component Testing
Testings are mandatory and unit tests are the foundation for building a good testing system for our project. But for front end projects which involve components, how many unit tests are considered efficient and not overkill? Should we use additional libraries like Testing Library or Vue Test Utils with Vitest to test a component, when we can perform the same with just Playwright? Whether a component test using an E2E framework like Playwright is really a kill for? Let's find out in my talk.
TestJS Summit 2022TestJS Summit 2022
17 min
Testing Mail Service With Playwright
Top Content
We send emails to our users - account verification and newsletters. We allow the user to contact us by sending an email via inbuild form. Do we? Does the user receive an account verification email or exactly what notification they signed up for? We can cover this functionality as part of E2E tests: get an email and open it to check what is in it. We will need Playwright and a fake SMTP server to capture emails sent by the app.

Workshops on related topic

React Summit 2022React Summit 2022
117 min
Detox 101: How to write stable end-to-end tests for your React Native application
Top Content
WorkshopFree
Compared to unit testing, end-to-end testing aims to interact with your application just like a real user. And as we all know it can be pretty challenging. Especially when we talk about Mobile applications.
Tests rely on many conditions and are considered to be slow and flaky. On the other hand - end-to-end tests can give the greatest confidence that your app is working. And if done right - can become an amazing tool for boosting developer velocity.
Detox is a gray-box end-to-end testing framework for mobile apps. Developed by Wix to solve the problem of slowness and flakiness and used by React Native itself as its E2E testing tool.
Join me on this workshop to learn how to make your mobile end-to-end tests with Detox rock.
Prerequisites- iOS/Android: MacOS Catalina or newer- Android only: Linux- Install before the workshop
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
WorkshopFree
This workshop will teach you the basics of writing useful end-to-end tests using Cypress Test Runner.
We will cover writing tests, covering every application feature, structuring tests, intercepting network requests, and setting up the backend data.
Anyone who knows JavaScript programming language and has NPM installed would be able to follow along.
TestJS Summit 2023TestJS Summit 2023
89 min
Building out a meaningful test suite that's not all E2E
Workshop
We're all taught to follow the Testing Pyramid but the reality is that we build out the Testing Christmas Tree. In this workshop, David will talk you through how to break down projects and put the tests where they need to be. By the end of the workshop you will be able to update your projects so that anyone and everyone can start contributing and truly living up to "Quality is everyone job".
He will walk you through:- Component Testing- API Testing- Visual Regression Testing- A11Y testing
He will also talk you through how to get these all setup in your CI/CD pipeline so that you can get shorter and faster feedback loops.
TestJS Summit 2021TestJS Summit 2021
146 min
Live e2e test debugging for a distributed serverless application
WorkshopFree
In this workshop, we will be building a testing environment for a pre-built application, then we will write and automate end-to-end tests for our serverless application. And in the final step, we will demonstrate how easy it is to understand the root cause of an erroneous test using distributed testing and how to debug it in our CI/CD pipeline with Thundra Foresight.

Table of contents:
- How to set up and test your cloud infrastructure
- How to write and automate end-to-end tests for your serverless workloads
- How to debug, trace, and troubleshot test failures with Thundra Foresight in your CI/CD pipelines
TestJS Summit - January, 2021TestJS Summit - January, 2021
127 min
Uniform Browser Automation Infrastructure
Workshop
In this workshop, I will show you how to quickly deploy and use browser automation infrastructure with Moon solution. We will start deploying everything on your workstation and will soon be able to run Selenium, Playwright and Puppeteer tests in parallel in the same cluster. Then I will demonstrate how to easily deliver the same experience for your team using a remote cluster in the cloud platform.