Cypress: pruebas automatizadas de principiante a Pro + Framework | Vasile Vasluian | Skillshare
Buscar

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Cypress: pruebas automatizadas de principiante a Pro + Framework

teacher avatar Vasile Vasluian

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      1. Introducción.

      1:27

    • 2.

      2. Instalación de código de Visual Studio y Node.js

      3:45

    • 3.

      3. Configuración del proyecto desde cero.

      5:01

    • 4.

      4. Fundamentos de JavaScript para este curso.

      8:28

    • 5.

      5. Tipos de selectores de CSS y cómo encontrar selectores en el DOM.

      9:10

    • 6.

      6. La primera prueba en Cypress.

      4:32

    • 7.

      7. Interacción con elementos web en Cypress: acciones esenciales.

      12:51

    • 8.

      8. Cómo extraer texto de un elemento web.

      3:57

    • 9.

      9. Assertions en Cypress.

      4:57

    • 10.

      10. Cómo agregar capturas de pantalla y grabaciones de video a las pruebas.

      6:04

    • 11.

      11. Ejercicio práctico 1.

      8:58

    • 12.

      12. Ejercicio práctico 2.

      11:35

    • 13.

      13. Ejercicio práctico 3.

      4:05

    • 14.

      14. Refactorización y consejos para ejercicios prácticos.

      4:48

    • 15.

      15. Estructura general de un framework y su configuración.

      7:47

    • 16.

      16. Implementación del modelo de objetos de página en el marco de Cypress.

      11:02

    • 17.

      17. Prueba de la página de inicio de sesión.

      10:30

    • 18.

      18. Prueba de la página de productos.

      6:21

    • 19.

      19. Creación y uso de comandos personalizados en Cypress.

      8:05

    • 20.

      20. Generación y configuración de informes en Cypress.

      6:50

    • 21.

      21. Adición y configuración de scripts personalizados en Cypress.

      6:16

    • 22.

      22. Resumen.

      2:55

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

7

Estudiantes

--

Proyecto

Acerca de esta clase

Este curso te guiará a través del dominio completo del marco de Cypress, enseñándote a aprovechar todas sus características esenciales. Cypress es una herramienta moderna basada en JavaScript que incluye todo lo que necesitas desde el principio: un Test Runner, bibliotecas de aserción, reporteros y más. ¡Esta configuración todo en uno hace que Cypress sea extremadamente rápido y eficiente! Incluso si eres nuevo en JavaScript, no hay necesidad de preocuparse. Escribir pruebas automatizadas en Cypress se siente más como seguir una secuencia de comandos directos para interactuar con el navegador, en lugar de una programación tradicional. Es principalmente un enfoque de scripting dentro de la estructura que proporciona Cypress.

Comenzaremos por configurar el entorno de prueba y familiarizarnos con los comandos y acciones centrales de Cypress. También aprenderás a identificar y trabajar con selectores para elementos web en el DOM.

Además de las mejores prácticas en pruebas automatizadas, profundizaremos en temas avanzados, como la creación de un marco de pruebas con el modelo de objetos de página, un enfoque común en proyectos del mundo real. Descubrirás cómo agregar capturas de pantalla y grabaciones de video a tus pruebas, así como cómo configurar informes para tus suites de pruebas.

Al final de este curso, ¡tendrás las habilidades, el conocimiento y la confianza para dominar Cypress!

Conoce a tu profesor(a)

Teacher Profile Image

Vasile Vasluian

Profesor(a)
Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. 1. Introducción.: Hola y bienvenidos. Este curso está diseñado para llevarte paso a paso en el mundo de Chipre, proporcionándote las habilidades y la confianza para manejar proyectos de prueba de palabras reales, ya sea que recién estés comenzando o buscando subir de nivel. Estás en el lugar correcto. Aquí hay un resumen rápido de lo que aprendes en cada sección. En la primera sección, te guiaremos a través de la instalación y configuración de todo lo que necesitas para comenzar tu viaje con Chipre. Al final de esta sección, su entorno estará listo para sumergirse en las pruebas. A continuación, configuraremos un proyecto de Cypress desde cero. En el camino, aprenderás sobre los selectores CSS, sus tipos y cómo usarlos manera efectiva habilidades esenciales para trabajar con elementos web Esta sección profundiza en la interacción con elementos web Aprenderás a realizar acciones como hacer clic, escribir y más, así como comportamientos y estados verificados para garantizar una cobertura sólida de las pruebas. En la Sección cuatro, aplicará lo que ha aprendido a través de lecciones prácticas interactivas. También exploraremos cómo capturar capturas de pantalla y videos para mejorar tus pruebas de Cypress, proporcionando información clara durante la depuración Y en la sección final, crearás un marco completo de Cypress imitando flujos de trabajo de proyectos del mundo real Implementaremos el modelo de objetos de página, integraremos una herramienta de informes personalizada y configuraremos scripts para agilizar sus pruebas. Nos vemos en las próximas lecciones. 2. 2. Instalación de código de Visual Studio y Node.js: Bienvenido a la Lección dos. En esta lección, estaremos configurando todo lo necesario para comenzar a trabajar con Chipre. Y al final de esta lección, tendrás tu entorno de desarrollo completamente configurado y listo para funcionar. Empecemos con la instalación de Nod Jazz. Entonces deberías buscar Google Nod Jz. Deberíamos abrir el primer enlace, no.org. Y aquí debemos descargar siempre la versión LTC. Una vez completada la descarga, debemos seguir las instrucciones simplemente haciendo clic en Bien. Entonces abramos este archivo y aquí continuemos, continúe. Acordar instalar. Están pidiendo la contraseña. Sí. Por lo que la instalación se completó con éxito. Podemos cerrar, y preguntan si quiero trasladar eso a Ben. El siguiente es el código de Visual Studio o el código VS. Entonces probemos el código de búsqueda de Visual Studio. Aquí debemos ir o el primer enlace en code.visualstudood.com Y aquí porque estoy trabajando en una máquina Mac, voy a ver descarga para Mac. Si trabajarás desde una máquina con Windows, deberías ver Dolod para Windows Y si estás usando una máquina linux, no estoy seguro de ello. Vamos a hacer clic en Descargar. Una vez completada la descarga, podremos abrir ese archivo. La misma situación será en la máquina Windows. Lo trasladaré a las aplicaciones. Una vez que terminemos con el proceso de instalación, podremos abrir la aplicación de código de Visual Studio. De la lista de todas las aplicaciones, debemos dar clic en Visual Studio Code. Y aquí deberías ver una página de bienvenida si no es la primera vez que instalas el código de Visual Studio en tu máquina. Por último, hablemos de NTM o no gestor de paquetes que viene incluido con los nodejs que ya instalamos y es una puerta esencial para gestionar los paquetes y la biblioteca para Usaremos NTM para instalar Cypress y otras herramientas a lo largo de este curso Ahora verifiquemos la versión de nuestro paquete NPM. En primer lugar, deberíamos abrir una terminal. Podemos usar el terminal de código VS desde el terminal de menú, haciendo clic en Nuevo terminal o podemos abrir nuestro terminal de máquina. Entonces en el terminal, deberíamos escribir NPM menos V. Y aquí, dependiendo de tu versión, deberías ver la versión que instalas Si recibe un error eso significa que algo salió mal al instalar el paquete Nod Jz Entonces eso es todo para configurar nuestro entorno de desarrollo. Detallaremos No Jazz, configuraremos el código de Visual Studio y tocaremos brevemente a MBM que viene liado con el non En la siguiente lección, nos sumergiremos en instalar Chipre y poner en marcha nuestro primer proyecto . Nos vemos ahí. 3. 3. Configuración del proyecto desde cero.: Bienvenido de nuevo. En esta lección, vamos a crear nuestro primer proyecto Cypress Y al final de esta lección, tendrás un proyecto Cypress completamente funcional configurado y listo para escribir tu primera prueba automatizada Ya creé una carpeta y voy a abrir esa carpeta en mi aplicación de código visual studio para eso desde el archivo menu, que es carpeta abierta. Y aquí tengo mi proyecto Cypress y doy clic en Abrir. Me preguntan si es un Trust Outer, porque soy yo. El siguiente paso será abrir la terminal desde la terminal Menú, hacer clic en Nueva terminal. Ahora inicializaremos un nuevo proyecto No escribiendo NPM en él. PM te hará algunas preguntas sobre tu proyecto como nombre versión, puedes presionar Enter y dejar que todo esté predeterminado. Y después de eso, PM creará un paquete justo en archivo, que administrará la dependencia de tu proyecto. Así nombre del paquete Yenerersion Yenter Discreción Yenter Todo por defecto, Sí. Aquí podemos observar que tenemos nuestro paquete hijo justo. Aquí gestionaremos nuestras dependencias. Ahora es el momento de instalar Cypress. Para eso, volvamos a nuestra terminal. Y aquí debemos escribir el comando. NPM instala Cypress, dash, dash, save dash d. Este comando le dice al Ambien que descargue e instale Chipre como dependencia de desarrollo para Y una vez concluida la instalación , Chipre se agregará a nuestros proyectos, no a los módulos aquí. Y también dentro del paquete el hijo debemos observar la nueva dependencia Cypress Esperemos a la instalación. La instalación es completa y aquí en profundidad dependencia, podemos observar el Cypress y la versión de Chipre Y también en módulos de nodo, aquí deberíamos tener en algún lugar Chipre. Sí, lo tenemos. Sí, pero no te preocupes por esta carpeta. No vamos a trabajar con eso. Ahora que Cypress está instalado, vamos a configurar la estructura del proyecto Cypress Para ello, deberíamos abrir por primera vez la solicitud de Chipre. Para eso, de vuelta a la terminal y MP Cypress abren. Haga clic en Entrar. Este comando abre el corredor de prueba Cypress Y si, aquí se nos pide elegir entre extremo a extremo y componentes. Vamos con extremo a extremo, continuar, y estamos eligiendo Chrome. Si no tienes Chrome, por favor estudia. Y aquí nos preguntan si queremos tener los ejemplos básicos de Cypress, elegiremos tener ejemplos Bien, lo tengo. Volvamos al código de Visual Studio. Y como podemos ver después de abrir el Ciprés, un pliegue su nombre Cypress se agregó automáticamente aquí con descargas extremo a extremo, aquí guardaremos nuestras pruebas, accesorio para datos de prueba y soporte también para datos de configuración y prueba. Vamos a hacer clic en una de estas pruebas y verificar si las pruebas se están ejecutando y si instalamos todo correctamente. Escojamos uno. Digamos recorrido. ¿Importa? Y como puedes ver, Cypress es increíblemente intuitivo, mostrando exactamente lo que está sucediendo para cada paso en la prueba Esto facilita mucho el bugging y el desarrollo web Aquí, si abrimos una prueba, podemos ver qué pasó en cada paso. Muy potente, muy intuitivo. Ahora tiene un entorno de pruebas completamente funcional completo con Cypress instalado y listo para funcionar En las próximas lecciones, vamos a div pañal para escribir tus primeros pasos y explorar los diferentes comandos que usarás para interactuar con tu aplicación web. Nos vemos en la siguiente lección. 4. 4. Fundamentos de JavaScript para este curso.: Bienvenida de nuevo. En esta lección, cubriremos los conceptos esenciales de Javascript que necesitarás entender para poder escribir una prueba efectiva de Cypress Incluso si eres nuevo en la programación, no te preocupes, comenzaremos con lo básico y lo construiremos a partir de ahí. Para esa lección, necesitamos instalar la extensión de código de Visual Studio. Entonces para eso, deberíamos ir a la pestaña de extensión y escribir aquí corredor de código. Y necesitamos instalar esa extensión Ejecutar instalar. Esta extensión nos ayudará a ejecutar código JavaScript dentro del archivo. Empecemos con la sintaxis básica de JavaScript. Aquí hay un ejemplo sencillo de registro de consola. Esta línea de código da salida hello word. Vamos a tratar de ejecutar esto. Entonces después de instalar nuestro código ejecutando la extensión, deberíamos tener aquí alrededor del botón de código, y si lo presionamos, veremos aquí la salida de nuestro código. Por lo general, usamos Consolod para los bugging. A continuación, vamos a discutir sobre qué es una variable y para qué se utilizan. Básicamente, tenemos tres tipos de variables. El primero se declara con var, segundo ED y el último con const Por lo general, usaremos solo lead y const y luego explicaré cada uno de ellos. La primera, declarada con var es una variable disponible globalmente. El segundo declarado con let está disponible solo dentro del bloque de código. Es alcance de bloque. Y el último declarado con costo también está disponible en el ámbito de bloque, pero esa variable no se puede cambiar. Entonces es un bloque de código, un alcance de bloque. Es algo que se declara dentro de los frenillos Carly. Lo discutiremos más adelante. Entonces, como dijimos, una variable var tiene alcance global. Entonces aquí declaramos dentro de nuestro alcance. Aquí tenemos nuestras llaves Carly, el nombre var Ellie Y ahora queremos hacer una consola para eso para ese nav. Pero después de eso fuera de ese bloque de código, también estamos tratando de hacer consola. Entonces deberíamos ver en la consola a As porque la VR es de alcance global. Vamos a ejecutarlo. Sí, aquí tenemos el resultado Allie y Allie Ahora hablemos de let variables. Solo son de alcance de bloque, lo que significa que solo estarán disponibles dentro de estos tirantes Carl Entonces aquí declaramos nuestra variable de edad, que es 25, e hicimos aquí registro de consola. Y también estamos tratando de hacer un registro de consola fuera de ese bloque de código. Entonces en la salida, deberíamos ver los primeros 125, y después de eso, deberíamos ver error de referencia porque la edad no está definida. Vamos a tratar de ejecutar eso. Entonces como dije, aquí tenemos los primeros 25 y después de eso, tenemos aquí una referencia. La edad no está definida porque la edad aquí solo está disponible dentro de ese bloque de código. Y finalmente, tenemos nuestra variable de costo, que también tiene un alcance de bloque como let, pero su valor no puede ser reasignado Entonces vamos a tratar de entender. Aquí, declaramos que un costo variable es estudiante con el valor de true porque es un estudiante. Y después de eso, intentamos hacer un registro de consola aquí y tendremos la salida. Déjame comandar esa línea. Deberíamos tener la salida de la verdad. Y si poco común esa línea e intentaré sacar la variable estudiada fuera de ese bloque, debería recibir aquí una referencia. Vamos a tratar de ejecutar esto. Aquí podemos observar que tenemos el primer registro de consola con salida de true. Y después de eso, recibimos un error de refino porque se estudia, no se define fuera de ese alcance de bloque Y tratemos de reasignar un valor a una variable const. Déjame comandar esa línea. Aquí, intentaremos poner a un alumno a caídas, pero ya lo declaramos como cierto. Eso es claro el resultado y tratar de. Entonces aquí recibimos la asignación de error a una variable constante que es imposible, y tenemos la línea de código. No podemos asignar false a un estudiante que ya fue asignado a true. Las funciones son otro concepto fundamental en JavaScript. Una función es un bloque de código diseñado para realizar una tarea específica, y se puede usar en todo su código. Aquí hemos definido una función llamada grit que toma un nombre como parámetro y devuelve un mensaje de saludo Luego llamamos a esta función y almacenamos el valor en un mensaje de variable lit. Después de eso, estamos imprimiendo ese mensaje a la consola. Tratemos de entender qué se va a imprimir aquí. Entonces tenemos el nombre hello plus y estamos recibiendo como parámetro llamado Alice. Entonces en la salida, deberíamos haber impreso Hola Alice y exclamación. Entonces vamos a tratar de ejecutar eso. Como podemos ver, tenemos aquí Hola Alice. Si vamos a poner aquí otro nombre, nombre segundo, tendremos hola nombre segundo. Los objetos son una forma de agrupar datos relacionados y funcionar juntos. En Javascript, un objeto es una colección de propiedades y cada propiedad es un valor clave por. Aquí, declaramos una persona objeto y dentro de un bloque de llaves de tarjeta de código Decidimos tener valor clave pers como N que es John H, que es 25. Y también para objeto, podemos declarar un método, una función, una acción. Y nuestra persona puede grillar, y dentro de la grilla, tenemos una función que va a decir hola y este nombre. Esta palabra clave significa que usaremos el nombre asignado dentro ese objeto dentro de ese bloque de código. Así que vamos a tratar de contras registrar ese objeto. Aquí podemos ver que tenemos un objeto con todos estos valores clave por nombre, edad y cuadrícula como función. Además, podemos asignar una propiedad específica de ese objeto. Aquí, estamos tratando de asignar a cons log el nombre de la persona. Intentemos correr eso y podemos ver aquí a John. También, podemos llamar a una función dentro de un objeto. Aquí estamos tratando de llamar a la función de cuadrícula desde nuestro objeto persona. Entonces como puedes ver, la primera fila del registro de la consola es nuestro objeto después de eso es el nombre de la propiedad, y al final, tenemos nuestra función, que es hello jour Aquí podemos concluir nuestra lección donde discutimos sobre qué es una variable, qué es un objeto y qué es una función. Nos vemos en la siguiente lección. 5. 5. Tipos de selectores de CSS y cómo encontrar selectores en el DOM.: Hola. En esta lección, nos sumergimos en el selector CSS, una herramienta clave que usarás para identificar e interactuar con los elementos de la página, y al final de la lección, los usarás con confianza. Primero, hablemos de qué son los selectores CSS. Los selectores CSS son alfareros que se utilizan para seleccionar y dar estilo a elementos en una página web En el contexto de Chipre, utilizamos estos selectores para apuntar elementos para nuestras pruebas Por ejemplo, si quieres hacer clic en un botón, ingresar texto en un campo de entrada o verificar el contenido de un encabezado, necesitarás usar el selector CSS para apuntar a ese elemento específico. Ahora vamos a discutir sobre los selectores CSS más populares y sobre la fórmula general, cómo encontrar un selector CSS fórmula general para el selector CSS se compone de etiqueta, que puede ser input, button, Div select, y así sucesivamente, el atributo, que puede ser una clase, un texto, un nombre, ID, y el nombre del atributo, que puede ser todo. Discutamos sobre cómo encontrar selectores CSS por clase. Aquí tenemos un ejemplo de un DIV, que tiene una clase con el nombre de la clase name. Si queremos encontrar este elemento, este DIV, podemos usar punto y clase N. La cosa con punto funcionará solo para clase o sss seleccionados por clase O podemos usar la fórmula general, que es tag Name, en nuestro caso, es D aquí, el atributo en nuestro caso, el atributo es class, y el nombre del atributo en nuestro caso es class name. El siguiente son los selectores CSS por ID. Aquí tenemos un botón con el ID, MID, y un envío de texto. Para encontrar un selector CSS por AD, podemos usar esa fórmula. Podemos usar has y el nombre del DNI. Y en nuestro caso es has y MAD. La cosa con has solo se puede usar para el selector de ID. En cuanto a los selectores CSS, para el selector CSS de clase, podemos usar eso Pero para el selector de ID, podemos usar has, y también podemos usar la fórmula general para encontrar un selector CSS. Aquí, podemos usar el nombre de la etiqueta que es botón. A continuación, usamos atributo, que es ID en nuestro caso, ID de botón y el nombre de atributo, que es mi ID. Y así es como estamos luchando contra un selector CSS. El siguiente es luchar contra los selectores CSS por atributo. En ese ejemplo, tenemos una entrada con tipo text y name user name. Estamos usando fórmula general, nombre de etiqueta. I etiqueta entrada, atributo es nombre, y nombre de atributo es nombre de usuario. Aquí está la etiqueta, aquí está el atributo y el nombre del atributo. Y el último que puedo decir el menos popular es CSS selector por etiquetas, donde podemos encontrar como por párrafo, en nuestro caso, tenemos un párrafo, y podemos encontrar apenas todos los párrafos en la página donde podemos encontrar todos los botones y todas las entradas. Una cosa más aquí también. Cuando usamos esta fórmula general, podemos usar eso sin la etiqueta, pero es más seguro usarlo con etiqueta. Practicemos un poco sobre cómo encontrar ese elemento. Para ese ejercicio, vamos a utilizar la documentación de Cypress es ejemplo Cypress Y si quieres ver la estructura interna de esta página, debes hacer clic derecho e inspeccionar. Ahora, deberías ir a la pestaña del elemento. Si desea encontrar la ubicación exacta de un elemento web, puede hacer clic en este botón de selección y después de eso, puede hacer clic en el elemento en la página. Y tu ubicación será resaltada. Así que vamos a tratar de encontrar un selector CSS por clase. Si quieres comenzar a buscar los elementos en la página, debes hacer clic en Control más C. Control más F. Ahora aparecerá aquí una barra de búsqueda. Así que intentemos encontrar el selector CSS por clase para esa entrada de correo electrónico. Primero, vamos a dar click en ese botón Seleccionar después de ese clic en nuestro elemento, y aquí podemos observar que tenemos una clase dos clases. Entonces vamos a copiarlos. Y vamos a pegar aquí. En nuestro caso, tenemos dos clases. Tratemos de encontrar el primero usando el método dot. Cuando ponemos el método dot, podemos observar que tenemos diez elementos con la misma clase. Entonces eso significa que deberíamos usar también el segundo. Vamos a copiar y cuando tengas dos clases, puedes concatenerlas usando punto Entonces ahora mismo, tenemos nuestros elementos uno o uno, lo que significa que el elemento es único y ese selector CSS es bueno para usar para nuestras pruebas. Tratemos de encontrar también el mismo elemento usando el segundo método o encontrando unos selectores CSS, la fórmula general Entonces en nuestro caso, la fórmula general será el atributo, la etiqueta, que es entrada, corchetes, y aquí debemos escribir el tipo de atributo, que es clase igual y el atributo en nuestro caso, son eso. Entonces uno o uno, lo que significa que el elemento es único y podemos usarlo en nuestras pruebas. Continuemos encontrando un selector CSS por ID. Quiero encontrar la ubicación para esa entrada de contraseña. Entonces vamos a encontrar esa ubicación ese atributo. Aquí podemos observar que tenemos una entrada con el ID contraseña uno. Entonces en la barra de búsqueda, podemos poner has y en el nombre de identificación, que es contraseña uno. Podemos observar que es uno de uno, que significa que es un atributo único y puede ser utilizado en nuestra prueba. Además, intentemos encontrar el segundo método usando la fórmula general. Es la entrada, ID, palabra de paso igual uno, uno de uno, selector CSS único. Y también, intentemos eliminar el nombre de la etiqueta, que es la entrada, y también podemos observar el elemento también es único y se puede usar sin el nombre de la etiqueta. A continuación, intentemos encontrar por diferentes atributos, que no es un ID o una clase. Busquemos el selector para ese botón de envío. Voy a dar click en el botón de buscar en ese elemento. Podemos observar que es un botón con tipos enviar y una clase. Busquemos por tipo. Entonces control C, tenemos nuestra barra de sobretensión y la fórmula general sin tipo de etiqueta igual, y el nombre fue presentar. A partir de aquí, tipo y nombre, enviar. Y tenemos uno de uno, lo que significa selector único único, que se puede utilizar en nuestras pruebas. Eso es todo para la lección de hoy donde aprendemos a usar, cómo escribir, como dije, selector y cómo encontrar el elemento b en la página. Estas habilidades son esenciales para escribir pruebas efectivas de Cypress Vamos a usar estas habilidades en la siguiente lección, véala ahí. 6. 6. La primera prueba en Cypress.: Hola. En esta lección, escribiremos y ejecutaremos una simple prueba de Cypress Primero, vamos a crear una nueva carpeta dentro la carpeta Anton donde guardaremos nuestras pruebas. Entonces nueva carpeta, vamos a nombrarla. Primero. Ejemplos, y debemos crear un archivo con la extensión, si punto Gs. Esa es la extensión del Ciprés. ¿Nuevo archivo? Primero, Prueba si punto js. Aquí, se trata de una simple prueba de Cypress que visita un sitio web y verifica si el título de esa prueba tiene un texto específico Entonces voy a usar el ejemplo punto Cypress dot AO, y voy a comprobar si el título de ese sitio web es Cypress do to kitchen sink Además, he agregado un comentario en la primera línea que ayudará a nuestro editor de código a entender que estamos usando Cypress y nos dará auto complation para nuestros comandos Rompamos la estructura de ese archivo. Utilizamos describir en worder para agrupar pruebas relacionadas juntas. Piensa en ello como una carpeta en tu máquina donde estás separando tus fotos de tu cumpleaños a tus fotos de tu graduación, digamos. Así, podemos separar nuestras pruebas de inicio de sesión de nuestra prueba de inicio de sesión en el mismo archivo. Dentro del bloque describe, tenemos la función de TI, y cada función de TI representará una prueba de Cypress separada Se pueden añadir más de ellos, y esa será otra prueba que comprobará algo diferente. Permítanme eliminarlo por ahora Chipre tiene muchas funciones predeterminadas, y para poder acceder a ellas, debemos vincular esa función al objeto global si. Por ejemplo, el método visita, vinculamos ese método al objeto siglob, y ese método visitamos ese Ese es el sitio web de Chipre. El método title también se vincula al CI al objeto si Y ese método obtiene el título de la página. La parte igual de disparar es una aseveración. Y aquí verificamos si el título es correcto. Ahora es el momento de ejecutar nuestra prueba. Entonces abramos una terminal desde la terminal nueva terminal, y aquí deberíamos abrir Chipre. Para eso, deberíamos escribir Bs, Chipre abrió. Sí, y para terminar, empieza a probar y aquí está nuestra primera prueba. Hagamos clic en él y esperemos la ejecución. Podemos observar aquí toda la acción. El primero es visita, luego extraemos el título, y al final, estamos verificando si nuestro esperado es igual al valor real. Si nuestra afirmación fallara, recibiremos un error con la información Intentemos agregar algo diferente aquí. Pongamos el número dos. Y aquí estamos observando que estamos esperando cierta cantidad de tiempo, y después de eso, recibimos que esperabas tener Cypress yo fregadero de cocina para igualar fregadero de cocina Cypress Ayo a Eso es todo para la lección de hoy. Acabamos de escribir y ejecutar nuestra primera prueba de Cypress. Enhorabuena y nos vemos en las próximas clases. 7. 7. Interacción con elementos web en Cypress: acciones esenciales.: Bienvenida de nuevo. Hoy, comenzaremos a aprender uno de los aspectos más importantes de las pruebas con Chipre, que es interactuar con los elementos. Hoy, aprenderás a encontrar elementos en una página y a realizar acciones como hacer clic, escribir y seleccionar. Empecemos. Aquí, tenemos un campo de entrada, y queremos escribir algún texto. Entonces comencemos. Intentemos encontrar el selector CSS para ese elemento. Podemos intentar encontrar por ID, así controlar F y tiene hash y correo electrónico uno. Uno de diversión. Bien. Entonces ahora que encontramos nuestro selector, podemos intentar buscar y escribir el texto. Aquí he creado una describir, y dentro de la describir, tengo una prueba que visita nuestro sitio web y después de eso, desde el CI de objeto global, estamos usando G común dentro del método get, estamos dando el selector CSS de nuestro elemento. Y después de eso después de que encontramos nuestro elemento, estamos escribiendo un texto dentro de ese elemento. Entonces abramos el Cypress e intentemos ejecutar caso de prueba. Y Big Cypress, abierto. Déjame guardarlo. Sí. Entonces es interactuar con los elementos. La primera acción es visitar el sitio web. El segundo es el uso del método común G. Estamos luchando contra nuestro elemento. Podemos ver que se destaca. Y después de eso, con la ayuda de tipo común, estamos escribiendo nuestro texto. A veces es más fácil encontrar un elemento basado en el texto que contiene en lugar de sus selectores CSS Ahí es donde entra el comando Contiene. Entonces aquí tenemos un botón con el texto, da clic a Toggle Popover Y cuando hacemos clic en él, se muestra un Popover, que contiene cierto texto Entonces quiero ir a visitar esa página. Después de eso encuentra ese botón por texto, y después de hacer clic en él, quiero afirmar para verificar que se muestre ese pop over con este texto Así que vamos al código de Visual Studio. Aquí, tengo una función de TI, que es un caso de prueba. Y dentro del caso de prueba, primero, estamos visitando nuestra página. Entonces con la ayuda del comando, el comando contiene, estamos encontrando el botón por texto, y después de eso, estamos dando click sobre él. Después de haber hecho clic en ese botón, estamos tratando de buscar el pop over por texto, y estamos afirmando, estamos verificando que este popover Así que déjame guardar eso, y vamos a ir al Ciprés Aquí observamos que ejecutamos esto. Después de eso, con el comando Ctys, encontramos nuestro botón Después de eso, hicimos clic en él, y después de hacer clic, se mostró el popover El siguiente paso es encontrar el popover por texto. Y el último es verificar que se muestre nuestro popover Para estructuras de página más complejas, donde necesitas encontrar elementos dentro de otros elementos, puedes usar find command. Esto es particularmente útil cuando se trata de elementos anidados Entonces aquí tengo seis botones, y quiero dar click en el último. Cuando hago clic en el botón, se muestra un Pop up con texto clicado Entonces déjame abrir los elementos e intentar encontrar el localizador para ese elemento. Entonces aquí podemos observar que todos estos elementos están dentro de esa Div. Lo que voy a hacer, voy a encontrar el div con método get, y después de eso, voy a buscar solo dentro del div el último elemento. Así que vamos al código de Visual Studio. Entonces aquí tengo otro caso de prueba. Estamos visitando el sitio web. Después de eso, busco, me sale el div que tiene etiquetas reales. Clase de etiquetas de acción. Y después de eso, estoy buscando dentro del DIV, todos los spuns aquí tenemos como seis spas Y después de eso, le estoy diciendo al Chipre que solo quiero obtener el último hilado y estoy pinchando en él. Después de haber hecho clic en ese elemento, estoy encontrando el pop up y validando que mi pop up contiene tener texto Así que vamos. Vamos a ejecutar esta prueba. Déjame guardar y aquí podemos observar que visitamos la página. Después de eso, encontramos que Dev, podemos observar que todos los elementos están resaltados. Después de eso, encontramos balnearios, todos los spas. Aquí tenemos 66 spas. Y con la ayuda del último comando, resaltamos solo el último y solo hicimos clic en el último Y después de eso, comprobamos que nuestro pop up contiene texto clicked Además, si queremos dar click en el primer elemento, podemos usar el primer comando. Entonces vamos a ver. Entonces aquí, sólo se resalta la primera . Además, digamos que queremos dar click en digamos el segundo, podemos usar comando igual y dentro del igual, deberíamos dar el índice. Pero nuestro comando igual está basado en cero, índice cero y el conteo comienza desde cero. 01, y el uno será el segundo elemento. Entonces, vamos a ahorrar. Y aquí cuando igual uno será el segundo elemento. Otro tema importante es trabajar con botones de radio y casillas de verificación. Entonces aquí tenemos algunas casillas de verificación y algunos botones de radio. Quiero hacer clic para marcar el botón de opción y marcar y marcar esta casilla de verificación Entonces intentemos encontrar el selector para la casilla de verificación. Aquí podemos tratar de encontrar por valor. Controlemos F y valoremos. Tenemos cuatro elementos. Podemos usar el primero común para eso. Y para nuestro botón de radio, intentemos encontrar aquí tenemos AD, y creo que AD es único, uno de uno. Entonces vamos al código de Visual Studio. Aquí tenemos una prueba donde visitamos primero. Después de eso, estamos encontrando nuestro botón de radio por ID, que es único y después de eso, con la ayuda del método check, estamos revisando ese botón de radio. A continuación, vamos a encontrar la primera casilla de verificación y la vamos a marcar. Después de eso, queremos desmarcarlo. Entonces abramos el Cypress y Big Cypress Papen. Y selecciona nuestra prueba. Entonces primero, visitamos el sitio web. A continuación, encontramos que nuestro botón está resaltado aquí. Entonces lo comprobamos. Y ahora podemos observar que nuestro botón de radio está marcado. El siguiente es encontrar nuestras casillas de verificación. Aquí tenemos tres, y dijimos que queremos comprobar sólo el primero, que aquí se resalta. Después de eso, hicimos la comprobación y aquí podemos observar que se comprueba el primero. Y la siguiente acción fue desmarcarlo. Entonces aquí podemos observar que está desmarcado. La última acción para hoy es seleccionar la opción de un menú desplegable selecto Entonces primero, intentemos encontrar ese menú desplegable, ese argumento selecto. Aquí podemos observar que tenemos un selecto y dentro de él, tenemos todas estas opciones. Entonces queremos encontrar el select, y después de eso, vamos a seleccionar elementos con la ayuda del select común usando el nombre de la opción. Así que vamos a tratar de encontrar por clase. Voy a usar solo primero, el segundo. Acción. Digamos que es un selecto. Sí, aquí tenemos uno de uno. Y después de eso, la opción será seleccionada por el Oh, vamos al código de Visual Studio. Aquí tengo mi caso de prueba con el selecto. Visitamos el sitio web y después de eso, encontramos nuestro seleccionar el elemento, y después de eso, con la ayuda de la selección común, estamos dando qué opción queremos seleccionar. Así que vamos a guardar y verificar el resultado. Entonces aquí encontramos la entrada select, y con la ayuda del método select, seleccionamos la opción deseada. Así que ahora vamos a tratar de ejecutar todos ellos, y vemos que tenemos prueba para G y tipo contiene y da clic en Buscar y dar clic, verificar y verificar y seleccionar. Todos estos casos de prueba tienen algo en común, que es el primer paso, visite el sitio web. En ese caso, podemos extraer ese paso de visita fuera de nuestra prueba y podemos ponerlo dentro antes de cada bloque de código. Así que intentemos antes. Antes de cada uno. Esa es la sintaxis. Entonces aquí dentro antes de cada uno, estamos agregando algo que se ejecutará antes de que cada función funcione antes de cada caso de prueba. Entonces déjame borrarlo de todos los casos de prueba. Y ahora antes de cada prueba, deberíamos visitar el sitio web. Así que vamos a guardar y verificar los resultados. Por lo que aquí podemos observar que antes de primer paso primera prueba, visitamos el sitio web. Lo mismo es con el segundo y con todos ellos. Entonces eso fue para la lección de hoy. Espero que hayas disfrutado. Nos vemos en las próximas lecciones. 8. 8. Cómo extraer texto de un elemento web.: Hola, en esta lección, discutiremos sobre un escenario de prueba muy común, que es extraer texto de un elemento web. En un entorno de pruebas de la vida real, estarás revisando el texto muy a menudo. Vamos al editor de código. Entonces aquí, ya creé una nueva carpeta y un nuevo archivo extraer texto del elemento web, y he agregado una prueba. Entonces en nuestra prueba, quiero navegar al sitio web de sourcedmo.com y verificar el logo desde el texto, desde el logo Entonces primero, copiemos nuestra URL. Vamos al código de Visual Studio y ci dot Visita y nuestro enlace. El siguiente, deberíamos encontrar el logo, el selector CSS logo. Entonces al hacer clic derecho en Inspeccionar, podemos encontrar que nuestro logo tiene una clase. Entonces intentemos controlar F, e intentemos encontrar por punto de clase y nombre de clase de clase. Entonces CI obtiene el nombre de la clase. Y el siguiente paso, deberíamos usar la cláusula DN, y dentro, entonces deberíamos almacenar nuestro objeto. Podemos darle un nombre. Vamos a darle logo. Objeto Logo. Así que ahora podemos extraer el texto de este objeto logo. Voy a crear un cons y lo llamaré logo text. De nuestro objeto, objeto logo, llamaré al método text. Este método extraerá el texto y lo dirá en nuestra constante. Ahora bien, si queremos comprobar si nuestro logotipo contiene el texto esperado, podemos usar esperar aquí, deberíamos dar texto de logotipo, y nuestro texto de logotipo debe ser igual a, veamos, oleaje b. Bien. Et salvemos, y abramos Chipre y Big Cypress abiertos. Para Cron extraer texto y nuestro archivo. Estamos navegando y después de eso, estamos extrayendo el texto de este logo y afirmando. Otra forma de hacer la misma aserción también puede ser obtener nuestro elemento y usar debería tener el texto Sword labs Entonces vamos a observar. Navegamos después de eso, hicimos la primera afirmación y la segunda Es así como podemos extraer simplemente el texto de un elemento b y validar que nuestro texto es el correcto. Nos vemos en Np pleasans. 9. 9. Assertions en Cypress.: Hola. En la lección de hoy, vamos a hablar de lo que son las aseveraciones de Chipre En cuanto a la documentación de Chipre, que está muy bien descrita y bastante detallada, sin duda le recomiendo que lea esta afirmación documentaria describir el estado deseado de un elemento Chipre tiene muchas aseveraciones implícitas. Muchos comandos tienen por defecto construido en la aserción. Por ejemplo, el comando visit esperará a que se cargue la página o el comando get esperará que el elemento exista en la fatalidad Tratemos de entender cómo funciona el método CI get a partir de nuestro ejemplo. Aquí estamos visitando el sitio web de demostración de origen, y estamos tratando de encontrar un elemento por ID que no existe. Entonces intentemos encontrar este ID, ID no existente en la página principal y cero de cero. Por lo que el ciprés volverá a intentar automáticamente y esperar a que el tiempo de espera predeterminado sea de 4 segundos. Y después de eso, fallamos. Entonces intentemos abrir y correr. Ahorremos una vez más, guardemos y ejecutemos nuestra prueba. Entonces aquí, ejecutamos la visita de primera línea, y después de eso, nuestro método G, hagamos una vez más. Nuestro método get está esperando y re intentando hasta que encuentre ese elemento donde recibirá un tiempo de espera aquí Entonces el tiempo de espera predeterminado es de 4 segundos, pero dentro de nuestro método get, podemos proporcionar nuestro tiempo de espera en Entonces, si queremos esperar un elemento durante 10 segundos, podemos proporcionar 10,000 milisegundos. Entonces aquí, podemos observar que G está tardando mucho más 10 segundos. Y después de eso, falló, y aquí en el año, podemos observar que tenemos 10 segundos. Aquí tenemos una lista de todas las aseveraciones disponibles en Chipre. Y para cada aserción, tenemos ambas opciones usando comandos Cypress should o usando expect Ahora vamos al código de Visual Studio e intentemos usar la misma aserción. Pero con ambas opciones, deberíamos y esperamos, vamos a usar una aserción para verificar la clase Ese, debemos y esperamos. Así que vamos a navegar a la demo de S, y queremos verificar que nuestro botón de inicio de sesión tenga esta clase. Ya preparé el código, así que estamos navegando. Después de eso, estoy extrayendo el valor y guardando este nuestro botón por ID botón de inicio de sesión, guardando en esa variable, y después de eso, usando esperar que ese botón de inicio de sesión tenga clase y nuestro nombre de clase. Y la segunda opción al usar debería también es extraer y guardar C obtengo nuestro botón y debería tener clase y nuestro nombre de clase. Ahora vayamos a nuestro corredor e intentemos ejecutar nuestra prueba. Entonces después de visitar la página, encontramos nuestro botón y afirmamos que nuestro botón tiene botón envío de clase y acción de botón Lo mismo que hicimos al usar el comando de Chipre debería. Resumamos lo que aprendimos sobre la aserción. En Chipre, tenemos aseveración de dos tipos. Deberíamos y esperamos, pero ambos están logrando el mismo resultado. Si quieres saber más sobre la aserción de Chipre, puedes consultar la documentación chipriota sobre Es muy claro e intuitivo. Nos vemos en las próximas clases. 10. 10. Cómo agregar capturas de pantalla y grabaciones de video a las pruebas.: Hola. En la lección de hoy, vamos a aprender a hacer capturas de pantalla y videos en Chipre. La funcionalidad de captura de pantalla en Chipre es muy simple. Desde el CI global de objetos, debe llamar a la captura de pantalla del método. Eso es. El método de captura de pantalla puede tomar algunos parámetros como el nombre del archivo y las opciones de esa lista. Aquí podemos tener algunas opciones como capturar la página de otoño. Ropa de cama, tiempo de espera, y una diopción muy interesante es override, que por defecto es false Pero si lo vamos a establecer en true, si vamos a ejecutar la misma prueba varias veces, no tendremos capturas de pantalla duplicadas Intentemos agregar algunas capturas de pantalla en nuestra prueba. Después de navegar a la página, eso es desde el CI de objeto global, captura de pantalla y otra captura de pantalla después haremos clic en el botón Iniciar sesión. Captura de pantalla de CI. Entonces aquí no estamos dando ningún nombre ni opciones. Digamos que después de visitar, hicimos una captura de pantalla, y otra después de hacer clic en la página de inicio de sesión Entonces vamos al código de Visual Studio. Aquí podemos observar que una nueva carpeta, se crearon capturas de pantalla. Y dentro de esa carpeta, tenemos nuestras capturas de pantalla. No proporcionamos ningún nombre ni opciones. Y Chipre, por defecto, creó el nombre de la captura de dividiendo el nombre del traje y el nombre de la prueba. Ahora, intentemos agregar el nombre para las capturas de pantalla. Así que la pantalla de la primera página, y vamos a guardar. Entonces aquí podemos observar que agregamos dos nuevas capturas de pantalla. Ahora, eliminemos esa carpeta. Eliminar. Bien. Entonces otra característica importante de la función de la captura de pantalla es que podemos hacer una captura de pantalla de un elemento específico. En nuestro caso, intentemos hacer una captura de pantalla solo de ese elemento de ese botón. Entonces después de CIG y nuestro elemento, no podemos hacer capturas de pantalla. Vamos a darle un nombre Botón de inicio de sesión. Vamos a ejecutar nuestra prueba se están ejecutando aquí. Así que vamos a revisar nuestra carpeta de capturas de pantalla. Aquí solo tenemos la captura de pantalla para el botón de inicio de sesión. Es hora de aprender cómo podemos iniciar la grabación de video para nuestra prueba. En nuestra carpeta Cypress con nuestras pruebas, tenemos un archivo de configuración, Cypress Config dogs Para iniciar la grabación de video de nuestra prueba, debemos agregar debajo el define config dentro de define config, un nuevo parámetro video y configurarlo en true. Eso es todo lo que necesitas hacer en redora para grabar tus pruebas. Otra cosa importante grabación de video es que la grabación comienza solo cuando tus pruebas se ejecutan sin cabeza desde la línea de comandos Entonces, si voy a guardar eso y voy a ejecutar nuestras pruebas, no pasará nada. La grabación no arrancará porque cuando estamos corriendo de cabeza, podemos observar nuestra prueba corriendo. Para poder ejecutar nuestra prueba desde la línea de comandos, primero, debemos copiar el PAP a nuestra prueba Entonces voy a copiar Path relativo y dentro de la terminal, voy a escribir PX, Cypress Run, dash dash, spec, e Ibec, y pondré el PP después de hacer clic en Enter Aquí veremos registros y ejecutaremos iniciando Cypress headless está usando navegador Electron y encontró una captura de pantalla de traje y video Aquí podemos observar el nombre una captura de pantalla un video de la suite y el nombre de la prueba. Entonces los resultados son una prueba pasando 3 segundos, capturas de pantalla y video. Ahora aquí podemos observar que tenemos una nueva carpeta de video y dentro de esa carpeta, tenemos nuestro video. Para que podamos observar nuestra prueba. Resumamos nuestra lección. Para la captura de pantalla, solo agrega método de captura de pantalla de puntos CI en tu prueba. Y para el video, solo agrega nuevo parámetro video T dentro del archivo Cypress Config Eso es todo para la lección de hoy. Nos vemos en los siguientes videos. 11. 11. Ejercicio práctico 1.: Bienvenido de nuevo. En esa sección de nuestro curso, vamos a hacer un poco de práctica. ¿Cómo va a funcionar eso? Voy a presentar lo que es caso que quiero automatizar. Después de eso, pones un video en pausa e intentas automatizarlo tú mismo. Y después de terminar con la automatización, continúe con el video y compare su implementación con la mía. Empecemos con nuestro primer caso de prueba. Primero, navegaremos hasta el sitio web de demostración de origen. Después de eso, vamos a hacer el inicio de sesión usando el usuario estándar y la salsa secreta de contraseña. Al hacer clic en la página de inicio de sesión. Después de hacer el login, debemos afirmar que debemos verificar que fuimos redirigidos a la página principal de los productos Sugerir que aquí podamos comprobar que este producto de texto está presente. El siguiente paso será agregar el último producto a la tarjeta haciendo clic en ese botón. Después de eso, debemos afirmar que este botón se quitó y agregar a la tarjeta no está presente siguiente paso será navegar a la página de la tarjeta haciendo clic en este botón, y al final, debemos afirmar que la TM se agregó a la tarjeta Entonces aquí agregué todos los pasos. Ahora puedes poner el video en pausa y volver después de que termines la implementación. Entonces el primer paso será navegar. Después de eso, déjame ir a hacer el logo. Después de eso, al hacer clic derecho e inspeccionar, busquemos el selector para el nombre de usuario y para la contraseña. Entonces aquí tenemos el ID, el control F, y vamos a encontrar por ID igual y el valor ID uno de un nombre de usuario. Bien, entonces CIPTG el nombre de usuario y el tipo de método. Escribamos aquí la contraseña de usuario estándar, y busquemos también el selector para la contraseña. Aquí, vamos a tratar de encontrar vamos a escribir por nombre. Y aquí tenemos nombre. Pasa uno de uno. Entonces CI sí obtiene la contraseña, y vamos a escribir la contraseña fuente secreta. Bien, el siguiente paso sería hacer clic en el botón Iniciar sesión. Aquí vamos por tipo enviar. Tratemos de encontrar tipo y enviar uno de uno. ¿Bien? Acción. Haga clic. Bien, entonces ahora vamos a tratar de ejecutar esto y ver si todo está bien. P ciprés abierto para abrir el Chipre, extremo a extremo, rollo Y nuestra carpeta debe ser prácticas y ejercicios. Así que vamos a correr. Tenemos la visita. Tenemos el inicio de sesión. Ahora estamos en esa página. Ahora después de la tala, aceptemos que este texto está presente. Entonces aquí podemos probar por prueba de datos, que es título. Prueba de datos, y es el título uno de uno. Bien. Así que vamos a tratar de CI que obtener debe tener texto Productos. Guardemos y observemos los resultados. Entonces tenemos el producto de aserción. Bien, ahora después de iniciar sesión, déjame quitar todo. Deberíamos agregar el último. Ahora encontremos el selector para este botón. Aquí, tenemos el ID, la prueba de datos. Bien, vamos a agarrar cual es el botón y la identificación. Voy a copiar el DNI. Es una larga, tarifa de control para eso por esa entrada. Entonces ID, y también podemos decir que esto es un botón. Bien. Si juego de palabras consigue, vamos a dar click en ese botón Después de hacer clic en ese botón, debemos navegar a la página de la tarjeta. Déjame encontrar el selector para Para la tarjeta. Bien, para prueba de datos tenemos aquí. Prueba igual. Yo. Bien. Algo anda mal. Hagámoslo una vez más. Tenemos aquí ID. W por clase. Probemos por clase. Bien, uno de uno. Copia esa S consigue click. Bien. Guardemos y verifiquemos los resultados. Entonces después de agregar a la tarjeta, encontramos ese botón del carrito de compras, hicimos clic y nos redirigieron a esa página Ahora debemos afirmar que proyecto nuestro producto fue agregado a la tarjeta Bien, entonces vamos a agarrar el elemento de datos del selector. Hagamos por prueba de datos. En ningún teléfono. Bien. Me sale bien, ahora vamos a extraer el texto. Entonces aquí vamos a tener artículo del auto. Ahora guardemos nuestro texto en texto constante, costo del artículo, nombre, artículo del auto y texto del método. Bien, entonces ahora aquí tenemos el texto del ítem. Vamos a validarlo usando expect item name, item text name equal and let's copy name from here. Bien. Vamos a guardar, y vamos a comprobar los resultados. Entonces después de navegar, estamos agarrando ese elemento, guardando el texto, y afirmando que el texto es correcto Entonces eso fue todo para ese ejercicio. Espero que tus resultados sean aparentemente los mismos. Nos vemos en la siguiente lección. 12. 12. Ejercicio práctico 2.: Hola, y bienvenidos de nuevo. Continuemos con nuestra segunda lección con la práctica. Presentaré lo que queremos automatizar y después de eso, pondrás el video en pausa y tratarás de hacerlo tú mismo. Después de eso, continúe con el video y verifique los resultados. Compara tu código con lo que intentaré automatizar. Entonces, procedamos a este escenario. Primero, navegaremos hasta la demostración de origen. Después de eso, haremos el inicio de sesión con el usuario estándar. El siguiente será agregar dos elementos a la tarjeta. Después de eso, debemos verificar que el icono de la tarjeta de compras aquí son dos porque agregamos dos elementos a la tarjeta. La siguiente acción será hacer clic en el menú, agregar preceder al rect norte del estado Después de eso, deberíamos comprobar que ese icono desapareció. No tenemos ningún artículo en la tarjeta. El siguiente paso será ordenar aquí de bajo a alto. Después de eso, deberíamos hacer una re carga, recarga de página. Y el último será comprobar una vez más que el número de icono desapareció. Y eso es todo. Entonces vamos al código de Visual Studio. Entonces aquí pongo todos los escalones. Déjame crear dos fosas a la tarjeta. Bien. Entonces para la mercancía, voy a tomar la parte de registro del último video porque es lo mismo. Bien, entonces ahora tenemos el login. El siguiente paso es llegar a la tarjeta. Busquemos los localizadores para estos botones. Entonces aquí podemos observar que tenemos una identificación. Bien. Control T. Busquemos identificación. Bien, uno de cinco. Eso es bueno. Yo que consigo y vamos a ir formulario, haga clic en acción. Bien. Ahora vamos a dar clic al botón del segundo auto. Aquí, tomémoslo por su nombre. Bien. N igual y el valor. Ci punto G, y acción, clic. Bien, intentemos correr para ver si todo está bien ahora y ser Cypress abierto Y para terminar, fila Bien, tenemos ejercicios es el Es el mismo archivo de la última vez. Así navegó el inicio de sesión. Después de eso, el primero se agrega a card potter y el segundo. Bien. Después de eso, el siguiente será verificar ese número. Puedo numerar estos dos. Así que vamos a salir aquí dos elementos, y vamos a tratar de encontrar el selector CSS. Aquí tenemos una página de carrito de compras. Claus y prueba de datos probemos por clase, bien. Cuota de control más llamada y el nombre de la clase, uno de uno. Bien. Ahora intentemos extraer para guardar ese objeto, y luego extraeremos el texto. Después Tienda. Icono de tarjeta rosa. Bien. Ahora guardamos ese artículo aquí. Y ahora vamos a crear una constante. Número de artículos en la tarjeta. Bien, y es igual al texto del título del carrito de compras. Así instruimos el texto. Y ahora usemos el número de espera de aserción. Igual y el número debe ser dos porque resaltado sólo dos. Bien, vamos a ver. Entonces conseguimos ese artículo y esperamos que sean dos. Bien. Entonces veamos cuál es el siguiente paso después de verificar. Deberíamos hacer clic en la configuración y verificar que ese icono desapareció. ¿Bien? Entonces, antes de hacer clic en la configuración, deberíamos abrir ese menú. Y aquí, nuestro menú tiene v. Veamos. Tenemos prueba de datos aquí. Bien. Tratemos de encontrar por prueba de punto y punto. Bien, en una bandera eso es bueno. Haga clic. Este clic abrirá el menú, y después de que se abra nuestro menú, hagamos clic en el Restablecer estado de cachorro Bien. Entonces aquí, vamos a tratar de encontrar por texto. Entonces, si quieres encontrar CI que contenga nuestro escritorio, intentemos hacer el glick Veamos si eso va a funcionar Bien, entonces aquí tenemos un problema. Comprobemos el problema. Prueba de datos abrir el menú. Y nuestro error es decir esa película porque este elemento está siendo cubierto por otro elemento. Ese es un problema muy popular. Y aquí, el Ciprés está proporcionando una solución para ese problema Aquí podemos usar la fuerza a través de esta fuerza. A través de nosotros haremos clic aunque el objeto esté cubierto. Así que vamos a tratar de agregar aquí la fuerza a través. Bien. Clan s doble. Bien. Vamos a guardar y ver los resultados. Bien, ahora tenemos el mismo problema porque los contenidos. Bien, también usemos la fuerza verdadera. Bien, entonces ahora nuestra prueba ha pasado. El siguiente paso es ordenar los artículos de menor a alto, volver a cargar la página y verificar Ahora, después de la configuración, deberíamos comprobar que ese icono desapareció. Bien, así que si queremos comprobar que algo desapareció, podemos obtener ese selector de clase de elementos y afirmar que no es visible o no existe Debería, y vamos a tratar de no existir, salir. Bien. Entonces podemos reservar nuestro pase de prueba porque ese elemento no existe en nuestra perdición Bien. El siguiente paso es ordenar. Bien, intentemos ordenar de bajo a alto. Aquí podemos observar que tenemos un tipo selecto de elemento selecto. Entonces para este tipo de selección con opción, debemos usar el método especial select by name. Vamos a agarrar vamos a agarrar por clase. Bien. Probemos por clase. Ci TTG, por clase, pondremos un.en el carril de clase y método especial seleccionar, y aquí debemos proporcionar el valor del texto Bien, entonces el valor del texto es de bajo a alto. Bien. Digamos, veamos los resultados. Bien, ahora es de bajo a alto. Eso es bueno. El siguiente será recargar la página. Para ello, podemos usar el método predeterminado de recarga de CI. Ese método volverá a cargar la página. Vamos a revisar. Bien. Entonces aquí podemos ver el método de recarga Y el último, el último paso es comprobar una vez más que nuestra página de carrito de compras no existe. Bien, vamos a copiar, y pongámoslo al final, ¿de acuerdo? A ver. Bien, entonces nuestra prueba está pasando. Eso es bueno. Bien, veamos una vez más lo que hicimos. Entonces navegamos por nuestro sitio web. Aquí tenemos el inicio de sesión. Después de eso, agregamos dos artículos a la tarjeta con solo hacer clic en el siguiente estaba revisando el ícono del carrito de compras. Es igual a dos, abrimos el menú y pulsamos en el estado de configuración Ahora nos encontramos con algunos problemas porque los artículos estaban cubiertos por otra cosa, y para eso, usamos la fuerza a través de eso está realizando el clic aunque el elemento esté cubierto por otra cosa. El último, verificamos que icono de la página del carrito de compras desapareció después de configurar la aplicación. Y utilizamos el método select para seleccionar la clasificación de precios de menor a mayor, recargamos la página y comprobamos una vez más que el carrito de compras aún está vacío Bien, así que eso fue para la lección de hoy. Espero que lo hayan disfrutado. Nos vemos en la siguiente. 13. 13. Ejercicio práctico 3.: Bienvenido de nuevo. Este es el último video de nuestra serie de ejercicios donde realizaremos una sencilla prueba. Intentaremos hacer el inicio de sesión con el usuario bloqueado y revisar su mensaje. Entonces navegaremos poniendo el nombre de usuario de un usuario de registro, la fuente secreta de pasaportes Y después de hacer clic en el botón de inicio de sesión, debemos afirmar que se mostró un mensaje de error Entonces vamos al código de Visual Studio. Vamos a crear una nueva prueba. Me conecto con cerrar sesión usuario. Bien. Entonces busquemos una vez más, los localizadores Vamos a crear por ID, tarifa de control. DNI. Se puede usar así. Entonces CI que consiguen. Tipo. Vamos a usar optar por el usuario. Bien. Bien, entonces antes de eso, debemos visitar el sitio web debemos navegar visita CI, y vamos a copiar la URL. Bien. Entonces ahora vamos a escribir vamos a averiguar el localizador para la contraseña. También por identificación. Y usemos como esa contraseña punto de fuente. Bien. Del lado que GD y escriba la contraseña es salsa secreta Bien. Y el siguiente paso será hacer clic en el botón de inicio de sesión. Además, vamos a agarrar por AD. Escribamos una identificación así. Este tipo de identificación, uno de uno, nueve. Sentarse aG. Y estamos pinchando. Bien, así que vamos a guardar y vamos a comprobar los resultados y pico de la operación de Cypress desde la terminal a las pruebas, iniciar los ejercicios diarios Bien, entonces navegamos escriba el nombre de usuario, el pathwor y haga clic en Ahora debemos hacer valer esta última. Bien. Entonces déjame tratar de cangrejo la aserción, el selector para eso Aquí tenemos prueba de datos. También tenemos botón, y tenemos la prueba. Tratemos de encontrar por texto usando contiene control. C. Entonces intentemos que CI que contenga debe ser visible. Bien. Bien, entonces tenemos nuestro poste de escritorio con todo es verde. Entonces eso fue todo para el menor de hoy. Fue una corta. Nos vemos en la siguiente donde haremos un poco de refactorización, y te mostraré cómo puedes escribir esta prueba aún más fácilmente usando las características de Cypress CF 14. 14. Refactorización y consejos para ejercicios prácticos.: Bienvenido de nuevo. En esta lección, te mostraré cómo podemos mejorar el proceso de redacción de casos de prueba o cómo podemos hacer un poco de refactorización Entonces si miramos nuestra prueba, podemos observar que la parte de inicio de sesión está casi presente en cada prueba, solo en la última, que es con usuario bloqueado. Entonces en ese caso, podemos poner un antes cada gancho que hará el login para todas nuestras pruebas. Entonces intentemos hacer eso. Deberíamos usar antes de cada uno. Esa es la sintaxis. Bien. Y a partir de la prueba, solo podemos hacer el control y poner ese código antes de cada uno donde haremos la visita, y usaremos la contraseña y contraseña haciendo clic en el botón enviar, y comprobaremos que estamos en la página principal del elemento. Bien, ahora podemos eliminar la parte de registro de la de todas las pruebas. Salvemos, y abramos el Ciprés y el Ciprés B Y pruebas, ejercicios redondos. Entonces están corriendo rápido, y aquí podemos observar que tenemos ahora ante cada uno. Es nuestro gancho lo que está haciendo es realizar la fase de inicio de sesión de nuestras pruebas. Bien, ahora, te mostraré una característica más muy importante de Util Cyprus que te ayudará en el proceso de escribir aún más fácilmente tu prueba Bien, entonces voy a hacer este salto para todas las pruebas. Déjame comentarlo, y voy a crear una nueva prueba. E uno. Bien, sólo voy a realizar algunos datos reales. Entonces déjame copiar la parte sentada y después de eso, lo haremos con el guardado de Cypress Entonces aquí hicimos la parte de visita. Ahora bien, aquí Chipre tiene ese botón, y si vas a hacer clic en ese botón, y después de eso, harás clic en el elemento b que deseas encontrar el selector CSS. Aquí Cybers te dará el selector CSS para ese elemento Y aquí tenemos la copia. Ahora, los Cybers te van a dar con el CIG así que voy a volver solo copiar y pegar que me den y aquí vamos a escribir Déjame copiar el usuario de estándares. Bien. Ahora encontremos el selector para el segundo. Bien, déjame hacer clic en eso. Tenemos la contraseña. Bien. Entonces, olvidé que lo copiamos. Tipo Salsa Secreta. Bien, ahora vamos bien para el botón de inicio de sesión. Ver, obtengo el botón de inicio de sesión. Control V, clic. Bien. Intentemos correr y ver. Bien, entonces ahora realizamos el log in. Después de eso, podemos encontrar la prueba de datos, el selector CSS para todos los elementos de la página. Entonces intentemos agregar un elemento a la página. Vamos a hacer clic. Primero, debemos hacer clic en ese botón y después de eso en el elemento be. Aquí tenemos la prueba de datos para nuestro botón de dos autos. Vamos a copiarlo, copiarlo. El pegarlo aquí y realizar. El clic. Entonces vamos a revisar los resultados. Aquí realizamos esto. Sí, agregamos la tarjeta. Esa es una característica más genial de los cybers que nos ayuda a sujetar nuestro proceso de escritura de kits de prueba Entonces eso es todo para la lección de sabor. Nos vemos en la siguiente sección. 15. 15. Estructura general de un framework y su configuración.: Hola, y bienvenidos a la sección del curso donde estaremos construyendo un marco de automatización similar a los utilizados en proyecto del mundo real. En primer lugar, aquí, he abierto una carpeta la cual fue creada en mi escritorio. Y en esta carpeta, guardaremos todos nuestros datos de prueba. A continuación, desde la terminal, abramos una nueva terminal y ejecutemos terminal en la nueva carpeta, deberíamos ejecutar MBM en ella Ese comando nos ayudará a crear un paquete hijo, donde almacenaremos información sobre el proyecto. Así que vamos a completar el marco de nombre del paquete. Ciprés. Lo sentimos, el nombre ya no puede contener letra Capta Bien. Marco. Ciprés. ¿Bien? La versión será 100 descripción. Marco Marco. Chipre. ¿Lo hiciste? Bien. Punto de entrada. Bien. Comando de prueba, bien. Todo el mundo dirige palabras clave vacías o licencia, y sí. Bien. Así que aquí podemos observar todos nuestros datos, nuestro nombre, versión, descripción, podemos cambiarlo si quieres. Y todo lo demás realmente no nos importa ahora mismo. Siguiente paso, necesitamos instalar Chipre. Entonces instalarás Chipre, yo lo buscaré en Google. Y el primer enlace sería a la documentación de Chipre. Y aquí tenemos nuestro script que deberíamos ejecutar en nuestra terminal. Entonces lo voy a copiar. Y del terreno, déjame despejar el charrán. Voy a colocar NBN Istyle Cypress Dev. Este Cypress Dev está mostrando dónde debemos instalar la dependencia Así que déjame hacer clic en Entrar y esperar un poco. Entonces después de unos segundos, tengo todo instalado. Tengo la nueva carpeta de modelos de dependencia, paquete, log Json y nod Es hora de abrir Cypress por primera vez. Entonces vamos a aclararlo y para abrir, I N Cypress abre Estos pasos los usábamos al inicio del curso, pero es lo mismo. Entonces aquí, no todo está configurado, elegiremos de extremo a extremo. Aquí todo quedará así. Tengo un poco de descripción para cada carpeta, pero continuemos. Yo Sí, usemos algunos ejemplos para verificar que instalamos todo. Correcto. Así que vamos a hacer clic en el primero. Sí, todo es verde, que significa que lo instalamos todo, correcto. Ahora, dejemos el Cypress y volvamos al código de Visual Studio Aquí tenemos la estructura básica predeterminada que Chipre está creando automáticamente después de tu primera ejecución. Aquí tenemos dentro de la carpeta Cypress, accesorios de extremo a extremo y soporte En la carpeta de extremo a extremo, conservaremos todas nuestras pruebas. Así que vamos a crear dos nuevas carpetas. Para nuestro framework, automatizaremos el framework de demostración de origen que usamos el sitio web de demostración de origen que usamos en nuestro curso. Así que vamos a crear carpetas. Básicamente, tendremos pruebas para la página de inicio de sesión y para la página principal de productos. Así que vamos a crear fuente Demostración de origen Prueba. Vamos a pincharlo así. Bien. Realmente no necesitamos estas dos carpetas, pero mantengámoslas aquí solo por un rato. Bien, agreguemos dos archivos aquí para iniciar sesión prueba dotc punto gs Bien. Aquí habrá pruebas para el inicio de sesión y para el producto. Pruebas cita. Los dejaré vacíos, pero luego agregaremos algunas pruebas. En la carpeta de soporte diremos que mantendremos nuestros selectores CSS que nos ayudarán a usar selectores y a organizarlos mejor. Así que vamos a crear dos archivos. Para cada página de nuestro sitio web, tendremos un archivo separado. Entonces, para la página de inicio de sesión, tendremos un archivo con todos los selectores que usaremos para la página de productos, otro archivo para la página de la tarjeta, otro, y así sucesivamente Entonces el primero será mecanografiado de inicio de sesión. Primero, vamos a crear una carpeta, y vamos a nombrarlo objeto de página porque vamos a utilizar un patrón de diseño que es objeto de página. Te lo explicaré más tarde. Movamos nuestro inicio de sesión dentro del objeto page. Bien. Y vamos a cambiarle el nombre y página de inicio de sesión y página de inicio de sesión. Bien. Y página de productos. Acerca de la página Patrón de diseño de objetos, lo discutiremos en las próximas lecciones. Y echemos un vistazo al archivo de los comunes. Aquí podemos agregar nuevos comandos que podemos usar en todas nuestras pruebas. Discutiremos sobre ellos en los próximos videos. Y en Chipre conf de extremo a extremo, aquí usamos para agregar el video para nuestra prueba, pero también usaremos ese archivo para agregar informes de prueba para nuestras pruebas Y eso lo haremos en las próximas lecciones. Esa es la principal estructura básica del framework Cypress que es muy similar a un framework que se utiliza en proyectos del mundo real Entonces aquí tenemos nuestro archivo donde guardaremos las pruebas. Tenemos archivo donde guardaremos los selectores CSS y también un archivo importante para agregar comandos y el archivo de configuración Eso fue para la lección de hoy. Nos vemos en la siguiente. 16. 16. Implementación del modelo de objetos de página en el marco de Cypress.: Bienvenido de nuevo. En la lección de hoy, discutiremos sobre el patrón de diseño de objetos de página y cómo podemos implementarlo para nuestro sitio web. Tercero, echemos un vistazo a la primera página que queremos automatizar. A partir de aquí, para escribir nuestros casos de prueba de automatización, necesitaremos el selector CSS para la entrada del usuario, para la contraseña y para el botón de inicio de sesión. Ahora vamos a cambiar el nombre de estos archivos de TS es la extensión de cuatro TypeScript, estamos usando aquí JS JavaScript Esa es la extensión correcta. Bien. Ahora, vamos a discutir un poco sobre el archivo BageObject. Nuestro objeto de página de inicio de sesión debe contener los selectores para todos los elementos web que vamos a utilizar desde esa página, acción que se puede realizar con esos elementos web Por ejemplo, con esa entrada de nombre de usuario, podemos realizar aquí tipo. Entonces en esa clase en ese archivo de objeto de página, deberíamos tener el selector para ese elemento y la acción que se puede realizar con ese elemento. Ahora comencemos con la creación de nuestro primer archivo de objeto de página. De los archivos por defecto, voy a copiar este comentario que nos ayudará con auto completado desde el Ciprés Bien, entonces todo, todos los selectores CSS y todas las acciones deberían estar dentro de una clase Una clase es la plantilla de nuestro objeto de página. Entonces déjame crear nuestra clase. Voy a usar la palabra clave Export porque con la ayuda de esa palabra clave Export, podemos usar el objeto de la clase fuera de este archivo. Así que la clase de exportación, y vamos a nombrarlo como página de inicio de sesión. Ahora necesitamos crear un objeto que agrupe todos nuestros selectores CSS Así que déjame cambiarle el nombre. Página de inicio de sesión los elementos. Bien. Y aquí vamos a dar un nombre para nuestro primer elemento web, que es la entrada del nombre de usuario. Así que vamos a nombrarlo algo así como entrada de nombre de usuario. Y la sintaxis aquí es simple. Vamos a dar el nombre aquí que ponemos desde el principio, CIG, dentro de eso agregaremos nuestro selector CSS Ahora, vamos a agarrar. Busquemos el selector CSS para el nombre de usuario. ¿Bien? Aquí tenemos prueba de identificación y datos. Bien, usemos ID para eso. Aplicación de control. Bien. Yo no lo copié. Usuario entonces. Bien. Entonces uno de uno, copiarlo. Y pongámoslo aquí. Bien, entonces ahora tenemos el primer elemento. Bien. Agreguemos también para la contraseña y para el inicio de sesión abajo. Contraseña, entrada. La sintaxis es la misma. La diferencia justa son los selectores. Bien. Encontremos el selector para esa. Contraseña también por AD. Bien, vamos a usar ID aquí. Contraseña, vamos a copiar. Bien. Y para el botón de inicio de sesión, también deberíamos tener aquí un ID. Sí, botón de inicio de sesión. Bonito. Bien, uno de uno. Vamos a copiar. Y agreguemos el selector de botón de inicio de sesión. Botón de inicio de sesión. Misma sintaxis. S me sale. Bien, ahora tenemos los selectores para todos los elementos que vamos a usar al principio Después de agregar todos nuestros elementos web, es el momento de agregar los métodos para nuestros elementos, las acciones que se pueden realizar con nuestros elementos. Entonces para el primer elemento web, que es la entrada del usuario, podemos realizar mecanografía. Así que vamos a darle un nombre a nuestra acción, algo así como Yenter user inter user name ¿Bien? Y ese es un método. Y dentro de ese campo, deberíamos escribir un nombre de usuario. Y ese nombre de usuario, será una cadena. Nuestro método, nuestra acción tomará como argumento, un nombre de usuario, ¿bien? Entonces ahora deberíamos usar ese objeto para acceder a nuestro elemento. Entonces este objeto está usando con este teclado después de nuestro objeto. Y a partir de ese objeto, tenemos nuestra entrada de nombre de usuario, como método y nuestro tipo de acción. Y para el tipo, usaremos nombre de usuario. Bien. Ahora, lo mismo que podemos hacer con Year password. Simplemente voy a copiar eso y la Contraseña, aquí tenemos contraseña y también estos elementos de inicio de sesión, tipo de entrada de contraseña y pase. Bien, la última acción será hacer clic en el botón de inicio de sesión. Así que permítanme crear un método el que se haga clic en el botón Iniciar sesión. Bien, nuestro método, no está recibiendo nada porque solo estamos haciendo clic, no escribiendo. Y aquí tenemos este nuestro objeto que contiene todos los elementos, nuestro botón de inicio de sesión, y nuestra acción. Haga clic. Bien. Ahora tenemos acciones separadas para ingresar el nombre de usuario, ingresar contraseña y hacer clic en el botón Iniciar sesión. Podemos agruparlos para tener un solo método, que se llamará login. Así que vamos a crear un método de inicio de sesión. Y para el inicio de sesión, necesitamos nombre de usuario y contraseña. Entonces dentro del login, tendremos primero, ingresaremos el nombre de usuario. Ingresa el nombre de usuario. Y aquí tenemos nombre de usuario. Bien, entonces ingresaremos contraseña, e ingresaremos la contraseña que vamos a dar en nuestras pruebas. Y el último estará dando clic en el botón Iniciar sesión. Ahora, vamos a resumir lo que tenemos aquí. Tenemos una clase con página de inicio de sesión. Dentro de nuestra página de inicio de sesión, tenemos todos los objetos, que es nombre de usuario, contraseña e inicio de sesión. Y para cada elemento, tenemos su acción. Aquí podemos escribir algo. Aquí podemos hacer click. Tenemos para ingresar nombre de usuario, ingresar contraseña, y hacer clic en el botón de inicio de sesión. Al final, agrupamos todas estas acciones en una sola acción grande que estaremos realizando el login a la aplicación. Ahora deberíamos crear el mismo archivo de objeto de página para la página de productos. Entonces a partir de aquí, vamos a necesitar este botón fuera a la tarjeta, este botón de quitar, y tarjeta el botón de la tarjeta. Ya he agregado todo aquí. Yo sólo voy a explicar lo que tenemos. Entonces es casi lo mismo que aquí, tenemos elementos para el botón de mochila AT Cart para esa. Tenemos botón de quitar mochila. Después de hacer clic en Atocar tenemos el botón de eliminar, y tenemos el botón Carrito, que es una clase Déjalo encontrar tarifa de control. Entonces esa. Sí. Entonces a partir de los métodos, tenemos una acción de método que es verificar que exista el botón de la tarjeta. Son solo los elementos, el botón de la tarjeta, y nuestra afirmación lo que debería ser visible Además, tenemos agregar mochila a tarjeta, que es simplemente hacer clic en este botón. Y el último es verificar que botón de quitar mochila aparece después de hacer clic para agregar al botón de tarjeta. Entonces eso es básicamente todo para las lecciones de hoy. Lección. Tenemos dos objetos de página con elementos y con sus acciones. Escribiremos algunas pruebas en la siguiente lección, así que nos vemos ahí. 17. 17. Prueba de la página de inicio de sesión.: Hola, doy la bienvenida de nuevo. En la lección de hoy, agregaremos pruebas para la página de inicio de sesión, utilizando nuestro objeto de página que creamos en menos anterior. Así que utilizaremos los objetos de página de inicio de sesión y proto page. Ahora, vamos a ir a la prueba de inicio de sesión CI y primero, yo ese comentario que nos ayudará con la corrección automática. Ahora vamos a crear un conjunto de pruebas. Voy a describir. Damos las pruebas de la página de inicio de sesión del nombre. Y dentro de eso, agregaremos nuestra prueba. Vamos a crear nuestra primera prueba, que se registrará con reidentiles de maíz Bien. Y el primer paso será CI Vs. Navegaremos a nuestra aplicación de demostración de origen. Entonces déjame copiar este camino. Bien. Sin el modelo de objetos de página, solo encontraríamos el selector CSS, el ID para eso y haremos Cici dot Get here tendremos ID, y usaremos type o name Pero ahora ya definimos todo nuestro selector SS aquí mismo ya con CI G. Así que dentro de esa clase de página de inicio de sesión, tenemos todo lo que necesitamos. Tenemos nuestros selectores y nuestro método. Entonces, para usar todo lo que tenemos dentro de eso, deberíamos crear un objeto de esa clase. Así que vamos a crear un objeto de esa clase que contendrá todo lo que tenemos dentro de esa clase de página de inicio de sesión. Entonces aquí tenemos la palabra clave export, lo que significa que podemos usar eso en la página fuera de ese archivo. Así que déjame crear esa página de inicio de sesión igual a la página Nueva y la página de inicio de sesión. Entonces aquí, tenemos Autoiput. Aquí está la ruta a nuestro archivo. Podemos apoyar la página Objetos Iniciar sesión página de soporte Inicio de sesión de objetos. Así que con solo hacer clic en eso, tendremos Auto Import así. Así que ahora podemos usar los métodos completamente definidos desde la página de inicio de sesión. Entonces después de visitar la página, ingresamos nombre de usuario y contraseña. Página de inicio de sesión punto YenerNombre de usuario. Y aquí nuestro método de nombre de usuario es pedir un nombre de usuario. Entonces cuando usamos eso, debemos dar un nombre de usuario. Vamos al Visual al Google Chrome y vamos a copiar ese nombre de usuario. Bien. Entonces después de ingresar nombre de usuario, ingresemos la contraseña, Página de inicio de sesión, Ingresa contraseña. Entonces para la contraseña es lo mismo. Nuestra contraseña está pidiendo una contraseña, Bien, que se utilizará para escribir la contraseña ingresada aquí. Entonces vamos a dar la contraseña. Es secreto. ¿Se cura bien? Y el último toque es hacer clic en el botón Iniciar sesión, que no está recibiendo nada Apenas estamos haciendo clic en el botón desde aquí. Bien, entonces vamos desde la terminal, vamos desde terminal, nueva terminal, y vamos a MP Cypress, Copan Probemos lo que tenemos aquí. Y para finalizar desde pruebas de inicio de sesión. Entonces nuestra prueba pasó, tenemos la parte de visita. Después de eso, estamos escribiendo el nombre de usuario, escribiendo la contraseña y dando clic en el botón de inicio de sesión. Ahora agreguemos una aseveración más para verificar que terminamos en la página de productos Entonces en la página de productos, tenemos este botón de tarjeta. Entonces así es como podemos verificar que después del registro, estamos redireccionándolo a la página de productos. Ya tenemos aquí en la página de productos, tenemos botón de tarjeta y tenemos una acción una afirmación que verificando que este botón de tarjeta sea visible Entonces ahora deberíamos usar estos elementos y estos métodos dentro de nuestras pruebas de registro y registro. Entonces para eso, deberíamos crear otro producto líder productos iguales página de nuevo producto y también. Deberíamos tener una nueva importación. Ahora desde esa página de productos, deberíamos usar botón de tarjeta existir, que es simplemente afirmar que ese botón es visible Así que la página del producto en el botón de la tarjeta existe. Vamos a guardar eso, y vamos a ir a la para comprobar los resultados. Bien, entonces después de hacer clic, somos redirigidos a la página de productos, y aquí tenemos la aseveración de que ese producto es visible Agreguemos una prueba más que verificará lo que sucederá si intentamos iniciar sesión con nuestras propias credenciales. Así que vamos a copiar esa y ponerla solo log con credenciales incorrectas. Entonces corre una salsa secreta Bien, vamos a ejecutarlo. Bien, entonces después de hacer clic, no somos redirigidos a la página del producto Estamos recibiendo un error. Ahora debemos afirmar ese error error. Intentemos reproducirlo manualmente. Voy a añadir algo así. Busquemos el selector CSS para ese error. Tenemos un error de prueba de datos. Bien. Controlemos F. Data. Aquí Bien, esa es una de ellas. Agreguemos eso dice selector a nuestro objeto de página de inicio de sesión. Entonces mensaje de error, la sintaxis es la misma. Lado que consigue. Y aquí, pongamos nuestro mensaje. Y para ese mensaje de error, podemos crear aquí un método, pero podemos usarlo desde esos elementos de la página de inicio de sesión. Intentemos hacer algo así. Entonces, después de hacer clic, ingresamos a los elementos de la página de inicio de sesión , el mensaje de error y nuestra afirmación deberían ser visibles Bien, así que vamos a ejecutar Bien, mensaje de error no es una función. Yo no la guardé aquí. Bien, ese fue el error. Bien, entonces ahora todo está funcionando bien, pero no podemos desde el archivo autoguardado Entonces después de que estemos modificando algo, va a hacer autoguardado Pero lo guardaré manualmente, pero puedes hacer algo así. Resumimos lo que hicimos en la lección de hoy. Entonces agregamos dos pruebas que están probando la funcionalidad de inicio de sesión, una con la credencial correcta y la segunda con incorrecta Estamos visitando el Bige después de eso, creamos dos objetos de nuestros objetos Bage para iniciar sesión Bolsa y página de productos Dentro de estos objetos. Tenemos todos los elementos web y todas las acciones que están disponibles para estos elementos web. Además, podemos mejorar nuestras pruebas poniéndolas antes de cada una porque antes de cada prueba, estamos visitando la demo de salsa. Entonces vamos a tratar de hacer eso. Antes de cada uno está la sintaxis. Bien, así que vamos a quitar eso de aquí. Y a partir de aquí, agrégalo aquí mismo. Eliminemos solo, y vamos a guardarlo manualmente. Ahora tenemos dos pruebas que están visitando antes cada una y con verde. Eso fue para la lección de hoy. Nos vemos en la siguiente. 18. 18. Prueba de la página de productos.: Hola, y bienvenidos de nuevo. En la lección de hoy, agregaremos algunas pruebas para la página de productos. Vayamos al archivo de prueba del producto. Y aquí los pasos son similares. En cuanto a la página de inicio de sesión. En primer lugar, tengo mucho que viene que va a ayudar a pasar con auto complete. Después de eso, crearé una suite de pruebas para la página de productos, y dentro de eso, podemos agregar nuestra prueba. El primer paso será agregar un producto, la tarjeta. Bien, así que al principio, solo deberíamos visitar nuestro sitio web. Bien, entonces aquí se me olvidó agregar Bien, ahora, creo que está bien. Vamos a copiar la URL. Y después de eso, deberíamos hacer la tala. Para la parte de inicio de sesión, deberíamos tener todo lo que tenemos dentro de la página de inicio de sesión, objeto de página. Ahora vamos a crear ese objeto, Login Login page, igual nueva página de inicio de sesión. Y aquí tenemos importados. La página de inicio de sesión ahora que es crear la página de productos página de productos. Bueno, No hay página de producto. Bien. Entonces tenemos dos objetos aquí que tenemos todo dentro de ellos. Entonces tenemos el inport. Ahora vamos a hacer el inicio de sesión. Podemos copiarlo de la prueba anterior. Aquí es simple, ingresando nombre de usuario, contraseña y haciendo clic en el botón de inicio de sesión, el siguiente paso es hacer clic después de realizar el inicio de sesión, déjame realizar el inicio de sesión. Deberíamos hacer clic en el botón de anuncio a tarjeta, que ya lo tenemos creado aquí. Tenemos una mochila en el botón de tarjeta y botón de quitar. Así que vamos a ir al código de Visual Studio. Y desde la página de productos, Agregar tarjeta. Así que vamos a agregar de nuevo a la tarjeta aquí. Realizaremos el método click. Bien. Entonces después de eso, intentemos correr primero para ejecutar la prueba para ver si las cosas están bien. Y hasta el final, inicio y página de productos. Estamos realizando la visita, el inicio de sesión, y estamos dando clic en ese botón. Bien, después de hacer clic, debemos verificar que tenemos botón de eliminar aparece el botón de quitar. Entonces para eso, también tenemos botón de quitar mochila, y tenemos un método que verifica que el botón de quitar mochila sea visible. Entonces usemos ese método. Para la página del producto, utilizamos verificar que aparezca el botón de eliminación de mochila, y vamos a ejecutarlo y verificarlo. Entonces tenemos una aseveración de que está verificando que aparezca este botón de eliminar Entonces agreguemos una verificación más de que verificaremos que este número de tarjeta, el número página de la tarjeta esté actualizado. Entonces intentemos agregar algo a la tarjeta, y busquemos el selector CSS para eso. Aquí observamos que tenemos una clase de compra de carbaje. Vamos a tratar de encontrarlo con punto. Carbaje comercial, uno de uno. Agreguemos ese selector CSS a la página de productos, página Objeto. Así que el número de página del carburador del coche. Bien, la sintaxis es similar. Aquí tenemos CI dot GAD. Entonces nuestra página de carrito de compras. Bien. Ahora, vamos a guardarlo y vayamos a las pruebas de productos y tratemos de hacer nuestra aseveración. Entonces desde la página de productos, aquí tenemos elementos, y dentro de los elementos, tenemos el número de página duro. Y podemos usar podemos usar nuestro método que debería tener texto, y probemos uno. Vamos a guardarlo. Ahora podemos observar que tenemos la última aseveración que está comprobando que hemos agregado un ítem a la tarjeta Ahora, vamos a resumir lo que hicimos en la lección de hoy. Así que creamos una nueva suite de pruebas para la página de productos. Agregamos estos dos objetos de nuestras clases. Creamos una nueva prueba donde hicimos la parte de visita, la parte de tala. Después de eso, le agregamos una mochila al auto, verificamos que apareciera el botón de quitar. Y verificar que el número de página de la tarjeta se actualizó a uno. Entonces aquí podemos agregar muchos otros casos relacionados con la página del producto. Solo necesitamos agregar más selectores CSS si los necesitamos. Entonces eso fue para la lección de hoy. Espero que lo hayan disfrutado. Nos vemos en la próxima vez. 19. 19. Creación y uso de comandos personalizados en Cypress.: Bienvenida de nuevo. En este video, discutiremos cómo podemos agregar un método global o una acción dentro de la carpeta commons. Entonces aquí podemos agregar un método que va a ser utilizado en todo nuestro framework. Ahora, vamos a discutir qué es un método global. Cada método que se cambia desde el CI de objeto global, métodos como visit u get o contains, hay métodos que se pueden usar en todas partes si son cambiados por el CI de objeto global. De nuestras pruebas, aquí podemos observar que en cada prueba, tenemos la funcionalidad de inicio de sesión aquí y aquí. Entonces ahora vamos a agregar make esta función de inicio de sesión como un método global que se puede usar chain desde el objeto global CI. En la CommansFolder, ya tenemos aquí algunos ejemplos del login, pero vamos a crear nuestro propio método Entonces la sintaxis, sólo vamos a seguir la sintaxis de Hell cypress dot commands dot add, y el nombre login to source up. A partir de aquí, nuestro método va a recibir correo electrónico y contraseña tendrá nombre de usuario y contraseña. Nombre de usuario Contraseña. ¿Bien? Entonces dentro de ese comando tenemos nuestro login. En el objeto de página de inicio de sesión, ya tenemos un método que está recibiendo nombre de usuario y contraseña y está realizando toda esta acción. Entonces intentemos agregar ese método dentro de eso. Primero, necesitamos crear el objeto de esa clase. Así que deja que la página de inicio de sesión sea igual a la nueva página de inicio de sesión. Entonces sí, aquí tenemos que importar todo aquí. Y desde login, desde el objeto de página de inicio de sesión, vamos a usar command, el método login que está recibiendo nombre de usuario y contraseña aquí. usuario y contraseña, y para nombre de usuario, estamos usando en el comando enter username y contraseña en el comando Enter password. Entonces vamos a dar el nombre de usuario y contraseña. Sí, vamos a borrar todo. Entonces, no vamos a eliminar, borrarlo así. Bien, entonces aquí solo seguimos esta sintaxis, cambiamos el nombre para iniciar sesión para acceder a la fuente arriba y estamos recibiendo nombre de usuario y contraseña, objeto creado de esa clase, y usamos el método especial action login, que es recibir nombre de usuario y contraseña. Ahora, si vamos a la página de prueba del producto aquí, tenemos la funcionalidad de inicio de sesión. Bien, entonces también tenemos que visitarlo porque antes de hacer clic y escribir nombre de usuario y contraseña, debemos visitar la página. Entonces antes de eso, agreguemos la visita. Bien, vamos a guardarlo. Y tratemos de simplemente comentemos que dijimos que un método global, una acción global se puede encadenar desde el CI de objeto global Así que desde CI, punto, y baja iniciar sesión. Ingresemos a la fuente arriba. Lado que inicie sesión para obtener la fuente arriba, y vamos a recibir nombre de usuario y contraseña. Bien, para el nombre de usuario vamos a usar el primero, el usuario Lou Standard y la salsa secreta. Bien, usuario estándar y saps secretos. Bien. Ahora, vamos a tratar salvar ambigu Cypress sapp Vamos a probar productos Cromado. Pruebas de producto, ¿de acuerdo? Entonces estamos realizando el login desde nuestro objeto, y el resto de la prueba permanece intacta. Y los inicios de sesión de comandos globales. Otra mejora que podemos realizar aquí está relacionada con la URL base. Entonces, en todo nuestro marco, estamos usando la misma URL base, demostración de origen. Entonces también aquí podemos observar que aquí vendemos demo de fuente. Justo después de eso, estamos usando tarjeta de inventario o algo así. Entonces en caso de que cuando tengamos una URL base, podemos poner esa URL base dentro de nuestro archivo de configuración. Entonces déjame ir a la configuración de cybers, y dentro de Yen a Yend, podemos agregar URL base Y para eso, podemos establecer esa URL base a nuestra salsa DMU. Así que vamos a guardar eso y bien, así después de que lo guardamos en todos los lugares donde estamos usando la URL base, podemos poner en el guión la diagonal diagonal, solo la diagonal diagonal Y el Cypress buscará dentro de la URL base de configuración de Cypress Así que vamos a guardarlo e intentar ejecutar nuestra prueba de producto. Entonces aquí observamos que estamos visitando un enlace vacío, pero los vamos a obtener. Intentemos hacer lo mismo con el resto de las pruebas en las pruebas de log in. Aquí estamos visitando vamos a eliminar y estamos dejando sólo la barra diagonal Bien, vamos a ahorrar, y vamos a ejecutarlos. Iniciar sesión en pruebas. Sí, así que aquí y antes de cada uno, estamos visitando una URL vacía, pero el cyberus sabe que los vamos a obtener. Entonces, vamos a resumir lo que hicimos en la lección de hoy. Agregamos un comando dentro de la carpeta de comandos. Sólo en esta carpeta, podemos un comando global. La sintaxis se ve así. Estamos dando el nombre lo que nuestro método utilizará como parámetros. Tenemos nombre de usuario y contraseña. Creamos el objeto de nuestra página de inicio de sesión. Visitamos la página y después de eso, hicimos el nombre de usuario YenerPassword, y haciendo clic en el botón de inicio de sesión Eso fue para la lección de hoy. Nos vemos en la siguiente. 20. 20. Generación y configuración de informes en Cypress.: Bienvenida de nuevo. En esta lección, aprenderá a agregar informes para sus grupos de pruebas. Entonces en nuestro si buscaremos CyprRports encontraremos que la documentación de Cypress está recomendando Así que vamos a copiar ese nombre y vamos a probar MoCA impresionante instalado Y el primer enlace será la instrucción sobre cómo podemos instalar este reporte. Entonces si nos desplazamos hacia arriba, aquí deberíamos tener el comando para instalar esa herramienta. Entonces MPM install save D MOCA En código de visual studio, abramos la nueva terminal Y aquí, vamos a pegar ese comando y BM instalar seguro. Así que vamos a ejecutarlo. Y deberíamos ver que todo está bien instalado ahora y el backer justo en archivo, debemos observar la nueva herramienta instalada Además de Cypress, deberíamos tener nuestra herramienta de reporte. Ahora debemos decirle a Chipre que utilice esa herramienta de reporte. Entonces, dentro del GS de Chipre, deberíamos escribir reporter y nuestro laboratorio de reporteros. Además de eso, sobre la documentación de esa herramienta, Mocoo ofrece muchos otros parámetros y opciones de cómo se puede configurar Pero solo voy a copiarlos y pegarlos porque hay muchas configuraciones. Entonces agregué aquí todas estas opciones. Aquí estamos mostrando dónde guardar el informe. Si podemos anular los informes los formatos que necesitamos HTML y Gson, el nombre del archivo y la marca de tiempo y así No te preocupes. Te voy a dar el link al repositorio de Github donde todo de ese curso estará ahí y no necesitas recordarlo todo. Entonces ahora tenemos nuestro reporte con muchas opciones, mucha configuración. Chipre generará informes sólo cuando ejecutemos nuestra prueba desde la terminal. Es lo mismo que con las capturas de pantalla. Las capturas de pantalla no se generan cuando estamos ejecutando nuestra prueba desde la aplicación UI. Ahora, intentemos dirigir nuestro escritorio. Huevos MP Ciprés. Corre vamos a correr todo lo que tenemos dentro del final para yend Aquí tenemos nuestro traje y dos trajes por defecto del Chipre. Tenemos 222 suites, y esto tardará un poco. Entonces esperemos los resultados. Entonces ese es el resultado de nuestra prueba. Tenemos algunas pruebas que fallaron. Entonces ahora vamos a observar que aquí mostramos que nuestros informes deben ser guardados dentro de la carpeta CyBrusrPorts Entonces aquí, CybrsSports. Deberíamos tener 22 archivos HTML y 22 Json. Vamos a revelarlos en el buscador y vamos a abrir un archivo HHTML Entonces aquí podemos observar que cada archivo representa un traje de prueba. El siguiente paso en el proceso de generación del gran informe es fusionar todos estos archivos Json, 22 en un archivo grande porque es más fácil ver un informe grande que 22 separados Entonces para eso, necesitamos ejecutar un comando. Lo haré es un comando largo, solo voy a copiarlo basado. Así que básicamente, aquí estamos usando Moca merge que fusionará todo con la extensión hijo, y crearemos un archivo grande que se llamará merge report Jason Entonces ejecutemos ese comando, y esperemos un poco. Aquí podemos observar que tenemos un archivo de informe de fusión grande. Y aquí tenemos un resumen 22 trajes, 136 pruebas, cuántas mejores, fallan o doblan, y así sucesivamente. El siguiente paso es generar a partir de ese gran archivo Json, h TML, gran reporte Entonces aquí también hay un comando muy largo. Yo sólo voy a copiar, pegarlo y ponerlo aquí. Vamos a ejecutarlo. Entonces tenemos reporte guardado y el camino a ese reporte. Entonces aquí tenemos una nueva carpeta, fusionar informe HTML, y aquí está nuestro informe. Vamos a revelarlo en Finder y abrirlo. Así que vamos a abrirla. Sí. Aquí está nuestro gran archivo de reporte , y tiene muchos filtros. Podemos mostrar solo post o solo podemos mostrar fallidos, muchos filtros, podemos filtrar por traje por nombre de prueba, y así sucesivamente. También, a partir de aquí, podemos ordenarlos. Y para el fallido, podemos observar el mensaje de error. Además, podemos agregar capturas de pantalla si las tenemos dentro de nuestra prueba. Entonces, básicamente, así es como debería verse un gran informe al final. Ahora vamos a resumir lo que agregamos aquí. Entonces, en primer lugar, instalamos la canción de Moca. Después de eso, agregamos muchas opciones para ese reportero. El siguiente paso es ejecutar las pruebas desde la terminal. Después de eso, tenemos muchos informes más pequeños. El siguiente paso es fusionar todos estos reportes archivos Json en un Json grande. Y el último es a partir de ese archivo Json, deberíamos generar un gran archivo hash de correo electrónico. Sé que todos estos comandos son muy largos y es difícil escribirlos. Pero en la siguiente lección, les mostraré cómo podemos facilitar la generación de informes, nos vemos ahí. 21. 21. Adición y configuración de scripts personalizados en Cypress.: Hola, y bienvenidos de nuevo. En la lección anterior, aprendimos a agregar un reporte de Cypress para nuestra prueba Y en la lección de hoy, aprendemos cómo hacerlo más fácil y cómo hacer nuestra vida como prueba más fácil a la hora de generar reportes. Entonces voy a borrar estas carpetas esa porque es una grande y lleva mucho tiempo ejecutarse, y pronto iré a la configuración de Cypress Primero, entendamos qué es un guión en nuestro contexto. Cuando estamos ejecutando nuestra prueba de Cypress desde la terminal, estamos ejecutando un script Entonces en ese caso, intentemos ejecutar la carrera MPX Cypress Y por defecto, Cypress utilizará el navegador Electron. Pero si queremos usar cierto navegador, podemos usar la opción PZ, y podemos darle desde y además tenemos una opción encabezada Esa opción nos mostrará el proceso de correr. Entonces intentemos ejecutar nuestras pruebas. Aquí tenemos toda esta información, y aquí observamos todas estas pruebas. Es parte de la prueba por defecto y parte de nuestras pruebas. Ahora bien, cómo podemos agregar estos scripts en nuestro sabor. Básicamente, agregaremos todos estos comandos que usamos en terminal en lección anterior en un formato más sencillo. Vamos a ir a nuestro paquete archivo Json, y aquí dentro dentro de la opción de scripts, podemos agregar nuestros scripts personales. Entonces para el script anterior que usamos para ejecutar la prueba desde el terminal y con navegador, podemos agregarlo aquí. Corre de aquí a otro lado y podemos Bien, así que todo está terminado Corre. Y aquí podemos tener nuestro guión. En realidad fue MPX, Cypress corre, hay sujetador y n y también se dirigió Ahora bien, si queremos llamar para ejecutar este script, solo podemos ejecutar MPM run y el nombre de nuestro script Entonces ahora aquí tenemos el MP E Cypress Run. Tenemos el texto de que estamos ejecutando ese guión. Es decir, si tenemos un comando largo y complicado, podemos guardarlo aquí y darle un nombre. Y después de eso, cuando queremos ejecutarlo, simplemente lo llamamos por su nombre y se ejecutará todo el comando. Entonces eso es más sencillo. Entonces déjame dejarlo todo aquí. Entonces agregaré aquí los comandos para generar la captura de pantalla para administrar los archivos hijo en un archivo grande, y para generar un reporte hushmil Aquí agregué nuestro comando big long que es fusionar todos los archivos ison en un archivo big merge son Y el siguiente es generar un reporte ushmail a partir de este gran reporte de fusión hijo Así que ahora intentemos ejecutar todo desde la terminal usando scripts. El primero será MPM run y nuestro script nail. Así que vamos a correr, y esperemos los resultados. Bien, entonces aquí tenemos nuestros resultados. Hemos fallado la prueba, y tenemos prueba de ruta. Después de correr, podemos observar que en nuestro archivo de informes, tenemos todos estos pequeños informes. Entonces, el siguiente paso después de correr es manejar nuestros gisons en un gran ison Entonces voy a copiar el nombre de nuestro guión, es uno muy largo. Yo lo ejecutaré. Déjame claro MPM correr, y nuestro nombre. Y aquí observamos que ejecutamos todo este guión largo llamándolo por su nombre. Y en nuestra carpeta de informes, hemos fusionado informes sobre el pequeño. El último paso es generar un reporte de correo electrónico de silencio a partir del reporte Json Ronda MPM y nombre. También aquí observamos lo que ejecutamos y tenemos nuestro informe. Ahora bien, si vamos a ir aquí y revelar en buscador, revelar en Finder. Aquí tenemos nuestro reporte con todos los resultados y todo en su lugar. Entonces vamos a resumir lo que hicimos en la lección de hoy. Primero, un script es comando al que se le da un nombre, y después de eso, solo estamos llamando al comando por su nombre, y es mucho más fácil guardar el comando aquí mismo, si es largo y estamos usando el comando mucho tiempo muy a menudo. Entonces hemos agregado el nombre, el comando, y después de eso, simplemente estamos llamando al comando desde la terminal. Así que no te preocupes por el código. Añadiré el link al repositorio Github con todo, todos los comandos, y todo desde todo el framework al inicio del curso. Entonces nos vemos en la siguiente lección. 22. 22. Resumen.: Hola, bienvenido de nuevo. Resumamos nuestra creación de marco y nuestro proceso Al principio, creamos nuestro paquete recién archivado ejecutando en nuestra terminal, el MDM común en él Aquí, almacenamos nuestra dependencia y nuestros scripts y toda la información, los metadatos sobre el framework como la descripción de la versión, y podemos agregar aquí muchas otras opciones. Después de eso, instalamos Chipre y abrimos Chipre por primera vez. Después de abrir el Chipre por primera vez, tenemos esta estructura por defecto, esta carpeta Cypress, Dwards end to yend donde tenemos pruebas de ciprés por defecto Y también aquí agregamos una carpeta lateral de demostración sos, agregamos nuestra suite de pruebas. Aparte de fixture, tenemos muchos ejemplos, pero no los usamos. La siguiente carpeta es support donde creamos el objeto page. Carpeta con dos archivos, un archivo por página web. Entonces, para la página de inicio de sesión, un archivo para la página del producto, otro archivo. Dentro de cada archivo de objeto de página, creamos una clase con nuestro selector CSS y acción disponible donde los métodos que podemos usar con estos selectores En la carpeta Commons en archivo Commons, agregamos un método global que se puede usar en todos los archivos encadenados por CI CI global Object En nuestro caso, creamos Login y los usamos creo en prueba de productos. Sí, utilizamos los métodos globales. Otro paso muy importante en nuestro framework cation y configuración fue el proceso de agregar nuestro reporte, que agregamos por lo instalamos, y después de eso, configuramos ese framework dentro las configs de Chipre con muchas opciones y parámetros Y el último paso fue agregar los scripts que agregamos nuestro script para ejecutar la prueba para administrar los resultados, y para generar el hermoso informe. Entonces eso era todo lo que necesitas saber para poder crear tu propio framework de Chipre que se pueda usar en aplicaciones de palabras reales. Espero que lo hayan disfrutado. Nos vemos en la siguiente lección.