Esta es una prueba automatizada, tal vez se esté ejecutando como parte de CI o algo así. Realmente no tenías control sobre dónde el cursor había aterrizado y, por lo tanto, ahora tu implementación está bloqueada, no es lo que quieres.
Aquí hay otro, ¿quién puede ver por qué falló este? Sí, debido a ese cursor detrás de la palabra `malo`. Los cursores parpadean. Entonces, si sucede tomar la captura de pantalla cuando el cursor está sólido y luego sucede tomar una captura de pantalla de regresión cuando no lo está, eso también puede causar un fallo.
No quieres que tus implementaciones se bloqueen por esto y tener que investigar por qué sucedió, tampoco quieres escribir código de automatización que intente evitar este tipo de cosas, ¿verdad? Afortunadamente, Applitools ha desarrollado un mejor enfoque para hacer esto utilizando el aprendizaje automático. Así que imita el ojo humano y el cerebro y es capaz de resaltar y detectar solo lo que importa en la prueba.
Tengo otro juego aquí. Todos ustedes no pueden jugar porque dejaron que el hombre muerto caminara en el primer juego. Pero en este, lo ejecuté a través de la comparación píxel a píxel y lo ejecuté a través del algoritmo de aprendizaje automático de Applitools para ver, ¿cuál es la diferencia y cómo lo detecta. Y este es el que usa la comparación píxel a píxel, nota que todo está resaltado aquí, como cada pequeño cambio de desplazamiento blanco, no está destinado a las pruebas. En comparación con cuando lo ejecuté a través del algoritmo de Applitools, resaltó las cosas que yo como ser humano habría resaltado, ¿verdad?
Entonces, bien, agreguemos esto a una prueba, una prueba existente. Aquí está nuestra aplicación en la prueba, una aplicación de una sola página, muy simple, ocho de mis libros favoritos sobre automatización de pruebas. Ingresas algún texto en ese campo y eso filtrará los libros, así que solo se mostrarán los que tengan `pruebas` en el título, ¿de acuerdo? Entonces aquí está la prueba para hacer esto. Esto está escrito en Cypress con JavaScript, pero Applitools tiene SDK para todas las diferentes herramientas de automatización y todos los diferentes lenguajes de programación. Entonces, si usas algo diferente, bien por ti, pero esto es JSConf, ¿verdad?
Entonces, bien, esto es Cypress JavaScript. Estamos consultando la palabra `prueba`. Esperamos que vuelvan estos cinco libros. Ingresamos eso en el campo, y luego tenemos dos validaciones aquí. Una valida que el número de libros que son visibles sea el mismo que el que esperamos, y cada uno de esos títulos que está en el array de libros esperados realmente sea visible, ¿de acuerdo?
Genial, ahora me pongo un poco loco con el CSS y quiero agregar un efecto de rebote, pero realmente no sé lo que estoy haciendo, pero está bien porque tengo pruebas, lo que significa que puedo hacer lo que quiera. Así que agrego la línea seis aquí a este CSS y lo confirmo, ¿verdad? Mi prueba me avisará si algo está mal. Nuevamente, aquí está mi prueba, mírala detenidamente. Y así es como se ve la aplicación con ese nuevo CSS. ¿Atrapará mi prueba esto? Veamos. Ejecuto esto con Cypress nuevamente, nota todo el verde aquí. No hay rojo, a pesar de que literalmente he volteado mi aplicación al revés. Ese es el problema. Por eso necesitamos pruebas visuales.
Entonces, ¿cómo lo agregamos? Muy simple. Tres líneas de código, casi como poesía, ¿verdad? A partir de la línea tres, usamos la API de Applitools y se integra muy bien con Cypress.
Comments