Depuración en vivo de pruebas de extremo a extremo para una aplicación serverless distribuida

Rate this content
Bookmark

En este masterclass, construiremos un entorno de pruebas para una aplicación preconstruida, luego escribiremos y automatizaremos pruebas de extremo a extremo para nuestra aplicación serverless. Y en el último paso, demostraremos lo fácil que es entender la causa raíz de una prueba errónea utilizando pruebas distribuidas y cómo depurarla en nuestro pipeline de CI/CD con Thundra Foresight.

Tabla de contenidos:
- Cómo configurar y probar tu infraestructura en la nube
- Cómo escribir y automatizar pruebas de extremo a extremo para tus cargas de trabajo serverless
- Cómo depurar, rastrear y solucionar problemas de fallas en las pruebas con Thundra Foresight en tus pipelines de CI/CD

This workshop has been presented at TestJS Summit 2021, check out the latest edition of this JavaScript Conference.

FAQ

Tundra es una solución de rastreo y depuración para aplicaciones, pruebas y flujos de trabajo. Se puede utilizar en varios entornos desde el desarrollo hasta la producción, en plataformas como AWS Lambda, Docker, Kubernetes y VM. Además, Tundra es compatible con muchos entornos de cloud como AWS, Azure y Google Cloud.

Los productos principales de Tundra incluyen Tundra Foresight, Tundra APM y Tundra Scikit. Tundra Foresight ayuda en la monitorización de compilaciones de CI-CD, Tundra APM facilita el rastreo y depuración de microservicios y aplicaciones, y Tundra Scikit permite depurar aplicaciones en el entorno de producción.

Tundra Foresight permite monitorear las métricas de ejecución y las pruebas, identificar cuellos de botella en el proceso de CI, y optimizar los tiempos de compilación. También facilita la depuración de pruebas de extremo a extremo mediante la grabación de la ejecución prueba línea por línea.

Tundra soporta integraciones con los proveedores de CI más populares como GitHub, GitLab y Jenkins. También está integrado con muchos entornos de ejecución como Java, NodeJS y Python, y marcos como Express y Spring, facilitando una depuración enriquecida y capacidades de rastreo avanzadas.

Tundra APM ayuda a los desarrolladores a rastrear cómo interactúan sus aplicaciones con bases de datos, servicios en la nube y APIs de terceros. Permite identificar problemas en el flujo de negocio rastreando transacciones de principio a fin para encontrar componentes problemáticos.

Tundra Scikit permite a los desarrolladores depurar sus aplicaciones en el entorno real, contra servicios y datos reales, a través de puntos de rastreo. Esto elimina la necesidad de reproducir problemas localmente, permitiendo la depuración directamente en el entorno de producción.

Con la función de depuración de viaje en el tiempo de Tundra Foresight, los desarrolladores pueden grabar la ejecución de las pruebas y tomar capturas de pantalla de los estados de las variables. Esto permite reproducir y depurar la ejecución problemática sin necesidad de reproducir el fallo en un entorno local.

Serkan Ozal
Serkan Ozal
Oguzhan Ozdemir
Oguzhan Ozdemir
146 min
15 Nov, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Tundra es una solución de trazado y depuración para aplicaciones, pruebas, pipelines de CI y flujos de trabajo. Ofrece productos como Tundra Foresight para monitorear compilaciones de CI/CD y Tundra APM para trazar y depurar microservicios. Tundra proporciona trazado distribuido, depuración de viaje en el tiempo y soporte de ingeniería de caos. Ayuda a solucionar problemas de fallas en las pruebas, identificar y corregir errores y simular posibles fallas en producción. Tundra admite los entornos de ejecución de Java, JavaScript y Python, e se integra con proveedores populares de CI.

1. Introducción a Tundra y sus Productos

Short description:

Gracias por unirse a nuestro masterclass. Hoy hablaremos sobre Tundra y sus productos. Tundra es una solución de rastreo y depuración para aplicaciones, pruebas, canalizaciones de CI y flujos de trabajo. Puede ser utilizado en diversos entornos y está integrado con proveedores de CI populares. Tundra Foresight es el producto principal, que permite monitorear y solucionar problemas en las compilaciones de CI-CD. Tundra APM ayuda a rastrear y depurar microservicios y aplicaciones de servicio en cualquier plataforma. El rastreo distribuido es crucial para monitorear microservicios.

Gracias por unirse a nuestro masterclass, espero que le resulte útil. Permítanme presentarme primero. Soy Serkan, CTO de Tandra, cofundador y coautor de Throughout M. Las aplicaciones modernas en la nube, incluidas las aplicaciones de servicio, y las canalizaciones de CI. Y tengo el honor de ser reconocido y nominado como CTO de Servidores de AWS, y también como coorganizador del encuentro Cloud OnService Turkey. Y formé parte del equipo que organizó muchos eventos centrados en AWS, tanto nacionales como internacionales, en Turquía. He estado trabajando e investigando activamente en la era de los servidores durante cinco años. Y les doy nuevamente la bienvenida a todos y le paso el micrófono a Ilker para que se presente.

Gracias Serkan. Soy Ilker. Trabajo como ingeniero de front-end en Tundra desde hace tres años. Sí, Ozan, puedes continuar.

Gracias Ilker. Soy Ozan. Soy el ingeniero de soluciones en Tundra.

De acuerdo, gracias Ozan. De acuerdo, comencemos con la parte aburrida antes de comenzar la parte práctica de nuestro masterclass. Permítanme hablar un poco sobre la agenda de hoy. Hoy, en primer lugar, hablaremos sobre Tundra en general sin tomar demasiado tiempo, por supuesto. Hablaremos sobre qué tipo de producto es Tundra y qué problemas ofrece soluciones. Y luego hablaremos sobre cómo podemos escribir pruebas de extremo a extremo para aplicaciones de servicio y cómo podemos automatizarlo. Luego pasaremos a la parte divertida del masterclass y veremos cómo podemos debug y rastrear las fallas en nuestras pruebas de extremo a extremo utilizando Tundra a través de diferentes ejemplos, fallas de prueba y casos de uso.

En primer lugar, me gustaría presentar brevemente Tundra. Básicamente, Tundra es una solución de rastreo y depuración para aplicaciones, pruebas, canalizaciones de CI y flujos de trabajo. Esto significa que los desarrolladores, probadores e ingenieros de control de calidad pueden utilizar Tundra en muchos entornos diferentes desde el desarrollo hasta la producción, como durante el desarrollo local mediante la integración con su IDE, y CI, CD para las solicitudes de extracción y las canalizaciones de compilación y lanzamiento, y en el entorno de preparación antes de pasar a producción, y luego en producción, por supuesto. Además, Tundra es agnóstico a la plataforma, lo que significa que puede utilizar Tundra tanto en entornos de servicio, como AWS Lambda, como en entornos no relacionados con el servicio, como Docker, Kubernetes y VM, y así sucesivamente, y en muchos entornos de cloud, como AWS, Azure y Google Cloud, y Tundra también está integrado con los proveedores de CI más populares, como GitHub, GitLab, CircleCI y BitBucket, Jenkins, TeamCity y muchos otros están por venir. Y también el otro buen punto, con Tundra, es que aún puede usar Tundra, en su entorno local donde está desarrollando en su IDE. Por lo tanto, no necesita usar Tundra en el entorno remoto. Aún puede usar Tundra con las mismas capacidades en su propio entorno local. Su entorno de desarrollo. Y además de eso, Tundra está integrado con muchos entornos de ejecución populares, incluyendo Java, NodeJS, Python, Go y.NET, y con muchos frameworks web como Express, Quo y Happy para JavaScript y NodeJS, y Spring para Java, y Flask, Tornado, FastAPI para Python, y Asafi.NET para.NET, y así sucesivamente para proporcionar una depuración en profundidad y capacidades de rastreo enriquecidas.

OK, entonces Tandra básicamente tiene tres productos principales integrados entre sí. El primero es Tandra Foresight, que es el producto que vamos a utilizar principalmente hoy en nuestro masterclass, y con Tandra Foresight, puede monitorear sus compilaciones de CI-CD desde un solo lugar. Al encontrar los cuellos de botella en su proceso de CI y optimizar los tiempos de CI, puede reducir el costo de su CI y el tiempo para llegar a producción con confianza. Y además, al monitorear las pruebas y las métricas de ejecución, puede seguir históricamente las fallas y los problemas de rendimiento en sus pruebas. Además, la característica más importante es que puede solucionar problemas fácilmente rastreando y depurando el flujo distribuido entre sus pruebas y las aplicaciones en su prueba de extremo a extremo. E incluso con nuestra función de depuración de viaje en el tiempo, puede grabar la ejecución de su prueba línea por línea y tomar capturas de pantalla durante la ejecución. Con capturas de pantalla, me refiero a que puede tomar capturas de pantalla de las variables locales, argumentos y valores de retorno, y las propiedades de los objetos, y así sucesivamente, y luego puede reproducir la ejecución problemática de la prueba y debug sin tener que reproducir el problema, reproducir el problema de la prueba en su entorno local. A veces no es factible o muy difícil reproducir la misma falla de prueba en local debido a muchas razones como tener el mismo estado, el mismo estado de la base de datos o el mismo estado de la aplicación. Por lo tanto, es muy importante poder debug la falla en el entorno real, en el entorno objetivo. Y Tundra Foresight puede funcionar en integración con muchas herramientas de CI y frameworks de prueba. Actualmente, tenemos integración con GitHub, GitLab, Bitbucket, Travis CI, Circle CI y otras canalizaciones. Jenkins, TeamCity y herramientas de CI, y también estamos expandiendo nuestra integración con el ecosistema de CI de acuerdo con las solicitudes futuras de nuestros clientes y usuarios. Y en este momento, Node.js, JavaScript y los entornos de ejecución de Java son compatibles con las integraciones de JSJ y las unidades celulares. Por otro lado, las integraciones de Cypress y el motor de prueba están en camino para JavaScript y los entornos de ejecución de Java. Y también se planea lanzar el soporte de Python Runtime a través de PyTest a finales de este mes. Esto significa que los usuarios de Python también pueden usar Sundra Foresight y mejorar los procesos de prueba y CI al tener todas las características geniales proporcionadas para otros entornos de ejecución de los que hablaremos hoy. Y luego permítanme comenzar con nuestro segundo producto principal. De acuerdo, entonces el segundo producto principal es Sundra APM, que ayuda a los desarrolladores a rastrear y debug sus microservicios y aplicaciones de servicio que se ejecutan en cualquier plataforma, como Docker, Kubernetes, VM, AWS, Lambda, Fargate, e incluso en local, y así sucesivamente. Y especialmente con el auge de los microservicios, el rastreo distribuido se ha convertido en una parte muy importante del proceso de monitoreo.

Read also

2. Introducción a Sundra APM y Tandra Scikit

Short description:

Los desarrolladores pueden utilizar Sundra APM para comprender cómo interactúan sus aplicaciones con varios componentes. Tandra Scikit permite depurar aplicaciones en el entorno objetivo, incluyendo producción. Elimina la necesidad de puntos de interrupción e introduce puntos de rastreo.

Y con Sundra APM, los desarrolladores pueden tener una idea de cómo interactúan sus aplicaciones entre sí, con las bases de datos, servicios en la nube, APIs de terceros, y más. Entonces, cuando hay un problema en el flujo de negocio, los desarrolladores pueden rastrear y depurar toda la transacción de principio a fin para identificar problemas, encontrar el componente problemático o el microservicio problemático. Y, por supuesto, Sundra APM y el sitio Forsythe están profundamente integrados entre sí, por lo que los desarrolladores pueden rastrear todo el flujo en sus pruebas de extremo a extremo fácilmente y pasar a producción con confianza. Y permítanme continuar con nuestro último producto, nuestro tercer producto, Tandra Scikit. Nuestro tercer producto principal es Tandra Scikit, que permite a los desarrolladores depurar sus aplicaciones en el entorno objetivo e incluso en producción, no solo localmente. La motivación es que a veces es difícil reproducir el problema localmente debido a muchas razones. Por lo tanto, creemos que los desarrolladores deberían poder depurar sus aplicaciones en el entorno real, contra servicios y datos reales, no simulados. En este contexto, Tandra Scikit permite a los desarrolladores depurar sus aplicaciones sin detenerse en el punto de interrupción. Por lo tanto, tenemos un nuevo término llamado punto de rastreo, que permite a los desarrolladores depurar sus aplicaciones en el entorno real sin pasar por el punto de interrupción. Y creo que eso es suficiente para la introducción.

Watch more workshops on topic

Masterclass de Depuración de Rendimiento de React
React Summit 2023React Summit 2023
170 min
Masterclass de Depuración de Rendimiento de React
Top Content
Featured WorkshopFree
Ivan Akulov
Ivan Akulov
Los primeros intentos de Ivan en la depuración de rendimiento fueron caóticos. Vería una interacción lenta, intentaría una optimización aleatoria, vería que no ayudaba, y seguiría intentando otras optimizaciones hasta que encontraba la correcta (o se rendía).
En aquel entonces, Ivan no sabía cómo usar bien las herramientas de rendimiento. Haría una grabación en Chrome DevTools o React Profiler, la examinaría, intentaría hacer clic en cosas aleatorias, y luego la cerraría frustrado unos minutos después. Ahora, Ivan sabe exactamente dónde y qué buscar. Y en esta masterclass, Ivan te enseñará eso también.
Así es como va a funcionar. Tomaremos una aplicación lenta → la depuraremos (usando herramientas como Chrome DevTools, React Profiler, y why-did-you-render) → identificaremos el cuello de botella → y luego repetiremos, varias veces más. No hablaremos de las soluciones (en el 90% de los casos, es simplemente el viejo y regular useMemo() o memo()). Pero hablaremos de todo lo que viene antes - y aprenderemos a analizar cualquier problema de rendimiento de React, paso a paso.
(Nota: Esta masterclass es más adecuada para ingenieros que ya están familiarizados con cómo funcionan useMemo() y memo() - pero quieren mejorar en el uso de las herramientas de rendimiento alrededor de React. Además, estaremos cubriendo el rendimiento de la interacción, no la velocidad de carga, por lo que no escucharás una palabra sobre Lighthouse 🤐)
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
React Summit 2023React Summit 2023
151 min
Diseñando Pruebas Efectivas con la Biblioteca de Pruebas de React
Top Content
Featured Workshop
Josh Justice
Josh Justice
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()?
En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor.
Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos
Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
IA a demanda: IA sin servidor
DevOps.js Conf 2024DevOps.js Conf 2024
163 min
IA a demanda: IA sin servidor
Top Content
Featured WorkshopFree
Nathan Disidore
Nathan Disidore
En esta masterclass, discutimos los méritos de la arquitectura sin servidor y cómo se puede aplicar al espacio de la IA. Exploraremos opciones para construir aplicaciones RAG sin servidor para un enfoque más lambda-esque a la IA. A continuación, nos pondremos manos a la obra y construiremos una aplicación CRUD de muestra que te permite almacenar información y consultarla utilizando un LLM con Workers AI, Vectorize, D1 y Cloudflare Workers.
Cómo empezar con Cypress
TestJS Summit 2022TestJS Summit 2022
146 min
Cómo empezar con Cypress
Featured WorkshopFree
Filip Hric
Filip Hric
La web ha evolucionado. Finalmente, también lo ha hecho el testing. Cypress es una herramienta de testing moderna que responde a las necesidades de testing de las aplicaciones web modernas. Ha ganado mucha popularidad en los últimos años, obteniendo reconocimiento a nivel mundial. Si has estado esperando aprender Cypress, ¡no esperes más! Filip Hric te guiará a través de los primeros pasos sobre cómo empezar a usar Cypress y configurar tu propio proyecto. La buena noticia es que aprender Cypress es increíblemente fácil. Escribirás tu primer test en poco tiempo y luego descubrirás cómo escribir un test de extremo a extremo completo para una aplicación web moderna. Aprenderás conceptos fundamentales como la capacidad de reintentar. Descubre cómo trabajar e interactuar con tu aplicación y aprende cómo combinar pruebas de API y de UI. A lo largo de todo este masterclass, escribiremos código y realizaremos ejercicios prácticos. Saldrás con una experiencia práctica que podrás aplicar a tu propio proyecto.
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
React Summit 2022React Summit 2022
117 min
Detox 101: Cómo escribir pruebas de extremo a extremo estables para su aplicación React Native
Top Content
WorkshopFree
Yevheniia Hlovatska
Yevheniia Hlovatska
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles.
Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador.
Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E.
Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes.
Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
Masterclass de Pruebas de API con Postman
TestJS Summit 2023TestJS Summit 2023
48 min
Masterclass de Pruebas de API con Postman
Top Content
WorkshopFree
Pooja Mistry
Pooja Mistry
En el panorama siempre en evolución del desarrollo de software, garantizar la fiabilidad y funcionalidad de las API se ha vuelto primordial. "Pruebas de API con Postman" es una masterclass completa diseñada para equipar a los participantes con los conocimientos y habilidades necesarios para sobresalir en las pruebas de API utilizando Postman, una herramienta poderosa ampliamente adoptada por profesionales en el campo. Esta masterclass profundiza en los fundamentos de las pruebas de API, avanza a técnicas de prueba avanzadas y explora la automatización, las pruebas de rendimiento y el soporte multiprotocolo, proporcionando a los asistentes una comprensión holística de las pruebas de API con Postman.
Únete a nosotros para esta masterclass para desbloquear todo el potencial de Postman para las pruebas de API, agilizar tus procesos de prueba y mejorar la calidad y fiabilidad de tu software. Ya seas un principiante o un probador experimentado, esta masterclass te equipará con las habilidades necesarias para sobresalir en las pruebas de API con Postman.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
This Talk discusses modern web debugging and the latest updates in Chrome DevTools. It highlights new features that help pinpoint issues quicker, improved file visibility and source mapping, and ignoring and configuring files. The Breakpoints panel in DevTools has been redesigned for easier access and management. The Talk also covers the challenges of debugging with source maps and the efforts to standardize the source map format. Lastly, it provides tips for improving productivity with DevTools and emphasizes the importance of reporting bugs and using source maps for debugging production code.
Solicitudes de Red con Cypress
TestJS Summit 2021TestJS Summit 2021
33 min
Solicitudes de Red con Cypress
Top Content
Cecilia Martinez, a technical account manager at Cypress, discusses network requests in Cypress and demonstrates commands like cydot request and SCI.INTERCEPT. She also explains dynamic matching and aliasing, network stubbing, and the pros and cons of using real server responses versus stubbing. The talk covers logging request responses, testing front-end and backend API, handling list length and DOM traversal, lazy loading, and provides resources for beginners to learn Cypress.
Depuración de JS
React Summit 2023React Summit 2023
24 min
Depuración de JS
Top Content
Debugging JavaScript is a crucial skill that is often overlooked in the industry. It is important to understand the problem, reproduce the issue, and identify the root cause. Having a variety of debugging tools and techniques, such as console methods and graphical debuggers, is beneficial. Replay is a time-traveling debugger for JavaScript that allows users to record and inspect bugs. It works with Redux, plain React, and even minified code with the help of source maps.
Pruebas de Aplicaciones Web con Playwright
TestJS Summit 2022TestJS Summit 2022
20 min
Pruebas de Aplicaciones Web con Playwright
Top Content
Testing web applications with Playwright, a reliable end-to-end testing tool. Playwright offers fast execution, powerful tooling, and support for multiple languages. It provides precise selectors, web-first assertions, and code generation for easy testing. Playwright also offers features like live debugging, tracing, and running tests on CI. The future of Playwright aims to make testing easy and fun, with a focus on creating frustration-free web experiences.
Pruebas de ciclo completo con Cypress
TestJS Summit 2022TestJS Summit 2022
27 min
Pruebas de ciclo completo con Cypress
Top Content
Cypress is a powerful tool for end-to-end testing and API testing. It provides instant feedback on test errors and allows tests to be run inside the browser. Cypress enables testing at both the application and network layers, making it easier to reach different edge cases. With features like AppActions and component testing, Cypress allows for comprehensive testing of individual components and the entire application. Join the workshops to learn more about full circle testing with Cypress.