¿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.
Fixtures en Playwright - Pequeña Guía
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
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
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
Workshops on related topic
NeuraLegion's developer-first Dynamic Application Security Testing (DAST) scanner enables developers to detect, prioritise and remediate security issues EARLY, on every commit, with NO false positives/alerts, without slowing you down.
Join this workshop to learn different ways developers can access Nexploit & start scanning without leaving the terminal!
We will be going through the set up end-to-end, whilst setting up a pipeline, running security tests and looking at the results.
Table of contents:
- What developer-first DAST (Dynamic Application Security Testing) actually is and how it works
- See where and how a modern, accurate dev-first DAST fits in the CI/CD
- Integrate NeuraLegion's Nexploit scanner with GitHub Actions
- Understand how modern applications, APIs and authentication mechanisms can be tested
- Fork a repo, set up a pipeline, run security tests and look at the results
NeuraLegion's developer-first Dynamic Application Security Testing (DAST) scanner enables developers to detect, prioritise and remediate security issues EARLY, on every commit, with NO false positives / alerts, without slowing you down.
Join this workshop to learn different ways developers can access NeuraLegion's DAST scanner & start scanning without leaving the terminal!
We will be going through the set up end-to-end, whilst setting up a pipeline for a vulnerable GraphQL target, running security tests and looking at the results.
Table of contents:
- What developer-first DAST (Dynamic Application Security Testing) actually is and how it works
- See where and how a modern, accurate dev-first DAST fits in the CI/CD
- Integrate NeuraLegion's scanner with GitHub Actions
- Understand how modern applications, GraphQL and other APIs and authentication mechanisms can be tested
- Fork a repo, set up a pipeline, run security tests and look at the results