Todos pueden escribir pruebas fácilmente

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Echemos un vistazo a cómo Playwright puede ayudarte a escribir tus pruebas de extremo a extremo con herramientas como Codegen que generan pruebas basadas en la interacción del usuario. Exploraremos el modo UI para una mejor experiencia de desarrollador y luego repasaremos algunos consejos para asegurarnos de que no tengas pruebas inestables. Luego hablemos de cómo poner en marcha tus pruebas en CI, depurar en CI y escalar usando fragmentos.

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

FAQ

Playwright es una herramienta de prueba de extremo a extremo que permite realizar pruebas confiables en aplicaciones web modernas y funciona en cualquier navegador. Es ideal para testear en distintos entornos como Windows y probar en navegadores como WebKit.

Playwright es multilenguaje, lo que permite escribir pruebas en TypeScript, JavaScript, Python, Java y .NET.

La función de auto-espera de Playwright permite que la herramienta espere automáticamente hasta que los elementos del DOM estén listos y completamente clickeables antes de realizar acciones sobre ellos, eliminando la necesidad de tiempos de espera artificiales.

La extensión de Playwright para VS Code facilita la escritura, reproducción, depuración de pruebas y la generación de código directamente desde el editor, mejorando la experiencia de desarrollo de pruebas.

CodeGen es una herramienta de Playwright que graba las acciones del usuario en un sitio web y genera automáticamente el código de prueba correspondiente, lo que ahorra tiempo en la escritura manual de pruebas y ayuda a identificar los localizadores correctos.

Mantener Playwright actualizado es crucial porque incluye nuevas características, correcciones de errores y mejoras en la compatibilidad con las últimas versiones de navegadores, asegurando así que las pruebas sean más fiables y efectivas.

En Playwright, las pruebas se ejecutan en paralelo por defecto, lo que significa que varias pruebas pueden correr simultáneamente, aumentando la velocidad y eficiencia del proceso de testing.

El modo UI en Playwright es una herramienta que facilita la ejecución y depuración visual de pruebas, mostrando todas las pruebas en un lado y permitiendo ejecutar y revisar cada una de ellas de manera interactiva.

Debbie O'Brien
Debbie O'Brien
21 min
11 Dec, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Playwright es una herramienta de prueba de extremo a extremo confiable para aplicaciones web modernas que proporciona una API, aislamiento total, ejecución rápida y soporte para múltiples idiomas. Ofrece características como auto-ponderación, reintentos de aserciones, pruebas sin problemas de iframes y shadow DOM, aislamiento de pruebas, paralelismo y escalabilidad. Playwright proporciona herramientas como la extensión VS Code, UiMode y Trace Viewer para escribir, depurar y ejecutar pruebas. Las pruebas efectivas priorizan los atributos orientados al usuario, utilizan localizadores y aserciones de Playwright, y evitan probar dependencias de terceros. Playwright simplifica las pruebas generando pruebas, proporcionando generación de código y modo UI, y permite ejecutar y depurar pruebas fácilmente. Ayuda a corregir pruebas fallidas y analizar cambios en el DOM, corregir desajustes de localizadores y escalar pruebas. Playwright es de código abierto, gratuito y está en constante crecimiento.
Available in English: Everyone Can Easily Write Tests

1. Introducción a Playwright

Short description:

Todos pueden escribir pruebas fácilmente. Playwright es una prueba de extremo a extremo confiable para aplicaciones web modernas en cualquier navegador. Proporciona una API, aislamiento total, ejecución rápida y admite varios idiomas. Hay muchas más razones para usar Playwright, pero por ahora nos centraremos en estas.

Todos pueden escribir pruebas fácilmente. Hola a todos, mi nombre es Debbie O'Brien, soy una PM técnica senior en Microsoft abogando por Playwright y asegurándome de que todos estén escribiendo pruebas. Eso pruebas es fácil, es divertido y es algo que cualquiera puede hacer. Así que, no tengan miedo porque al final de esta charla todos vamos a estar como oh dios mío necesito escribir pruebas ahora mismo. Así que, aguanten conmigo.

Sí, si quieren seguirme, debbs underscore O'Brien en Twitter o X o como quieran llamarlo estos días, así como todas las otras plataformas de redes sociales que existen, debbie.code es mi sitio web. Y vamos a hablar directamente sobre Playwright porque es por eso que estamos aquí hoy. Entonces, ¿qué es Playwright? Para aquellos de ustedes que no lo saben, nunca han oído hablar de Playwright. ¿Dónde han estado, en serio? Playwright es una prueba de extremo a extremo confiable para sus modernas web apps y funciona en cualquier navegador. Así que puedes estar en Windows y puedes probar en WebKit por ejemplo, una API, todas tus pruebas se ejecutan en aislamiento total, son realmente muy rápidas. Tenemos algunas herramientas increíbles de las que hablaremos hoy y es multilenguaje. Entonces, voy a mostrarles TypeScript, pero podrían escribir en JavaScript por supuesto o también en Python, Java o .NET.

Entonces, ¿por qué Playwright? Quiero decir, todas esas razones que acabo de mostrarles aquí, pero también hay muchas más, pero solo me voy a concentrar en esas y las vamos a repasar paso a paso. Y hay muchas otras razones, pero en serio, deberían estar usando Playwright en la historia.

2. Características de Playwright

Short description:

Playwright proporciona auto-espera, reintentos de aserciones, pruebas sin interrupciones de iframes y shadow DOM, aislamiento de pruebas, paralelismo y escalabilidad para una ejecución de pruebas más rápida.

Entonces, ¿qué significa auto-espera en Playwright? Por ejemplo, imagina que Playwright necesita hacer clic en un botón. Ahora, Playwright es como un usuario realmente, realmente rápido. Sabes que es realmente como usuarios frustrados rápidos. Entonces, ¿qué sucede cuando quizás el JavaScript no está listo o el botón no está cargado correctamente en el DOM y por lo tanto no es completamente clickeable? Bueno, Playwright esperará a que esté listo. Por lo tanto, está en auto-espera para ese elemento, lo que significa que no tienes que escribir ningún tiempo de espera artificial o algo por el estilo. Eso es realmente genial.

Entonces, si estás usando las aserciones de Playwright, reintentarán de forma predeterminada. ¿Qué significa eso? Bueno, imagina que esperas que el botón sea visible y va a esperar a que el botón realmente sea visible y lo reintentará hasta que lo sea o hasta que se agote el tiempo de espera. Entonces, reintentos de aserciones de forma predeterminada.

Ahora, ¿qué pasa si quieres probar iframes y shadow DOM? Bueno, simplemente funciona. No tienes que instalar nada, no hay nuevos plugins ni nada por el estilo. Puedes simplemente probar el iframe o probar el shadow DOM tal como probarías tus elementos normales en la página. Aislamiento de pruebas. Realmente importante. Mira los tubos de ensayo aquí. Ahora imagina que tu prueba está dentro de un tubo de ensayo y tu próxima prueba está dentro de otro tubo de ensayo. Bueno, es exactamente así. Entonces, nada de un tubo de ensayo irá al otro tubo de ensayo, lo que significa que más tarde si la prueba B falla, bueno, no es por la prueba A porque eso no tiene nada que ver con entre esas pruebas porque se están ejecutando en total aislamiento, y así es como Playwright funciona de forma predeterminada.

Paralelismo. Realmente importante. Tus pruebas se ejecutan en paralelo. Entonces, es como, imagina que tus pruebas son esos nadadores y simplemente están corriendo todo el camino hasta el final, ¿verdad? Imagina si tuvieras que esperar a que un nadador llegara al final y luego el siguiente nadador iría y luego el siguiente nadador iría. Eso sería realmente, realmente lento. Playwright no es lento. Playwright es super rápido. Funciona en paralelo por defecto. Con el sharding, también puedes escalar, así que imagina que estás en CI y quieres correr aún más rápido, entonces básicamente puedes dividir en shards a través de varias máquinas y tener tus pruebas, digamos cinco pruebas corren en una máquina, cinco en la otra, cinco en la otra, etc. Haciendo que tus pruebas se ejecuten aún más rápido. Probablemente sea mejor no usar esas máquinas. Deberías conseguir mejores máquinas que esas, pero ya sabes a qué me refiero.

3. Herramientas de Playwright y Mejores Prácticas

Short description:

La extensión de VS Code te permite escribir, reproducir y depurar pruebas, abrir el visor de trazas y utilizar herramientas de generación de código y selección de localizadores. UiMode proporciona una interfaz visual para ejecutar y controlar pruebas, mientras que Trace Viewer ayuda con la depuración en CI. Playwright también ofrece GitHub Actions para una fácil integración con CI. Es importante priorizar las pruebas de extremo a extremo en tu estrategia de pruebas.

Extensión de VS Code. Te animo encarecidamente a que utilices la extensión de VS Code porque entonces puedes escribir tus pruebas, reproducir tus pruebas, debug tus pruebas, abrir el visor de trazas, las opciones de selección de localizadores, la generación de código directamente desde VS Code, lo que hace que sea una experiencia realmente agradable.

Entonces, CodeGen. ¿Qué es CodeGen? Bueno, esto es realmente genial. Es una herramienta que te va a ayudar, especialmente cuando estás empezando a escribir tus pruebas para ahorrarte tener que empezar a escribir manualmente cada línea de código y no saber cuál es el elemento, cuál es el localizador. Playwright hará todo ese trabajo por ti. Así que cuando vayas a tu sitio web, lo uses como lo haría un usuario, empieces a hacer clic, rellenes todos esos forms y luego Playwright grabará tu acción de usuario, la pondrá en ese archivo. Si estás en VS Code, creará el archivo por ti, lo pondrá directamente en VS Code y luego tendrás la prueba escrita para ti. Luego sólo tienes que añadir tus aserciones por supuesto y luego afirmar que algo es visible o tiene un recuento o etc. Así que CodeGen, herramienta super genial. Y LocatorPicker, para esos momentos en los que necesitas escribir algo tú mismo y no sabes cuál es el localizador o incluso simplemente estás depurando y algo no funciona, estás como ¿qué está pasando con este elemento aquí? Puedes usar el LocatorPicker y puedes pasar el ratón sobre la página web y resaltará el localizador debajo y luego puedes básicamente copiar eso en tu código y solucionar tu problema o sabes escribir esa línea que no sabías cuál era el localizador. Esto es realmente útil porque usamos localizadores basados en roles, eso es lo que recomendamos. Así que si no estás acostumbrado a entender los roles accesibles de algo, no te preocupes porque no necesitas saber eso porque Playwright te dará el rol accesible correcto. Una vez que tu código es bueno, por supuesto.

UiMode, mi herramienta favorita, es simplemente increíble. Para usar UiMode, tendrás que abrir la terminal y poner npx Playwright test –ui y lo que hace es abrir esta ventana aquí y tiene como todas las pruebas en el lado izquierdo allí y puedes hacer clic y reproducir cada una de esas pruebas. Y luego aquí en el medio, tienes una instantánea del DOM - va a controlar las acciones y sabes qué, echaremos un vistazo a esto más tarde en una demostración, pero te animo encarecidamente a que uses UiMode y también viene con el modo Watch que es realmente genial. Informe HTML - así que puedes literalmente ver qué está pasando en tu prueba, cuántas pasaron, cuántas fallaron, cuántas fueron inestables, cuántas se saltaron y repasar todo el informe y puedes abrir y expandir eso y verlo en más detalle también. Y Trace Viewer - esto es algo similar a UiMode así que de nuevo tiene esa instantánea del DOM, tiene todo lo que necesitas saber y todas esas acciones y esto es realmente útil para depurar en CI. ¿Sabes que funciona en mi máquina? Luego lo envías a producción y algo falla en CI y estás como, ¿qué hago ahora? Trace Viewer tiene la respuesta. Descargas esa traza y depuras esa traza y averiguas exactamente qué pasó y cómo solucionarlo. GitHub Actions - así que Playwright viene con un GitHub Actions de serie que básicamente significa que puedes ejecutar tu prueba en CI sin siquiera tener que hacer ninguna configuración y eso es realmente, realmente genial. Así que por supuesto puedes ejecutar Playwright en cualquier proveedor de CI, pero te damos el GitHub Actions de serie y te facilita la vida. Así que te recomiendo encarecidamente que lo pruebes. Así que un par de best practices o tips. La primera es literalmente escribir pruebas de extremo a extremo. Y estoy muy serio al respecto. Hace muchos, muchos, muchos años la gente decía que las pruebas de extremo a extremo eran lentas, y que deberías escribir un montón de pruebas unitarias y luego un pequeño bit de pruebas de extremo a extremo. Pero el mundo ha cambiado. La tooling ha cambiado.

4. Escribir Pruebas Efectivas

Short description:

Las pruebas de extremo a extremo son más rápidas y económicas, reduciendo la necesidad de muchas pruebas unitarias. Prioriza los atributos orientados al usuario y la accesibilidad utilizando los localizadores de Playwright. Utiliza las afirmaciones de Playwright para pruebas de reintentos automáticos. Evita probar dependencias de terceros.

Todo ha cambiado. Las pruebas de extremo a extremo tooling son mucho más rápidas, son mucho más económicas que antes, por lo que no tienes que escribir tantas pruebas unitarias ahora. Y quieres que tu unidad, quieres que tu prueba esté lo más cerca posible del usuario. Por lo general, tus pruebas no están cerca del usuario, están cerca del código. Quieres que tus pruebas estén más cerca de lo que está haciendo el usuario, así que escribe esas pruebas de extremo a extremo. Así que si quieres llamarlas pruebas de integración o lo que sea, pero asegúrate de que estás escribiendo pruebas de extremo a extremo.

Si solo tienes tiempo para escribir una prueba, haz que sea una prueba de extremo a extremo. Mantén PlayWrite actualizado. Así que lanzamos una nueva versión de PlayWrite cada mes, y como, obviamente te damos algunas características realmente geniales, y estás como, oh, tal vez no necesito esa característica, está bien. Pero también como algunas correcciones de errores, y tal vez como, no tengo ningún error, está bien. Pero también, estás testing en las últimas versiones de los navegadores, y sabes, Chrome se lanza cada mes también, ¿verdad? Así que tus navegadores se están lanzando cada mes. Así que al actualizar a PlayWrite, también estás testing contra los últimos navegadores, y eso es realmente, realmente importante. Así que asegúrate de mantener PlayWrite actualizado, npm install dash d at playwrite slash test at latest.

Usa localizadores. Así que los localizadores vienen con la ponderación automática y la capacidad de reintentar. Y te animamos encarecidamente a que priorices los atributos orientados al usuario. Así que verás algo como esta página, obtener por rol, ¿qué rol estoy buscando?, estoy buscando el rol de un botón, y ¿cuál es el nombre de ese rol accesible? es submit. Y ese es mi atributo orientado al usuario. También estoy testing que este botón tiene un buen nombre accesible. Así que sabes, esto es realmente bueno, porque estoy testing accessibility. Además estoy escribiendo mi prueba y asegurándome de que mi código es bueno. Así que te animo encarecidamente a que uses nuestros localizadores de Playwright y atributos orientados al usuario.

Usa las afirmaciones de Playwright. Así que hablamos de esto antes, son de reintentos automáticos. Así que asegúrate de que las estás utilizando. Un ejemplo es un peso, asegúrate de que tienes el peso, y luego esperas, y esperas la página aquí, estamos haciendo un get by test ID. Y tenemos el estado, y esperamos que tenga el texto enviado. Así que esa es una afirmación de Playwright para tener texto. Y verás una lista completa de esas en los documentos para tener recuento, para tener texto, para ser visible, etc.

Evita testing las dependencias de terceros.

5. Pruebas de APIs y Generación de Código

Short description:

Si estás utilizando una API que no posees, no necesitas probarla. Solo asegúrate de que el botón sea clickeable y el enlace funcione. Utiliza Code Gen para simplificar tu trabajo. Permíteme darte una rápida demostración en VS code, probando el sitio web de Contoso Traders. Busca un Xbox, selecciona uno, añádelo a la bolsa y luego retíralo. Tu flujo está hecho.

Entonces, si vas a una API, ¿verdad?, y tal vez no posees esa API, bueno, no necesitas probar esa API, como GitHub, por ejemplo, quiero que mi sitio enlace a GitHub. Bueno, no necesito probar eso. Así que solo necesito probar que el botón es clickeable y que irá allí. Pero luego puedo interceptar esa ruta, y simplemente llenarla con otros data. Y entonces sé que la ruta está funcionando, el enlace está funcionando, pero en realidad no estoy golpeando la API cada vez.

Utiliza Code Gen. En serio, algunas personas se mantienen alejadas de las herramientas que son como, oh, está haciendo todo este trabajo por mí, y no sé qué está haciendo, o es aterrador, me gusta escribir todo yo mismo. Quiero decir, totalmente genial si quieres hacer todo ese trabajo duro tú mismo, está bien. Pero las herramientas realmente te facilitan la vida. Así que te animamos encarecidamente a que las uses.

Permíteme darte una rápida demostración de cómo funciona. Así que estoy en VS code. Solo voy a grabar nuevo y verás que ha creado un archivo de prueba uno para mí. Ahora me da una ventana del navegador y puedo ir a probar este sitio web de Contoso Traders. Así que abre el navegador para mí en este sitio web, y puedes ver aquí en la prueba, tengo una página de espera, ve al sitio web cloudtesting.contostotraders.com. Muy genial. Ahora hagamos algo. Vamos a buscar un Xbox. Este es un flujo de usuario. Lo que el usuario haría, buscarían el producto, lo escribirían, presionarían enter, y luego buscarían. ¿Cuál quieren? Voy a seleccionar el del medio porque se ve genial. Y vamos a añadir dos porque jugar solo no es divertido. Y luego lo añadimos a la bolsa. Ahora en mi bolsa, puedes ver que se añadió uno, así que puedo entrar allí. Puedo ver que el producto está allí. Hay dos allí, y básicamente eso es, ya sabes, realmente caro. Vamos a quitarlo. He cambiado de opinión. No quiero comprarlo. Mi carrito está vacío y mi flujo ha terminado.

6. Generación y Ejecución de Pruebas

Short description:

Puedo generar pruebas de manera rápida y fácil. Agregar afirmaciones ayuda a asegurar que las pruebas estén funcionando correctamente. Utiliza Code Jam y el modo UI para una mejor experiencia de prueba.

Perfecto. Ahora mira mi prueba. Todo esto ha sido generado para mí. Esto es realmente genial porque no tuve que hacer todo ese trabajo para ponerlo en marcha. En cuestión de un minuto, tengo mi prueba escrita. Literalmente puedo presionar cancelar, y luego podría ejecutar esa prueba y ver que realmente funciona. Solo, ya sabes, asegúrate, no sé, algo no salió mal.

Entonces, si ejecuto esa prueba, sí, funciona. Por supuesto que funciona. Aquí está mi rastro. Puedo ver el flujo de usuario real. Puedo revisar y ver si me perdí de algo. Y realmente ahora lo que quiero hacer es comenzar a agregar mis afirmaciones, ¿verdad? Entonces quiero decir, está bien, al final, voy a decir que espero que el Localizador sea visible, ¿verdad? Ahora voy a ejecutar esta prueba. ¿Qué va a pasar? Va a fallar, lo cual es obvio porque presiono el botón de eliminar. No quiero ver esto en mi carrito, pero me gusta ver que mis pruebas fallan antes de que pasen. Entonces sabes, entonces estoy realmente seguro de que está funcionando. Así que estoy moviendo eso ahora antes de que lo eliminen. Está en el carrito. Luego presiono el botón de eliminar. Lo que puedo hacer es que puedo poner eso de nuevo aquí. Pero en lugar de decir que sea visible, puedo decir, quiero que no sea visible. Entonces, una vez que presione eliminar, asegúrate de que el Xbox no sea visible en la página. Y si ejecuto esa prueba, ahora pasará. Tengo mis dos afirmaciones y mi prueba se realiza en cuestión de segundos, y estoy feliz y listo para irme a casa. Así que eso es realmente, realmente genial.

Entonces sí, utiliza Code Jam. Es increíble. Y también utiliza el modo UI. Echemos un vistazo al modo UI. Es mi herramienta favorita.

7. Ejecución y Depuración de Pruebas

Short description:

Una vez que se lanza la prueba, se puede ejecutar presionando play. El modo UI permite una fácil depuración y comprensión de cada paso. Sin embargo, puede haber casos en los que la prueba se agote y se muestre un mensaje de error. En tales casos, la pestaña de error proporciona información sobre la línea específica de código que está causando el problema.

Entonces, hablamos de esto un poco antes. Aquí está, se ha lanzado y puedo presionar play. Una vez que presiono play, va a ejecutar esa prueba para mí. Y me está dando todo lo que necesito, ¿verdad?

Esta es mi otra prueba. Puedo ejecutarla. Puedo ver las acciones. Esta es una prueba muy simple en la que solo estoy haciendo clic en el botón de comenzar, y está yendo a la página de instalación. Y puedes ver el código resaltado allí en la parte inferior. Y puedes ver la línea de tiempo resaltada.

Ejecutemos una prueba mejor. La prueba que acabamos de crear con CodeGen y aquí tenemos nuestra prueba. Entonces puedes ver que puedo pasar por cada una de esas acciones en el modo UI. Puedo ver en qué se está haciendo clic. Puedo ver el código fuente debajo y puedo pasar por cada paso y entender mejor lo que está pasando. Esto es realmente, realmente bueno para la depuración, porque algo va a suceder en un segundo. Vas a ver, así que espera un segundo y verás lo que va a suceder.

¿Verdad? Tengo mi caja de cámara y como que algo ha sucedido, ¿verdad? Ahora puedes ver que tengo un mensaje de error. La prueba se ha agotado, así que en ese espacio de tiempo mientras te estaba hablando, mi prueba se agotó y tengo que averiguar por qué. ¿Qué pasó? Escribimos una prueba hace un minuto. ¿Qué acaba de pasar aquí? ¿El desarrollador cambió el código? Espero que no. Entonces, echemos un vistazo. Bueno, tenemos una pestaña de error aquí y es, bueno, el código fuente primero me dice línea 12 get by label bag dot click. Así que está esperando el get by label de bag. La pestaña de error me dirá esto también. Está esperando get by label bag. Eso es todo. Eso está bien. Sabes, puedo ver que falla, pero ¿qué hago desde aquí? Y puedo pasar por, ya sabes, cada una de las secciones, la llamada. Puedo ver el localizador. El modo estricto es verdadero.

8. Arreglando una Prueba Fallida y Analizando Cambios en el DOM

Short description:

Puedo revisar mis solicitudes de red, buscar mensajes de consola y corregir el mensaje de error. Para arreglar una prueba fallida, comprende el flujo de acciones. En este caso, el producto se añadió a la bolsa pero no se puede hacer clic en él. Usa la línea de tiempo para analizar las acciones. Coloca el problema en una instantánea del DOM para inspeccionar y entender el código. Verifica los cambios realizados por los desarrolladores, como el cambio de la etiqueta de área a carrito.

Entonces eso está bien. Eso realmente no me está ayudando aquí. También puedo revisar todas mis solicitudes de red, lo cual es realmente genial en caso de que necesite hacerlo. No tengo mensajes de consola. Eso es bueno. Pero tengo un mensaje de error y necesito corregirlo.

Ahora, ¿qué harías en esta situación? Tienes una prueba fallida. ¿Cómo arreglas tu prueba fallida? ¿Qué haces? Entonces, la mejor manera de hacerlo es tratar de entender el flujo de lo que estaba sucediendo hasta ese punto. ¿Verdad? Teníamos una página, obtenida por el nombre del botón, añadir a la bolsa, y lo hicimos clic. Así que aquí es donde estamos fallando. Hemos añadido a la bolsa, pero luego hicimos clic en la bolsa. Así que podemos ver los pasos, ¿verdad? Podemos ver lo que pasó antes. Podemos ver lo que pasó después. Puedes ver que el pequeño se añadió a la bolsa. Así que nuestro producto fue añadido a la bolsa, pero por alguna razón, no nos está permitiendo hacer clic en él. Ahora, ¿por qué Playwright no puede hacer clic en ese botón? Esto es lo que estamos tratando de averiguar. Y puedes ver en la línea de tiempo aquí, puedo desplazarme por allí y también ver las acciones. Puedo ver de nuevo, sí, que uno fue añadido a la bolsa.

Entonces esto es realmente genial, pero no lo sé. ¿Cómo arreglo esto? Bueno, hay un par de formas en que podemos hacer esto, ¿verdad? Podemos básicamente decir que este es nuestro problema. Vamos a ponerlo en una instantánea del DOM. Saquémoslo de allí. Entendamos el código. Veamos qué pasó. ¿El desarrollador cambió algo? Como es una instantánea del DOM de nuestra prueba, podemos inspeccionarla. Podemos ir al código. Y si miramos esto aquí, podemos decir, oh Dios mío, mira eso. Hay una etiqueta de área de carrito. Algún desarrollador ha ido y ha cambiado esto a carrito. Y también puedes ver esto a través del árbol de accessibility.

9. Arreglando la Incompatibilidad del Localizador y Usando el Localizador de Selección

Short description:

Tenemos una incompatibilidad en nuestro localizador y código. Al usar el localizador de selección, podemos encontrar fácilmente el localizador correcto y hacer clic en él sin mirar el DOM o el árbol de accesibilidad. El patio de juegos del localizador nos permite experimentar y entender completamente nuestro código. Descubrimos que 'obtener por etiqueta carrito' es el camino a seguir. El localizador nos ayuda a encontrar elementos incluso con coincidencias parciales. Copiemos esto en nuestro código y activemos el Modo de Observación para reejecuciones automáticas. Abramos VS Code y vayamos a la línea 12.

Y puedes ver que es botón carrito, etiqueta de área carrito. Entonces este es nuestro problema, ¿verdad? Tenemos en nuestro localizador, bolsa, obtener por etiqueta bolsa. Pero en nuestro código, tenemos carrito, una incompatibilidad muy simple porque parece una bolsa para mí. Entonces, como probador, creo que suena bien. Pero obviamente, el desarrollador pensó que era un carrito.

Ahora, si uso el botón del localizador de selección, incluso más fácil, puedo simplemente pasar el cursor sobre eso y me va a dar el localizador correcto y puedo hacer clic en él. Lo va a poner en esa caja de abajo. Entonces ni siquiera tengo que mirar el DOM. Ni siquiera tengo que mirar el árbol de accessibility. Puedo simplemente usar un localizador de selección y pasar el cursor sobre él. Y también puedo jugar aquí. Puedo escribir, si pongo carrito, si pongo bolsa, no se encuentra nada, ¿verdad? Entonces realmente puede ver lo que está pasando y simplemente jugar completamente con su código aquí con el patio de juegos del localizador. Entonces esta es una gran manera. Así que descubrimos que obtener por etiqueta carrito es el camino a seguir. E incluso puedes experimentar aún más. Tomemos este aquí. Obtén mi rol botón nombre añadir a la bolsa. Eliminemos añadir a la bolsa y simplemente pongamos añadir. Puedes ver que todavía lo encuentra, ¿verdad?, porque tiene añadir. Aunque tiene añadir a una bolsa, no es una coincidencia exacta. Así que ten cuidado con eso. Pero el localizador te va a ayudar. Esta herramienta te va a ayudar a descubrir, oh, añadir a la bolsa. Solo hay uno de uno, etc. Así que ese es mi localizador de selección. Así que volvamos y consigamos el que queremos. Ahora podemos copiar eso en nuestro código. Ahora, antes de copiarlo, hagamos clic en Modo de Observación, porque queremos que esto se vuelva a ejecutar automáticamente. Y hagamos clic en el icono de Archivo, que luego simplemente abrirá nuestro VS Code para nosotros. Vamos a la línea 12.

10. Depuración, Escalado y Código Abierto

Short description:

Pegaremos nuestro localizador, el correcto. Playwright puede encontrar ese localizador, porque realmente existe en la página, y días felices. Nuestra prueba pasa. Así es como depuraríamos. Quieres ejecutar en CI. Viene con un flujo de trabajo de GitHub Actions. Si quieres fragmentar, también puedes fusionar informes. Playwright es de código abierto y gratuito, de Microsoft. Estamos literalmente creciendo continuamente.

Pegaremos nuestro localizador, el correcto. Y automáticamente, va a volver a ejecutar esa prueba para nosotros. Y verás aquí, se está volviendo a ejecutar. Va a pasar por esto. Y ahora Playwright puede encontrar ese localizador, porque realmente existe en la página, y días felices. Nuestra prueba pasa. Y puedes ver ahora que está funcionando exactamente como debería hacerlo. Así es como depuraríamos, etc. Modo de interfaz de usuario realmente, realmente genial, así que asegúrate de usar el modo de interfaz de usuario durante toda tu experiencia de desarrollador.

Así que el escalado. Hablamos un poco sobre el escalado. Básicamente, quieres ejecutar en CI. Recomendamos encarecidamente que ejecutes tus pruebas en CI. Y como dije, viene con un flujo de trabajo de GitHub Actions. Así que eso simplemente viene y funciona de inmediato. Así que asegúrate de usar eso. Y luego si quieres fragmentar, puedes también fusionar informes. Así que aquí estoy tomando mi sitio web. Y si vuelvo aquí, la duración de mi prueba fue de 18 minutos, ¿verdad? Y luego, simplemente fragmentando en GitHub, lo reduje a ocho minutos. Así que lo ejecuté en cuatro máquinas. Y luego pude fusionar esos informes para tener un informe, que me da el informe único con mis 292 pruebas. Y una fue omitida. Necesito arreglar eso. 291 pasaron, y estamos hablando de ocho minutos. Eso no está nada mal. Así que eso es fusionar informes.

Así que recuerda, Playwright es de código abierto y gratuito. Es de Microsoft. Y puedes ver que estamos literalmente creciendo continuamente. Nos encantan las estrellas de GitHub.

11. Conclusión y Acción

Short description:

Asegúrate de darnos una estrella en GitHub y síguenos en Discord. Playwright es fácil y divertido, pero depende de ti hacer el trabajo. Comienza pequeño, dedica unos minutos al día o a la semana para escribir pruebas, e imagina lo que puedes lograr en un año. ¡Gracias y que tengas un gran día!

Asegúrate de darnos una estrella en GitHub. Nos pagan en estrellas. Así que si no nos das una estrella, no nos pagan. Lo sé, solo estoy bromeando. Pero sí, danos una estrella si te gusta lo que estamos haciendo.

Tenemos unos embajadores increíbles que están haciendo un trabajo loco y genial ahí fuera. Así que asegúrate de seguirlos y ver lo que están haciendo. Y síguenos en Discord, donde vas a ver, no solo videos y artículos, sino también una community realmente útil para ayudarte con la ayuda de Playwright. Así que haz cualquier pregunta allí, y la community te respaldará.

Entonces, mi única pregunta es, ¿estás listo para Playwright? Espero que sí. Espero que ahora puedas ver que Playwright es fácil, es divertido. Testing es fácil, es divertido. Y ahora todo depende de ti. Puedo volver aquí el próximo año y dar esta misma charla. Y no vamos a ir a ninguna parte. Tienes que hacer el trabajo.

Así que asegúrate de salir y simplemente comienza a escribir tus pruebas. Y toma un segundo, comienza pequeño, haz una, cinco minutos al día. Incluso cinco minutos a la semana. Oh, Dios mío, puedes imaginar lo que lograrías en un año si solo dedicaras cinco minutos a la semana a escribir una prueba. Muchas gracias a todos. Que tengas un gran día. Adiós.

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

Solicitudes de Red con Cypress
TestJS Summit 2021TestJS Summit 2021
33 min
Solicitudes de Red con Cypress
Top Content
Cecilia Martinez, a technical account manager at Cypress, discusses network requests in Cypress and demonstrates commands like cydot request and SCI.INTERCEPT. She also explains dynamic matching and aliasing, network stubbing, and the pros and cons of using real server responses versus stubbing. The talk covers logging request responses, testing front-end and backend API, handling list length and DOM traversal, lazy loading, and provides resources for beginners to learn Cypress.
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.
Desarrollo Efectivo de Pruebas
TestJS Summit 2021TestJS Summit 2021
31 min
Desarrollo Efectivo de Pruebas
Top Content
This Talk introduces Test Effective Development, a new approach to testing that aims to make companies more cost-effective. The speaker shares their personal journey of improving code quality and reducing bugs through smarter testing strategies. They discuss the importance of finding a balance between testing confidence and efficiency and introduce the concepts of isolated and integrated testing. The speaker also suggests different testing strategies based on the size of the application and emphasizes the need to choose cost-effective testing approaches based on the specific project requirements.
Playwright Test Runner
TestJS Summit 2021TestJS Summit 2021
25 min
Playwright Test Runner
Top Content
The Playwright Test Runner is a cross-browser web testing framework that allows you to write tests using just a few lines of code. It supports features like parallel test execution, device emulation, and different reporters for customized output. Code-Gen is a new feature that generates code to interact with web pages. Playwright Tracing provides a powerful tool for debugging and analyzing test actions, with the ability to explore trace files using TraceViewer. Overall, Playwright Test offers installation, test authoring, debugging, and post-mortem debugging capabilities.

Workshops on related topic

Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
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
Masterclass de Pruebas de API con Postman
TestJS Summit 2023TestJS Summit 2023
48 min
Masterclass de Pruebas de API con Postman
Top Content
WorkshopFree
Pooja Mistry
Pooja Mistry
En el panorama siempre en evolución del desarrollo de software, garantizar la fiabilidad y funcionalidad de las API se ha vuelto primordial. "Pruebas de API con Postman" es una masterclass completa diseñada para equipar a los participantes con los conocimientos y habilidades necesarios para sobresalir en las pruebas de API utilizando Postman, una herramienta poderosa ampliamente adoptada por profesionales en el campo. Esta masterclass profundiza en los fundamentos de las pruebas de API, avanza a técnicas de prueba avanzadas y explora la automatización, las pruebas de rendimiento y el soporte multiprotocolo, proporcionando a los asistentes una comprensión holística de las pruebas de API con Postman.
Únete a nosotros para esta masterclass para desbloquear todo el potencial de Postman para las pruebas de API, agilizar tus procesos de prueba y mejorar la calidad y fiabilidad de tu software. Ya seas un principiante o un probador experimentado, esta masterclass te equipará con las habilidades necesarias para sobresalir en las pruebas de API con Postman.
Monitoreo 101 para Desarrolladores de React
React Summit US 2023React Summit US 2023
107 min
Monitoreo 101 para Desarrolladores de React
Top Content
WorkshopFree
Lazar Nikolov
Sarah Guthals
2 authors
Si encontrar errores en tu proyecto frontend es como buscar una aguja en un pajar de código, entonces el monitoreo de errores de Sentry puede ser tu detector de metales. Aprende los conceptos básicos del monitoreo de errores con Sentry. Ya sea que estés ejecutando un proyecto de React, Angular, Vue, o simplemente JavaScript “vainilla”, mira cómo Sentry puede ayudarte a encontrar el quién, qué, cuándo y dónde detrás de los errores en tu proyecto frontend.
Nivel de la masterclass: Intermedio
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.
Mejores Prácticas para Escribir y Depurar Pruebas de Cypress
TestJS Summit 2023TestJS Summit 2023
148 min
Mejores Prácticas para Escribir y Depurar Pruebas de Cypress
Top Content
Workshop
Filip Hric
Filip Hric
Probablemente conozcas la historia. Has creado un par de pruebas y, como estás utilizando Cypress, lo has hecho bastante rápido. Parece que nada te detiene, pero luego - prueba fallida. No fue la aplicación, no fue un error, la prueba fue... ¿inestable? Bueno sí. El diseño de la prueba es importante sin importar la herramienta que utilices, incluyendo Cypress. La buena noticia es que Cypress tiene un par de herramientas bajo su cinturón que pueden ayudarte. Únete a mí en mi masterclass, donde te guiaré lejos del valle de los anti-patrones hacia los campos de pruebas estables y siempre verdes. Hablaremos sobre los errores comunes al escribir tu prueba, así como depurar y revelar problemas subyacentes. Todo con el objetivo de evitar la inestabilidad y diseñar pruebas estables.