Fixtures en Playwright - Pequeña Guía

Rate this content
Bookmark

¿Qué son los fixtures? ¿Cómo puedo crear uno? ¿Cómo puedo usarlo? Responderé todas estas preguntas con un pequeño pero explicativo ejemplo de código en vivo.

FAQ

Un fixture en Playwright se describe como un pequeño entorno donde existen métodos y elementos definidos por el usuario, similar a una piscina de bolas donde la piscina representa a Playwright y las bolas son los fixtures.

Los fixtures son fundamentales en Playwright porque permiten controlar el entorno de prueba, haciendo que cada componente como la página o el navegador de contexto sea manipulable y adaptable a necesidades específicas.

Crear tus propios fixtures en Playwright permite tener un mayor control sobre los métodos y comportamientos dentro de tus pruebas, haciéndolas más legibles, reutilizables y mantenibles.

Para hacer un fixture más legible y reutilizable, puedes encapsular funcionalidades comunes dentro de objetos de página con métodos específicos, y luego integrar estos objetos en un fixture que se use en varias pruebas.

La estructura básica de un fixture en Playwright incluye un bloque 'antes' para configuraciones previas, el bloque de prueba donde se ejecutan las acciones y un bloque 'después' para tareas de finalización o limpieza.

Para integrar un fixture personalizado en tus pruebas, necesitas definirlo en una función y hacer que Playwright lo reconozca y lo añada a tu entorno de prueba. Esto te permite utilizar métodos personalizados directamente en tus pruebas.

Lia Moreira
Lia Moreira
6 min
07 Dec, 2023

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Los fixtures en Playwright son como pequeños entornos donde defines métodos y controlas el proceso de prueba. Al crear fixtures reutilizables, puedes hacer las pruebas más legibles y reutilizables. La estructura de un fixture consta de un bloque antes, la prueba y un bloque después. El uso de fixtures te permite acceder a los métodos creados en un objeto de página, mejorando la legibilidad y reutilización del código.

1. Introducción a los Fixtures

Short description:

Hola a todos. Soy Lia, la guardiana de la calidad de la aplicación. Mi objetivo es ayudarte a entender los fixtures y cómo crear los tuyos. Los fixtures son como pequeños entornos en Playwright, donde defines métodos y cosas. Playwright nos da la oportunidad de crear nuestros propios fixtures, proporcionando control sobre el proceso de prueba.

Hola a todos. Soy Lia. Espero que se estén divirtiendo hoy. Mi descripción de trabajo en Bleep es ingeniera de aseguramiento de calidad, pero me gusta describirme como la guardiana de la calidad de la aplicación. Mi objetivo aquí es, al final de estos siete minutos más o menos, que obtengan una mejor comprensión de lo que es un fixture y cómo pueden crear el suyo propio.

Entonces, comencemos desde el principio. ¿Qué es un fixture? Bueno, me gusta describir los fixtures en Playwright como un pequeño entorno donde existen métodos y cosas que yo defino. Uso estas analogías como, imagina una piscina de bolas donde Playwright es la piscina de bolas y los fixtures son las pequeñas bolas que están dentro de la piscina de bolas.

¿Y por qué? ¿Por qué usas fixtures? Así que Playwright se basa en fixtures. Todo lo que usamos en Playwright es un fixture. La página es un fixture. El navegador de contexto es un fixture. Y como dije anteriormente, Playwright nos da la oportunidad de crear los nuestros. Y puedes preguntar, vale, si Playwright nos da la oportunidad, lo siento, si Playwright nos da el fixture ya, ¿por qué necesito crear el mío? Bueno, la respuesta es control. Pero vale, esto no está funcionando. Claro que necesitamos tener problemas. Vale, control. Vale. ¿Control de qué? Bueno, veamos un pequeño ejemplo.

2. Creando Fixtures Reutilizables

Short description:

Para hacer la prueba más legible y reutilizable, la paso a un objeto de página con mis propios métodos. Al crear un fixture, puedo hacer que estos métodos estén disponibles para su uso. La estructura del fixture consta de un bloque antes, la prueba y un bloque después. En lugar de importar la prueba y usar la página, importo y uso mi fixture en la prueba. Esto me permite acceder a los métodos que creé en el objeto de página, haciendo que el código sea más legible y reutilizable. Los fixtures de Playwright proporcionan control sobre los métodos utilizados en el fixture, creando un entorno pequeño y controlable.

Entonces, esta es una prueba que creé, y puedes ver que está utilizando el fixture de página. Estoy importando la prueba de Playwright. Tengo un antes. Estoy comprobando algunos títulos y rellenando algunos forms. Pero esto no es realmente reutilizable y no puedes entender realmente si no tienes el contexto de la aplicación, qué se está haciendo aquí.

Entonces, ¿cómo puedo hacer esto más fácil de leer y más reutilizable para todos los que necesitan agregar pruebas para usarlo? Entonces la respuesta es, voy a pasar esto a un objeto de página que tiene mis propios métodos. Y puedes ver aquí que tengo getTitle, clickButtons, fillForms. Entonces, estos son mis métodos, mis objetos de página, pero esto por sí solo no los hace disponibles en el fixture de página.

Entonces, lo que necesito hacer para que estén disponibles para usar es, bueno, crear un fixture. Entonces la estructura aquí es, necesito tener una función que le diga a Playwright, añade mi fixture a la tierra de la característica. Entonces la prueba es la tierra de las características y voy a extender mis propias características. Y en mi definición de fixture, va a estar mi prueba. Puedes usar otros fixtures como una sección de fixture para hacer cosas, pero lo principal aquí es la estructura. Entonces, la estructura para el fixture va a ser el bloque antes, la prueba y luego el bloque después. Entonces, lo que estoy haciendo aquí es, si miras la prueba inicial, tengo un gancho antes y comparando con mi fixture, el mismo gancho antes está allí. Luego voy a usar mis métodos en la página inicial y después de la ejecución, voy a hacer un console.log de algo.

Entonces, ¿cómo puedo usar esto en mi prueba? Entonces, en lugar de importar la prueba, en lugar de usar la página, ahora lo que voy a hacer es importar mi fixture y usar mi fixture en la prueba e importar mi prueba que es el fixture actual. Y como puedes ver allí, tiene acceso a mis métodos que creé en el objeto de página. Es un poco más legible y es muy reutilizable porque si quiero tener, digamos, otras 10 pruebas que pasen por esto, puedes simplemente reutilizarlo en lugar de tener que recodificar todo. Entonces, el control que nos dan los Fixtures de PlayWrite es que puedo decidir qué métodos necesito usar o qué quiero usar en mi fixture. Tengo un entorno realmente pequeño que es muy controlable y muy reutilizable. Entonces, espero que esto les dé un poco más de visión sobre los fixtures y cómo pueden usarlos en sus pruebas. Y eso es todo, chicos. Gracias.

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

Despliegue Atómico para Hipsters de JavaScript
DevOps.js Conf 2024DevOps.js Conf 2024
25 min
Despliegue Atómico para Hipsters de JavaScript
Desplegar una aplicación no es un proceso fácil. Te encontrarás con muchos problemas y puntos de dolor que resolver para que funcione correctamente. Lo peor es: ahora que puedes desplegar tu aplicación en producción, ¿cómo no vas a poder desplegar también todas las ramas del proyecto para tener acceso a vistas previas en vivo? ¿Y poder hacer un revert rápido a pedido?Afortunadamente, el clásico conjunto de herramientas de DevOps tiene todo lo que necesitas para lograrlo sin comprometer tu salud mental. Al mezclar expertamente Git, herramientas de Unix y llamadas a API, y orquestar todo ello con JavaScript, dominarás el secreto de los despliegues atómicos seguros.No necesitarás depender de servicios comerciales: ¡conviértete en el maestro perfecto de las herramientas y netlifica tu aplicación desde casa!
Pruebas de rendimiento efectivas para su servidor con Autocannon
TestJS Summit 2021TestJS Summit 2021
36 min
Pruebas de rendimiento efectivas para su servidor con Autocannon
Top Content
Experiencia en pruebas de rendimiento que se ha desarrollado durante mucho tiempo. Para medir el rendimiento de su servidor, necesita una herramienta que pueda simular eficientemente muchas habilidades y proporcionarle buenas mediciones según sus criterios de análisis.La biblioteca NPM de Autocannon me dio exactamente eso: esa biblioteca es muy fácil de instalar y tiene una API muy simple con la que trabajar. En un corto período de tiempo, puede comenzar a realizar pruebas de rendimiento en su aplicación y obtener buenas mediciones en el entorno de desarrollo y en sus laboratorios de rendimiento, y generar escenarios de prueba complicados.En esta charla presentaré Autocannon, explicaré cómo analizar eficientemente el rendimiento de su servidor con él y mostraré cómo me ayudó a entender problemas de rendimiento complicados en mis servidores Node.js. Al final de esta conferencia, los desarrolladores tendrán la capacidad de integrar una herramienta rápida y fácil para medir el rendimiento de su servidor.
Pruebas de integración encantadoras con Testcontainers
TestJS Summit 2022TestJS Summit 2022
21 min
Pruebas de integración encantadoras con Testcontainers
Top Content
Los servicios Dockerizados son una excelente herramienta para crear entornos aislados y repetibles ideales para pruebas de integración. En esta sesión, veremos las bibliotecas de Testcontainers que proporcionan una API flexible e intuitiva para controlar programáticamente el ciclo de vida de las dependencias de su servicio en contenedores Docker. Ejecutar bases de datos, Kafka, Elasticsearch e incluso tecnologías en la nube, directamente desde su código de prueba asegura que la configuración del entorno siempre esté actualizada y sea consistente durante el desarrollo local y en los pipelines de CI.Aprenderás todo lo necesario para comenzar a agregar pruebas de integración poderosas a tu base de código sin el dolor de cabeza de administrar dependencias de servicio externas manualmente!
Regresión Visual con Puppeteer, Playwright y Cypress
TestJS Summit 2021TestJS Summit 2021
9 min
Regresión Visual con Puppeteer, Playwright y Cypress
Top Content
Las pruebas de Regresión Visual se realizan a través de la coincidencia de capturas de pantalla. Mostraré cómo hacerlo en tres diferentes bibliotecas/marcos de trabajo. Además, utilizaré Storybook para extraer los componentes de tu elección de SPA.
¿Playwright puede hacer esto?
TestJS Summit 2022TestJS Summit 2022
23 min
¿Playwright puede hacer esto?
Garantizar que tu aplicación no se rompa mientras envías constantemente nuevas características es difícil. Obviamente, con una aplicación o sitio en constante crecimiento, no puedes probar todo manualmente todo el tiempo.La automatización de pruebas y el monitoreo son cruciales para evitar enviar aplicaciones y sitios rotos. Pero, ¿qué funcionalidad debes probar? ¿Cuándo debes ejecutar tus pruebas? ¿Y no son las suites de pruebas complejas muy lentas?En esta sesión, pondremos manos a la obra con Playwright, el marco de pruebas de extremo a extremo, y aprenderemos cómo automatizar navegadores sin cabeza para asegurarnos de enviar nuevas características con confianza.
La Guía del Desarrollador Perezoso: ¿Cómo Automatizar las Actualizaciones de Código?
DevOps.js Conf 2022DevOps.js Conf 2022
22 min
La Guía del Desarrollador Perezoso: ¿Cómo Automatizar las Actualizaciones de Código?
¿Cómo actualizar cientos de proyectos de una vez? Con el rápido crecimiento de las organizaciones, la demanda de escalabilidad de los equipos crece, lo que afecta directamente la estructura y propiedad de los proyectos. El dilema habitual es mono vs. multi-repos, pero... ¿Y si te digo que no importa mucho? Ambos enfoques pueden golpearte en algún momento, así que tal vez es mejor pensar de abajo hacia arriba.
Hoy te guiaré a través de algunos de los mayores desafíos que existen en ambos enfoques, como la gestión de dependencias en cientos de proyectos, las actualizaciones globales de código y muchas otras cosas. También te mostraré ejemplos de cómo resolvimos esto dentro de Infobip mediante la construcción de nuestras propias bibliotecas internas.

Workshops on related topic

Pruebas automatizadas de accesibilidad con jest-axe y Lighthouse CI
TestJS Summit 2021TestJS Summit 2021
85 min
Pruebas automatizadas de accesibilidad con jest-axe y Lighthouse CI
Workshop
Bonnie Schulkin
Bonnie Schulkin
¿Incluyen tus pruebas automatizadas verificaciones de accesibilidad? Este masterclass cubrirá cómo comenzar con jest-axe para detectar violaciones de accesibilidad basadas en código, y Lighthouse CI para validar la accesibilidad de las páginas completamente renderizadas. Ninguna cantidad de pruebas automatizadas puede reemplazar las pruebas manuales de accesibilidad, pero estas verificaciones se asegurarán de que tus probadores manuales no estén haciendo más trabajo del necesario.
Automatización de pruebas utilizando WebdriverIO
TestJS Summit 2022TestJS Summit 2022
163 min
Automatización de pruebas utilizando WebdriverIO
Workshop
Kevin Lamping
Kevin Lamping
En este masterclass, cubro no solo lo que WebdriverIO puede hacer, sino también cómo lo utilizarás día a día. He construido los ejercicios en torno a escenarios del mundo real que demuestran cómo realmente configurar las cosas. No es solo "qué hacer", sino específicamente "cómo llegar allí". Cubriremos los fundamentos de las pruebas automatizadas de UI para que puedas escribir pruebas mantenibles y útiles para tu sitio web y/o aplicación web.
JS Automatización de Pruebas de Seguridad para Desarrolladores en Cada Compilación
TestJS Summit 2021TestJS Summit 2021
111 min
JS Automatización de Pruebas de Seguridad para Desarrolladores en Cada Compilación
WorkshopFree
Oliver Moradov
Bar Hofesh
2 authors
Como desarrollador, necesitas entregar rápido y simplemente no tienes tiempo para pensar constantemente en seguridad. Aún así, si algo sale mal, es tu trabajo arreglarlo, pero las pruebas de seguridad bloquean tu automatización, crean cuellos de botella y solo retrasan las versiones... pero no tiene por qué ser así...

El escáner de seguridad de NeuraLegion, enfocado en los desarrolladores, Dynamic Application Security Testing (DAST), permite a los desarrolladores detectar, priorizar y remediar problemas de seguridad de manera TEMPRANA, en cada confirmación, sin falsos positivos/alertas, sin ralentizarte.

¡Únete a esta masterclass para aprender diferentes formas en que los desarrolladores pueden acceder a Nexploit y comenzar a escanear sin salir de la terminal!

Recorreremos la configuración de principio a fin, mientras configuramos un pipeline, ejecutamos pruebas de seguridad y analizamos los resultados.

Tabla de contenidos:
- Qué es realmente DAST (Dynamic Application Security Testing) enfocado en los desarrolladores y cómo funciona
- Ver dónde y cómo encaja un DAST moderno y preciso en el CI/CD
- Integrar el escáner Nexploit de NeuraLegion con GitHub Actions
- Comprender cómo se pueden probar las aplicaciones modernas, las API y los mecanismos de autenticación
- Hacer un fork de un repositorio, configurar un pipeline, ejecutar pruebas de seguridad y analizar los resultados
Automatización de pruebas de seguridad para desarrolladores en cada compilación
GraphQL Galaxy 2021GraphQL Galaxy 2021
82 min
Automatización de pruebas de seguridad para desarrolladores en cada compilación
WorkshopFree
Oliver Moradov
Bar Hofesh
2 authors
Como desarrollador, necesitas entregar rápido y simplemente no tienes tiempo para pensar constantemente en seguridad. Aún así, si algo sale mal, es tu trabajo arreglarlo, pero las pruebas de seguridad bloquean tu automatización, crean cuellos de botella y solo retrasan las versiones, especialmente con graphQL... pero no tiene por qué ser así...

El escáner de seguridad de NeuraLegion, enfocado en los desarrolladores, permite detectar, priorizar y remediar problemas de seguridad de manera temprana, en cada confirmación, sin falsos positivos o alertas, sin ralentizarte.

Únete a esta masterclass para aprender diferentes formas en las que los desarrolladores pueden acceder al escáner de seguridad de NeuraLegion y comenzar a escanear sin salir de la terminal!

Recorreremos la configuración de principio a fin, mientras configuramos un pipeline para un objetivo GraphQL vulnerable, ejecutamos pruebas de seguridad y analizamos los resultados.

Tabla de contenidos:
- Qué es realmente el escáner de seguridad de NeuraLegion enfocado en los desarrolladores (Dynamic Application Security Testing) y cómo funciona
- Ver dónde y cómo encaja un escáner moderno y preciso enfocado en los desarrolladores en el CI/CD
- Integrar el escáner de NeuraLegion con GitHub Actions
- Comprender cómo se pueden probar las aplicaciones modernas, GraphQL y otras API y mecanismos de autenticación
- Hacer un fork de un repositorio, configurar un pipeline, ejecutar pruebas de seguridad y analizar los resultados