y valida la user experience. Por lo tanto, realiza acciones como clics y entrada de texto que un usuario haría y te permite validar que la aplicación en su conjunto se comporta como se esperaba. Y en mi experiencia escribiendo estas pruebas como desarrollador, terminamos usando Cypress cuando usábamos Protractor para Angular, que afortunadamente ya no existe.
La otra cosa es el monitoreo sintético, que es más del lado de las cosas de SRE. Y el monitoreo sintético se refiere a la capacidad de, en un horario regular, ejecutar scripts contra una aplicación en particular para validar que está activa y viva. Y esto puede ser tan simple como un simple ping en un endpoint para asegurarse de que un servicio de salud está activo hasta algo tan complicado como simular clics de usuario y acción para asegurarse de que la aplicación es receptiva para los usuarios que van a entrar y usar la aplicación. Y probablemente ya has adivinado lo que es común entre ambas cosas es, de hecho, la perspectiva del usuario.
Pero estas cosas a menudo son construidas por diferentes audiencias, desarrolladores y testers, en comparación con SREs e individuos de gestión de producción. Y siempre usan diferentes herramientas también. Entonces, en mi último compromiso en el banco, usé Cypress para N10 testing, pero mis colegas que estaban escribiendo monitores estaban usando un tester PICA y Zebra. Y la realidad es que, si queremos unirnos y tratar de trabajar juntos para hacer sistemas más mantenibles, más confiables, y también compartir el camino cuando se trata de escribir estas automatizaciones, necesitamos usar un conjunto de herramientas común que todos podamos entender.
Y voy a pasar por un ejemplo, que puedes comprobar el código QR para echar un vistazo después si quieres, utilizando Playwrights, que es un marco de testing y automation de extremo a extremo mantenido por Microsoft, GitHub Actions para CI, y Elastic Synthetics para mostrar cómo una combinación de estas tecnologías puede permitirnos usar los mismos scripts como una prueba de extremo a extremo y desarrollo local en CI, y luego de nuevo como un monitor en producción. La forma en que estas herramientas interactúan es similar al flujo que tengo aquí. Así que sacando mi ratón, lo que verás es que tenemos un proyecto usando Elastic Synthetics y archivos de viaje TypeScript, que tienen interacciones de Playwright dentro de ellos. Y estos se sientan junto a esos monitores de latido vainilla, que se especifican en YAML. Y una de las grandes ventajas es que, esto efectivamente nos da monitores como código. Tenemos configuración en un repositorio, en lugar de tenerla configurada manualmente en una plataforma de UI y observability. Así que podemos ejecutar estos localmente contra una versión de la aplicación web para ver que todo está funcionando como se esperaba cuando construimos características. Y luego podemos subirlos al control de fuente, levantar ese PR, y luego ejecutarlos como pruebas de extremo a extremo para validar en la posible fusión que todo está funcionando como esperamos. Luego, cuando desplegamos nuestra aplicación al mismo tiempo, vamos a tomar esos mismos viajes, esos monitores, esas pruebas, y vamos a usar la autenticación de clave de API para empujarlos a la ubicación en la que vamos a ejecutarlos, y luego van a hacer ping contra la aplicación web de producción en su lugar, y luego procesar los resultados en la plataforma de observability para que podamos ver qué está pasando. Así que vamos a profundizar en un ejemplo, ¿deberíamos?. Así que esta es una prueba de Playwright vainilla que he escrito sólo para mostrar cómo funciona Playwright por sí solo antes de intentar integrar Elastic Synthetics juntos. Así que verás que estoy usando Playwright tests así que lo tengo instalado dentro de mi proyecto de aplicación web, y verás aquí que lo que estoy haciendo es que tengo dos pruebas, tengo una donde me estoy moviendo a la página de orden en esta pequeña aplicación de comercio electrónico que he construido, y tengo otra donde estoy añadiendo un artículo a la orden. Así que puedo usar el objeto de página dentro de Playwright para navegar, por ejemplo, yendo a la página de inicio, puedo usar varios localizadores para sacar los elementos particulares en la página que quiero. Así que por ejemplo aquí estoy sacando de forma asíncrona el botón de orden usando el atajo de get by test ID. Es importante notar que esto significa que he separado mi estilo y todos esos otros cambios de la lógica que saca mis elementos porque en esta ocasión en particular estoy usando el atributo data test ID que yo recomendaría que hagas también si aún no lo haces. Así que entonces puedo hacer clic en ese botón, puedo comprobar que he navegado a la página de orden como se esperaba y también puedo sacar todas las tarjetas de menú de artículo para ver que tengo algunas de esas. Y luego en mi añadir orden estoy yendo a la página de orden en su lugar. Estoy sacando todos los botones de añadir artículo de mis tarjetas de menú, comprobando que tengo algunos de ellos de nuevo y luego estoy obteniendo la etiqueta de conteo de carrito y luego estoy comprobando con los clics de los botones individuales de añadir artículo que este valor en particular está incrementando cada vez. Es una prueba relativamente sencilla. Así que
Comments