
Cómo es la estructura del curso y mi manera de enseñar?
En algún momento del curso seguramente te surja una duda. En este video te explico rápido cuál es la mejor manera de hacer tus preguntas en el curso.
Con los años he observado distintos tipos de predisposición a aprender. En este video te recomiendo, muy rápido, la mentalidad que te va a llevar adelante para aprender y, en definitiva, para progresar en tu carrera.
Las tecnologías cambian de versión y, con esto, a veces cambian sus interfaces y manejo. La versión previa a la número 10 de Cypress tenía sus diferencias con la versión 10. Es por eso que en este video te aconsejo qué versión usar para arrancar.
Por qué está ganando tanto terreno? Hay demanda laboral? Por qué aprender Cypress hoy es una gran idea?
Cypress plantea diferencias conceptuales a cómo se hace automation. Vamos a hablar de ellas.
Cypress presenta numerosos beneficios frente a otras herramientas como Selenium, vamos a ver cuáles!
Tantas ventajas tienen que tener alguna desventaja... no todo es color de rosa y en esta clase vamos a ver por qué!
Java...JavaScript... me ha tocado ver entrevistados ser rechazados por creer que están relacionados. En esta clase vas a aprender la relación que tienen (no es la que pensabas!)
Venís de Java, C#, Python? Te vas a encontrar que JS es un mundo algo diferente. Repasemos lo necesario para empezar el curso!
Primera instalación necesaria: Node y su opción para manejo de paquetes: npm.
Cypress y un recorrido por la UI que nos ofrece.
Usar VSCode con Cypress es muy sencillo y en esta clase lo vemos.
Cómo se ve un Test en Cypress y qué lo compone?
Cómo ejecutar tests en distintos browsers con Cypress.
Durante su instalación, Cypress nos crea un esqueleto de proyecto con el que podemos empezar ya a trabajar. Veamos qué incluye y para qué es cada directorio.
La manera más sencilla que nos ofrece Cypress de dar con los locators. Listos para usar en nuestro código!
Qué tipo de locators acepta Cypress y por qué?
Una pequeña trampa para los que prefieran usar xpath como locator.
Otra manera de encontrar locators, basándonos en su texto en lugar de CSS selectors.
Las librerías para realizar assertions (validaciones) con cypress y qué tipo de validaciones podemos hacer.
Las herramientas que Cypress nos da para ayudarnos en nuestro desarrollo de tests automatizados.
el comando cy.get(), cómo funciona y ejemplos prácticos.
Un pariente cercano de cy.get(), el comando cy.find(). Cuándo usarlo? Ejemplos prácticos.
Excelentes opciones que Cypress nos da para encadenar al get y ubicar elementos por posición y otras relaciones.
Una demostración y explicación de los comandos más usados para UI, cómo y cuándo usarlos.
Ahondando en las capacidades brindadas por mocha y chai para validar.
Uno de los pilares fundamentales de Cypress, las promesas: Qué son?
Cómo trabajamos con las promesas? Cómo usarlas a nuestro favor?
Una de las grandes dificultades cuando se comienza a automatizar: Cómo obtener y escribir valores en tablas estáticas y dinámicas?
jQuery y cómo nos ayuda junto a Cypress.
Un comando experimental que vale la pena aprender: Session. Para qué es y cómo usarlo?
Obtener, definir y manejar cookies en general en esta clase! Para qué y cuándo usar estos comandos?
Cómo realizar GET requests a APIs con Cypress? Ejemplos de cómo y cuándo usarlo.
Cómo realizar POST requests a APIs con Cypress? Ejemplos de cómo y cuándo usarlo.
Cómo realizar PUT requests a APIs con Cypress? Ejemplos de cómo y cuándo usarlo.
Cómo realizar DELETE requests a APIs con Cypress? Ejemplos de cómo y cuándo usarlo.
Un comando relativamente nuevo y muy interesante: cy.intercept(). Cómo y cuándo usarlo.
Acelerando nuestros logins usando lo aprendido y fogueando a través de la API en lugar de la UI. E2E Testing en todo su esplendor!
Otra gran utilidad: dB Seeding para dejar la aplicación lista para ser testeada bajo nuestros términos.
Dónde guardar la data y cómo acceder a ella en Cypress?
Un solo test, varias ejecuciones con distinta data. Cómo lo hacemos?
Por qué Cypress recomienda NO usar el Page Object Model? Por qué yo pienso que SI deberías usarlo...
Explicando la manera de trabajar con las mejores prácticas sugeridas por Cypress y anuncio de Cypress 10: Actualizamos nuestra versión y vemos qué cambió.
Un comando reutilizable para manejar iFrames.
Un comando personalizado para manejar el login en un solo lugar.
El dashboard en la nube de Cypress. Qué ofrecen? Es para todo el mundo? Cómo conectamos nuestro proyecto?
Cómo y dónde se guardan los videos de las ejecuciones de Cypress?
Tu equipo no puede usar el Dashboard por motivos de seguridad o confidencialidad de la empresa? No importa! En esta clase aprendemos a generar reportes HTML con Mochawesome.
Una elegante manera de implementar Page Object Model con Cypress. Tan sencillo y con mucha mejor legibilidad!
Un framework que podés implementar super rápido, pero que requiere ciertos conocimientos para usarlo con eficiencia. En este curso vamos a ir de cero a avanzado para que, al terminar, tengas lo necesario para practicar y obtener ese tan ansiado trabajo o para que bien lo implementes en tu proyecto y sorprendas a todos con tus conocimientos!
Vamos a analizar en profundidad sus comandos, cómo configurarlo y cómo hacer un uso más eficiente que el que nos propone la mismísima herramienta. Vamos a entender el por qué de sus limitaciones, superarlas y comprender qué técnicas estamos usando para hacer de Cypress una herramienta de Automation ideal para tu equipo, empresa o curriculum!
Algunos puntos antes de empezar:
Component Testing va a ser sumado al curso una vez pase de ser un feature experimental a algo oficial (seguramente sufra muchos cambios hasta su implementación oficial).
BDD no fue incluido. Esto es porque considero que Cypress NO es la herramienta ideal ya que tenemos que deshacer muchas de las ventajas que nos da para poder implementarlo. Si la comunidad lo pide, lo agrego!
A medida que los alumnos me envíen desafíos que les manden en entrevistas, voy a ir completándolos y agregándolos en una sección al final llamada "Ejercicios de Entrevista". Espero esos desafíos!