Construir un Metaframework en 30 Minutos o Menos

This ad is not shown to multipass and full ticket holders
React Summit US
React Summit US 2025
November 18 - 21, 2025
New York, US & Online
The biggest React conference in the US
Learn More
In partnership with Focus Reactive
Upcoming event
React Summit US 2025
React Summit US 2025
November 18 - 21, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

Metaframeworks: probablemente ya estés usando uno y puede que te encante o no la experiencia, pero ¿y si te dijera que no son ciencia de cohetes?

En esta charla, dejaremos de lado las palabras de moda y la sobrecomplicación para construir uno desde cero, sí, escuchaste bien.

Armados con Vite, Vinxi, Nitro, una pizca de vanilla JavaScript y una buena dosis de curiosidad, juntaremos el enrutamiento, la renderización y todos los elementos esenciales que has estado dejando que los metaframeworks manejen por ti.

Espera un curso intensivo para entender la tecnología que usas todos los días. Al final, podrías estar preguntándote: ¿Debería crear uno yo mismo? Y no, no deberías. Pero seguro que es divertido construir uno y entender qué los hace funcionar, ¿no?

This talk has been presented at React Summit 2025, check out the latest edition of this React Conference.

Darko Bozhinovski
Darko Bozhinovski
26 min
13 Jun, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
La charla cubre la importancia de Playwright como una herramienta de prueba de extremo a extremo con capacidades de IA y una comunidad de apoyo. Aborda desafíos en la prueba de dominios especializados como la analítica de salud y explora estrategias de prueba modernas como la pirámide de pruebas y el diamante de pruebas. También se discute la implementación de la estrategia de prueba de hongo para pruebas de extremo a extremo, la optimización del manejo de dependencias de prueba y la mejora de la legibilidad y velocidad de los informes de prueba. Se destacan la optimización de la velocidad, estrategias de simulación, mejora del rendimiento de las pruebas, paralelización, manejo de pruebas inestables, decoradores, registro de usuarios de prueba, participación de la audiencia, estabilidad de las pruebas, consideraciones de partición y gratitud por discusiones enriquecedoras sobre estrategias de prueba.

1. Understanding Playwright Testing Tool

Short description:

Hemos discutido la importancia de las pruebas en 2025, centrándonos en Playwright como una herramienta de prueba de extremo a extremo con características poderosas y capacidades de IA. Playwright tiene como objetivo simplificar la escritura de pruebas y mejorar la experiencia de prueba, ofreciendo un enfoque práctico y una comunidad de apoyo.

Hemos wipecoded nuestra aplicación muy rápido, o heredamos una gran base de código heredada. ¿Cómo la probamos? ¿Es fácil probar en 2025? Esa es una pregunta complicada. Y antes de que me sumerja, una verificación rápida. ¿Podrían por favor levantar la mano si han trabajado con Playwright antes? Genial. Es como casi la mitad de la audiencia, tal vez incluso más.

Para el resto de nosotros, una breve introducción a Playwright. Playwright es una herramienta de prueba de extremo a extremo muy popular. Es muy fácil de instalar. Con solo un comando, obtienes los navegadores predeterminados, configuración, prueba de ejemplo, e incluso acción de GitHub. Viene con Code Jam. Te permite generar pruebas sin escribir ningún código en absoluto.

Básicamente haces clic en tu navegador en tu sitio web, y obtienes de vuelta un código de prueba simple, básico, pero funcional. Cuando tienes escenarios de prueba más avanzados, Playwright tiene todas las características. Comparaciones visuales, instantáneas, pruebas de API, pruebas de extensiones de inicio, pruebas de componentes. Si, por alguna razón, no te gusta TypeScript, hay otras opciones también. Cuando las pruebas inevitablemente fallan, Playwright tiene la mejor experiencia de desarrollador en su clase con depurador incorporado, extensión de VS Code, capturas de pantalla, informes, videos, y mi favorito, el visor de trazas.

El visor de trazas es una solución integral para cualquier falla de prueba. Proporciona todos los pasos de la prueba junto con capturas de pantalla, errores, registros de consola, solicitudes de red, y básicamente todo lo que usualmente verificamos en las herramientas de desarrollo del navegador. Por supuesto, la diapositiva obligatoria de IA. Playwright tiene un par de características de IA agradables, copiar error como prompt de IA, y el servidor Playwright MCP para permitir que los modelos de lenguaje grande se comuniquen con las APIs de Playwright. Permítanme darles una demostración rápida. Aquí, le estoy pidiendo a Courser que escriba un borrador rápido de revisión de conferencia para mi blog. Courser pide a Playwright MCP que obtenga una agenda de conferencia y Playwright devuelve una instantánea de accesibilidad de la página, algo que es muy fácil de digerir para Courser. Como resultado, Courser genera un buen primer borrador, incluso para las charlas que aún no se han presentado. Muy genial. Por supuesto, el objetivo principal de Playwright es ayudarnos a escribir pruebas confiables y predecibles.

2. Challenges of Testing in Specialized Domains

Short description:

Playwright ofrece soluciones prácticas de prueba con auto-weighting, web-first assertions y soporte comunitario. Unirse a Aetion, una empresa de análisis de salud, presentó desafíos en las pruebas dentro de un dominio altamente especializado. Desde códigos complejos hasta componentes de React en evolución, las pruebas en tales entornos requieren una atención meticulosa al detalle y adaptación a sistemas heredados.

Y Playwright es una herramienta muy práctica. Viene con auto-weighting y web-first assertions. La autenticación y multiusuario vienen listos para usar, lo mismo con el paralelismo y sharding. Finalmente, tiene una gran comunidad que proporciona plugins comunitarios, mejores prácticas e integraciones con otras herramientas. En resumen, Playwright marca todas las casillas para facilitar las pruebas.

Al menos, eso es lo que pensé cuando hace un año, me uní a un equipo en Aetion, una empresa de análisis de salud que ofrece una gama de productos para científicos de datos en el sector de la salud. Es un dominio empresarial altamente especializado y regulado que probablemente tiene un acrónimo para casi todo en el mundo. Permítanme darles un ejemplo. En la Clasificación Internacional de Enfermedades, eso es algo real, hay un código W6162xd que literalmente significa golpeado por un pato, encuentro subsiguiente. Y en tal dominio empresarial especializado, se pidió a nuestro equipo que cubriera todas las características principales con pruebas automatizadas para fines de regulación. El alcance incluía 64 épicas de pruebas.

Todavía recuerdo este número. Para un no profesional como yo, la interfaz de usuario parecía un millón de casillas de verificación, acrónimos, tablas con números aleatorios por todas partes, impulsado por una aplicación de React de 5 años y un back-end de Java de 10 años. Java tenía su propia historia pasando de monolito a microservicios, luego de regreso, dejándonos con un montón de APIs heredadas y obsoletas. Pero eso es para otro momento. Por ahora, centrémonos en React. A medida que el producto evolucionaba, algunos de los componentes han crecido a más de mil líneas de código con esos enormes use effects, con dependencias faltantes, dependencias, y todo eso. React versión 17, la mayor parte del código sin tipar. ESLint y Prettier se perdieron durante la migración a la nube.

3. Exploring Modern Testing Strategies

Short description:

Enfrentando desafíos en la prueba de código complejo, el orador supera la renuencia inicial y se adentra en el desarrollo de una estrategia de pruebas. Explorar varias estrategias de prueba como la pirámide de pruebas, la pirámide invertida y el diamante de pruebas ofrece ideas sobre enfoques modernos de prueba y la metodología preferida del orador.

Antes de continuar, solo quería mencionar que esta no es una situación poco común para empresas en crecimiento que se centran en construir nuevas características. Ahora, dicho esto, nuestra primera reacción a este proyecto se puede resumir con una cita de mi compañero de equipo. Este código es imposible de probar. O hablando en lenguaje científico, R45.4, irritabilidad y enojo. El desafío no fue aceptado. Con todas esas excusas corriendo en mi cabeza, no, no es mi trabajo. Incluso un desarrollador junior puede hacer eso. Incluso AI puede hacer eso. Y después de cinco horas de estar incitando a chat GPT, estúpida AI, nunca tomará mi trabajo. Está bien. Escribiré las pruebas. Al menos dime qué tipo de pruebas debo escribir. ¿Por dónde empiezo? Necesitábamos una estrategia de pruebas.

Ahora es el momento para un breve blog teórico. Probablemente la estrategia de pruebas más popular es la pirámide de pruebas. Promueve dividir el software en unidades más pequeñas y comprobables. No es nuestro caso, para ser honesto. La otra opción es poner la pirámide al revés para obtener la pirámide de pruebas invertida. Si pongo un poco de helado encima, entonces obtenemos el cono de helado de pruebas. La estrategia de pruebas predeterminada para muchas empresas. No tan sabroso. La mayoría de las pruebas son manuales y solo algunas de ellas se automatizan.

Otra opción es el diamante de pruebas y pone el enfoque principal en las pruebas de integración. Una evolución del diamante de pruebas que es más popular en la comunidad de Frontend es el trofeo de pruebas de Can'tSeeDots. Aclara lo que significan los diferentes tipos de pruebas en el contexto del ecosistema moderno de JavaScript y también hace que las verificaciones estáticas como YesLint y TypeScript sean más explícitas. No todos saben, pero la estrategia favorita de Kian es el Dorito de pruebas de Tim Myers. Déjame leértelo. De arriba a abajo. Pruebas que planeo escribir. Pruebas que empiezo a escribir. Pruebas que elimino porque pienso que son estúpidas y pueden tomar mucho tiempo y no valen la pena.

4. Implementing End-to-End Testing Strategy

Short description:

Introduciendo la estrategia del hongo de pruebas para pruebas de extremo a extremo, el equipo enfrenta desafíos en la ejecución de pruebas, lo que lleva a la necesidad de documentación escrita y a solucionar problemas con el plugin ESLint para mejorar las prácticas de prueba.

Finalmente, pruebas. Y el Dorito de pruebas es un buen recordatorio de que la teoría y la práctica no siempre tienen una coincidencia perfecta. Así que sin más preámbulos, por favor den la bienvenida a la nueva estrategia de pruebas, el hongo de pruebas. El sombrero del hongo se trata de pruebas de extremo a extremo. Cumple con los requisitos de regulación y también nos ayuda a construir una red de seguridad para que podamos comenzar a refactorizar e introducir pruebas de integración y unitarias. El hongo de pruebas es un organismo vivo, por lo que se espera que cambie su forma una vez que aprendamos más.

Genial, tenemos nuestra estrategia, así que es hora de ejecutar. Todo el equipo se sentó a escribir tantas pruebas como fuera posible, lo más rápido posible. Y un mes después, fue un desastre. No funcionó. Cuantas más pruebas escribíamos, más fallaban por razones aleatorias y era imposible averiguar qué estaba pasando. Era el momento de una acción de emergencia, a saber, documentación escrita. Al menos la parte de mejores prácticas.

Aparentemente, estábamos usando incorrectamente la API de Playwright, y aquí tengo un par de ejemplos para ustedes. La línea en la parte superior es la forma incorrecta de verificar el texto de bienvenida en pantalla, y la línea de abajo es la forma correcta de hacerlo. Ambas funcionan, solo que la primera a veces falla aleatoriamente. Y para ser honesto, la diferencia es sutil, especialmente cuando revisas miles de líneas de código de prueba. Afortunadamente, hay una solución simple. Instalamos el plugin ESLint Playwright. Solucionó todos los problemas y también nos ayudó a aprender cuál era la forma correcta de usar Playwright. Genial.

5. Optimizing Test Dependency Handling

Short description:

Enfrentando desafíos con las dependencias de prueba, aplicando pruebas aisladas y mejorando la estabilidad y detección de errores en los procesos de prueba.

Con eso, continuamos, y dos meses después de iniciado el proyecto, nos dimos cuenta de que estábamos atrasados. Así que tuvimos que pedir ayuda a nuestros colegas de otros equipos. Fue entonces cuando enfrentamos nuestro siguiente desafío, las dependencias de prueba. Como recordarán, estamos lidiando con un dominio de negocio bastante complejo. Un recorrido típico de usuario puede tomar varios minutos antes de lograr un resultado significativo. Y para el desarrollador, es tentador reutilizar resultados de pruebas anteriores para construir nuevas pruebas sobre ellos.

Desafortunadamente, esto rompe completamente los reintentos de prueba y hace que la depuración local sea prácticamente imposible. Nunca sabes en qué orden y qué pruebas ejecutar para reproducir el problema. Ahora, una vez más, decidimos seguir las mejores prácticas. Y una de ellas dice, haz las pruebas lo más aisladas posible. Bueno, fácil de decir. Tuvimos que aplicarlo con un modo completamente paralelo e incrementar el número de trabajadores a tres para realmente ejecutar las pruebas en paralelo. Eso reveló algunos problemas que resolvimos.

Y con eso, finalmente, estábamos bien. Nuestras pruebas se volvieron mucho más estables y comenzaron a detectar errores reales como ese en la esquina superior derecha. Vamos a ver qué está mal con eso. Bien, esa es mi prueba. Puedo ver inmediatamente cuál es el problema. Es una de las APIs de backend que no está devolviendo la respuesta correcta, así que lo estoy pasando al equipo de backend. El equipo de backend lo abre aparentemente en el modo oscuro, y no puede entender nada, al igual que probablemente ustedes, porque es demasiado pequeño. Así que nos lo devuelven. Y nosotros se lo devolvemos a ellos, y así sucesivamente.

6. Enhancing Test Report Readability and Speed

Short description:

Mejorando la legibilidad de los informes de prueba con el step decorator y Allure Reports para una comprensión más clara y accesible de los informes. Abordando la lentitud de las pruebas ajustando las configuraciones de los workers para mejorar la eficiencia.

Veamos el 63.1, problemas en la relación con los suegros. Aparentemente, nuestros informes de prueba no eran legibles en absoluto, y tuvimos que mejorarlos. Cuando se trata de hacer el código más legible, ya sabemos cómo hacerlo. Lo dividimos en bloques lógicos más pequeños. En las pruebas, hay un patrón común, page object model, donde organizas tu código en pantallas o páginas. Por ejemplo, aquí tengo una clase de página de inicio de sesión, y contiene todas las acciones que puedes realizar en esa pantalla o página. Inicio de sesión, cierre de sesión, restablecimiento de contraseña, etc.

Ya teníamos nuestro código organizado de esta manera, y aparentemente, estábamos a solo un paso de hacer nuestros informes igual de legibles. Y cuando digo un paso, lo digo literalmente con step decorator. Step decorator agrupa acciones de Playwright de bajo nivel en pasos de alto nivel, pasos lógicos que puedes entender. No viene listo para usar, pero hay documentación sobre cómo puedes configurarlo para tus necesidades. Con eso, nuestros informes de prueba se volvieron mucho más legibles, incluso para nuestro encantador equipo de backend.

Si hago un poco de zoom hacia afuera, así es como se ve la prueba fallida en el informe de pruebas. Contiene todos los pasos de prueba, capturas de pantalla, videos, reintentos de prueba, etiquetas, historial, y todo lo que viene de Allure Reports. Allure Reports es una herramienta de código abierto, multiplataforma y multiframework para construir hermosos informes de prueba, de modo que incluso los usuarios no técnicos puedan entender qué está pasando en la prueba. Y como de costumbre, es muy fácil configurarlo con Playwright. ¡Genial! Con eso, estábamos en la recta final cuando nuestro equipo de ingeniería de plataforma se acercó con un problema mucho más grande. Sí, nuestras pruebas estaban en verde. Sí, eran estables, pero eran súper lentas.

7. Speed Optimization and Mocking Strategies

Short description:

Abordando la lentitud de las pruebas ajustando las configuraciones de los workers para mejorar la eficiencia. Utilizando Playwright network cache plugin para mejorar el rendimiento sin mantener mocks. Priorizando la optimización de la velocidad en la ejecución de pruebas para ciclos de retroalimentación más rápidos.

Podrían bloquear la pipeline de despliegue durante una o dos horas, y no era aceptable. Para ser honesto, nunca nos enfocamos en la velocidad. Teníamos otras prioridades. Como recordatorio, estamos ejecutando pruebas en modo paralelo completo en tres workers. Y con solo un cambio de configuración, pasamos de 51 minutos a 17 minutos. Sí, simplemente aumentamos el número de workers.

Puedes ver el espacio en blanco al principio. Todavía tenemos margen de mejora, pero ya es un buen primer paso. Por supuesto, no hace que cada prueba individual se ejecute más rápido. Simplemente ejecutamos más de ellas en paralelo. Si comparamos las pruebas end-to-end con las pruebas de integración, las pruebas de integración generalmente se ejecutan más rápido porque omiten o mockean operaciones costosas.

En Playwright, tenemos una API de red para interceptar solicitudes HTTP, pero personalmente, no soy un gran fan de este enfoque. En un proyecto, mockeamos todas las solicitudes HTTP. Nuestra prueba era súper rápida, súper verde, pero nunca detectaron un solo error. En cambio, estábamos constantemente regenerando y actualizando los mocks. No es súper genial.

8. Innovative Test Performance Enhancement

Short description:

Aprovechando el plugin de Playwright network cache para mejorar el rendimiento de las pruebas sin la necesidad de mantener mocks. Integrando el caching para acelerar significativamente la ejecución de pruebas. Reflexionando sobre la evolución del enfoque de pruebas para mejorar la estabilidad, detección de errores y ejecución en paralelo.

¿Podríamos obtener una mejora de rendimiento similar, pero sin mantener realmente mocks? Mocking sin mocks, como lo llamo. Esto es exactamente lo que ofrece el plugin de Playwright network cache. Déjame mostrarte un ejemplo. Imagina que tenemos cinco pruebas lentas. Cada una comienza realizando alguna operación lenta. Digamos que abriendo un proyecto de prueba. Con Playwright network cache, la primera prueba realizará la operación, no importa si es get o post múltiples solicitudes o solo una, y almacenará el resultado en cache. Todas las demás pruebas reutilizarán ese cache como mocks. En nuestro caso, en realidad teníamos 200 pruebas como esa, y recuperamos 10 minutos de tiempo de ejecución de pruebas. Eso es una locura.

Ahora, si piensas que es hacer trampa, no estás equivocado, porque ya no es una prueba pura de extremo a extremo. Es por eso que en el testing mushroom, nuestras pruebas de integración se encuentran dentro de la copa del hongo. Y podría hablar más y más sobre el testing mushroom, porque es muy divertido. Pero honestamente, lo inventé completamente para los propósitos de esta charla, para ilustrar el enfoque que tomamos para este proyecto en particular. Y tu enfoque será diferente. Espero que el testing mushroom te inspire a explorar las diferentes formas y estrategias que existen y encuentres lo que funciona para ti y hace que las pruebas, si no fáciles, al menos más divertidas.

Con eso, permíteme recapitular. Escribimos todas las pruebas. Misión cumplida. Son estables y legibles. Detectan errores reales. Se ejecutan en modo paralelo completo. Gran trabajo para el equipo. Pero hay algo más que no mencioné. Un efecto secundario inesperado. Hoy, un año después, tenemos React y otras bibliotecas principales actualizadas. Duplicamos esas pruebas de integración obsoletas con esos mocks heredados que nadie podía mantener. El equipo cambió a monorepo para mejorar la experiencia del desarrollador. Migramos a una estructura de código de diseño feature-slice para alinearnos mejor con nuestro dominio de negocio y también para comenzar a descomponer nuestro código en unidades más pequeñas y comprobables. Aceleró la migración a TypeScript.

QnA

Testing Strategy Discussion

Short description:

Construir nuevas características es más fácil con las pruebas como base. La facilidad de las pruebas depende de la estrategia, disciplina y habilidad. Adoptar las pruebas correctamente simplifica todo lo demás. Kate, enfocada en las pruebas, comparte ideas en React Summit 2025. Discusión sobre enfoques de pruebas y las diversas estrategias disponibles.

Hoy, construir nuevas características es mucho más fácil. Es una base de código completamente diferente, pero sé que todo comenzó con las pruebas. Así que volviendo a la pregunta. ¿Son fáciles las pruebas? Depende de la estrategia correcta, la disciplina y la habilidad. Pero la buena noticia es que todo lo demás se vuelve más fácil cuando tienes bien tus pruebas. Y mi favorito. RS 202.5 obsesionado con las pruebas en React Summit 2025. Mi nombre es Kate. Estoy colaborando en redes sociales. Felices pruebas. Gracias. Tenemos Slido en funcionamiento. Y no olvides que puedes agregar tus preguntas mientras discutimos. Vamos a ver quién vota qué.

Pero, ¿por qué no comenzamos con los enfoques de pruebas? Así que pasaste por varios snacks diferentes que representan enfoques de pruebas. ¿Cuál crees que es el mejor? Creo que esa es una pregunta con asterisco. Esa es complicada. Porque el punto de mi charla es que depende de la base de código que manejes. Y a veces, como mi favorito es por supuesto la clásica pirámide de pruebas. Pero no siempre es posible comenzar con ella si lidias con una base de código heredada o, ya sabes, la situación es la que es. Así que diría que encuentres lo que funciona para ti. Y luego mira alrededor porque hay algunas personas inteligentes que proponen algunas ideas interesantes. Absolutamente.

Pero creo que todos podemos estar de acuerdo en cuál es la estrategia de pruebas más linda, que obviamente es el hongo. No sé sobre el Dorito. Tal vez. Depende del sabor. Bien. Así que veamos. ¿Qué tal el paralelismo? Tenemos un par de preguntas sobre eso.

Optimización de la Paralelización y Manejo de Pruebas Inestables

Short description:

Deshabilitar la paralelización para suites de pruebas específicas es posible gracias a la flexibilidad de Playwright. Determinar el número óptimo de trabajadores paralelos en entornos CI y abordar la inestabilidad en pruebas de extremo a extremo siguiendo las mejores prácticas e involucrando a los equipos de backend.

Entonces, ¿hay alguna manera de deshabilitar la paralelización para ciertas suites de pruebas que tienen largos tiempos de carga inicial? Sí. Creo que lo que la persona quiere lograr es perfectamente posible. Playwright es una herramienta muy configurable. Pero cambiaría eso. Y nos forzamos a nosotros mismos en esta situación donde tuvimos que lidiar con el modo de paralelización completa y nos ayudó mucho a seguir las mejores prácticas y nos ayudó, ya sabes, a mantener a medida que avanza. Genial. Genial.

Y sobre ese mismo tema. Entonces, en los trabajadores paralelos, como cuántos, supongo, ya sabes, ¿cuántos usaste finalmente? O quizás la pregunta más amplia es ¿cómo determinas cuántos usar? ¿Y estabas ejecutando en CI en integración continua? Sí, sí. Por supuesto. Actualmente usamos 12 trabajadores en CI. No lo usamos en local, por ejemplo. En local, uso un máximo de cuatro trabajadores. Depende. En nuestro caso, simplemente elegimos la máquina más grande que estaba disponible para nosotros en CI y eso es todo. Fue simple. El número de CPUs. Sí. Así que eso es básicamente lo que tienes. ¿Verdad? Genial.

Y entonces, ¿qué hay de esas pruebas de extremo a extremo que son... ¿Cómo te aseguras de que no sean inestables? Porque tienes algún problema con el servidor, algún tiempo de inactividad aleatorio, algo más sale mal. ¿Qué haces contra las pruebas de extremo a extremo inestables? Esa es una gran pregunta. Así que si sigues las mejores prácticas de Playwright, entonces reduces, ya sabes, la inestabilidad innecesaria que proviene del hecho de que estás usando el navegador y hay algunas latencias, etcétera. Ahora, si tu servidor está caído, no hay nada que pueda ayudarte. Y eso está en el núcleo de la prueba de extremo a extremo en lugar de solo todo el conjunto. Así que dejamos que fallen si el servidor falla y avisamos a nuestro encantador equipo de backend para que lo arregle. Ahora hay enfoques mixtos, como mencioné, con estas mismas pruebas de integración, cuando simulas algunas de esas cosas, este es el otro enfoque que puedes usar y puedes ser creativo. Sí.

Handling Decorators and Test User Registration

Short description:

Explicando la equivalencia entre 'at step' y 'test dot step' como decoradores y abordando las dependencias de registro de usuarios utilizando datos de usuario de prueba preconfigurados para pruebas eficientes.

Está bien. Tiene sentido. Así que de nuevo, hay que adaptarse a las circunstancias. ¿Verdad? Tienes que ser creativo para cualquier problema que se presente.

Está bien. Tenemos una pregunta sobre una cuestión muy específica. ¿Cuál es la diferencia entre at step y test dot step? Es lo mismo. At step es un decorador que envuelve los métodos por ti. Hermoso. Así que no necesitas modificar toda tu base de código o tus pruebas existentes, solo añades el decorador. Sí. Y eso tal vez sea una cuestión de preferencia personal de nuevo, como qué prefiere tu equipo. ¿Cuál es tu estilo? ¿Estás acostumbrado a trabajar con decoradores? ¿No lo estás? Genial.

Veamos. Están llegando muchas preguntas nuevas y geniales. Me encanta ver esto, aunque estamos teniendo un poco de discoteca silenciosa y así, ya sabes, es muy tranquilo en la vida real aquí. Todos estamos teniendo una interacción virtual increíble, lo que me lleva de vuelta a hace como cinco años atrás. ¿Alguien? ¿Vibras de 2020? Está bien. Entonces, de acuerdo. ¿Qué tal, cómo abordas, por ejemplo, las dependencias en el registro de usuarios sin repetir registros cada vez? Sí, esa es una gran pregunta. En primer lugar, tenemos datos de usuario de prueba preconfigurados como datos semilla que tenemos y ya contienen algunos usuarios de prueba. Así que probamos el registro solo una vez, pero luego usamos esos usuarios preconfigurados. Increíble.

Asegurando la Participación de la Audiencia y la Estabilidad de las Pruebas

Short description:

Fomentando la participación de la audiencia mediante la votación de preguntas, discutiendo la optimización de generadores de inicio de sesión y explicando el uso de fixtures para la estabilidad en las pruebas. Explorando la decisión de no usar Playwright sharding debido a las capacidades actuales de infraestructura.

Así que a medida que llegan las preguntas, no olviden que pueden votar por las que quieren escuchar respondidas, pero si su pregunta no es respondida, o si quizás estaban demasiado absortos en las alegrías de pensar en estrategias de prueba para hacerla aquí en línea en Slido, aquellos de ustedes que están en persona tendrán la oportunidad de unirse al rincón de preguntas y respuestas de Kate más tarde. Muy bien. Pero mientras tanto, volvamos a nuestra discoteca virtual, fiesta de discoteca silenciosa. Ojalá tuviéramos como patines o algo así, ¿no? ¿Solo yo? Estoy seguro de que nadie se lastimaría. Eso estaría bien.

Está bien. Hablando de inicios de sesión, supongo, y registro, ¿alguna idea sobre la optimización de generadores de inicio de sesión o funciones utilitarias que se ejecutarán para cada prueba? Así que esta persona ha tenido problemas con, o su equipo ha tenido problemas con la paralelización y los tiempos de espera al alcanzar varios puntos finales? Está bien. La respuesta es bastante larga, así que hablemos después de la charla. En resumen, para el código repetido, usamos mucho los fixtures. Significan cosas diferentes en Playwright que en otras cosas. Y para la estabilidad, necesitamos hablar porque depende. Depende, ¿verdad? Depende. La espada más usada del ingeniero de software.

Absolutamente. Está bien. Creo que tenemos tiempo para un par de preguntas más, si están dispuestos. Estoy listo para Thunderstalk, honestamente. Así que vamos a terminar. Habrá más charlas en el escenario alternativo. Así que sí. Pero no se preocupen, si se pierden alguna de las charlas porque están, de nuevo, pasando un gran momento hablando en silencio sobre pruebas aquí, no se preocupen, las grabarán. Pueden verlas más tarde. Así que nos aseguraremos de ver eso. Y una vez que hayan tenido la oportunidad de calmarse también. Pero veamos, ¿estarían dispuestos a hacer una más para nuestra audiencia aquí? ¿Podemos obtener un woo virtual para animar esto? Absolutamente increíble. Fabuloso. Muy bien, veamos. Nuestra pregunta más popular al final es, ¿están usando Playwright sharding en las ejecuciones de CI y CD? Y si no, ¿por qué no? Simplemente no lo necesitamos.

Exploring Sharding Considerations and Gratitude

Short description:

Discutiendo el uso de máquinas grandes para un posible sharding futuro, destacando la complejidad de fusionar informes. Expresando gratitud por las discusiones interesantes sobre estrategias de prueba y agradeciendo a Kate por sus contribuciones.

Usamos una máquina grande. Tan pronto como lo necesitemos, lo usaremos porque sharding requiere un poco de ajuste de los informes. Así que necesitas fusionarlos de nuevo. Y no queremos hacer eso. ¿Podemos crecer lo suficiente? Lo haremos seguro. Así que de nuevo, dependiendo de la necesidad, ¿verdad? Como dependiendo de cuál sea tu capacidad real y cuál sea tu... Pero es una gran pregunta. Sí. Increíble. Increíble.

Bueno, me encanta que tengamos una discusión tan colorida sobre lo que ahora voy a pensar como una parte muy provocadora de hambre del desarrollo de software, la estrategia de pruebas. Así que, ¿podemos todos por favor dar un enorme, enorme agradecimiento virtual y real a la increíble Kate y todas las formas de prueba? Muchas gracias. Muchas gracias, Kate.

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

Construyendo Mejores Sitios Web con Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Construyendo Mejores Sitios Web con Remix
Top Content
Remix is a web framework built on React Router that focuses on web fundamentals, accessibility, performance, and flexibility. It delivers real HTML and SEO benefits, and allows for automatic updating of meta tags and styles. It provides features like login functionality, session management, and error handling. Remix is a server-rendered framework that can enhance sites with JavaScript but doesn't require it for basic functionality. It aims to create quality HTML-driven documents and is flexible for use with different web technologies and stacks.
Acelerando tu aplicación React con menos JavaScript
React Summit 2023React Summit 2023
32 min
Acelerando tu aplicación React con menos JavaScript
Top Content
Mishko, the creator of Angular and AngularJS, discusses the challenges of website performance and JavaScript hydration. He explains the differences between client-side and server-side rendering and introduces Quik as a solution for efficient component hydration. Mishko demonstrates examples of state management and intercommunication using Quik. He highlights the performance benefits of using Quik with React and emphasizes the importance of reducing JavaScript size for better performance. Finally, he mentions the use of QUIC in both MPA and SPA applications for improved startup performance.
Documentación Full Stack
JSNation 2022JSNation 2022
28 min
Documentación Full Stack
Top Content
The Talk discusses the shift to full-stack frameworks and the challenges of full-stack documentation. It highlights the power of interactive tutorials and the importance of user testing in software development. The Talk also introduces learn.svelte.dev, a platform for learning full-stack tools, and discusses the roadmap for SvelteKit and its documentation.
SolidJS: ¿Por qué tanto Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: ¿Por qué tanto Suspense?
Top Content
Suspense is a mechanism for orchestrating asynchronous state changes in JavaScript frameworks. It ensures async consistency in UIs and helps avoid trust erosion and inconsistencies. Suspense boundaries are used to hoist data fetching and create consistency zones based on the user interface. They can handle loading states of multiple resources and control state loading in applications. Suspense can be used for transitions, providing a smoother user experience and allowing prioritization of important content.
De GraphQL Zero a GraphQL Hero con RedwoodJS
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
De GraphQL Zero a GraphQL Hero con RedwoodJS
Top Content
Tom Pressenwurter introduces Redwood.js, a full stack app framework for building GraphQL APIs easily and maintainably. He demonstrates a Redwood.js application with a React-based front end and a Node.js API. Redwood.js offers a simplified folder structure and schema for organizing the application. It provides easy data manipulation and CRUD operations through GraphQL functions. Redwood.js allows for easy implementation of new queries and directives, including authentication and limiting access to data. It is a stable and production-ready framework that integrates well with other front-end technologies.
Tanstack Start - Un Framework de React de Full-Stack Primero del Lado del Cliente
React Summit US 2024React Summit US 2024
30 min
Tanstack Start - Un Framework de React de Full-Stack Primero del Lado del Cliente
Top Content
We surveyed thousands of developers to show that a louder audience leads to a better presentation. There has been a shift in web app development towards server-first architectures, which has improved full-stack capabilities but at the cost of complexity and divergence from the client-centric approach. Tanstec Start is a meta-framework that aims to provide the best client-side authoring experience with powerful server-side primitives. The Tansec Router supports advanced routing features, URL state management, and JSON storage. Combined with the server-side rendering capabilities of TanStack Start, it becomes even more powerful. The TanStack Router has isomorphic loaders and integrates seamlessly with TanStack Query for additional features like polling and offline support. UseSuspenseQuery allows for dynamic streaming of data during SSR. TanStack Start also offers server-side features, API routes, server functions, and middleware. The future plans include RSCs, websockets, real-time primitives, and static pre-rendering. TanStack Start is now in beta and is suitable for building React apps. It is open source.

Workshops on related topic

Construyendo aplicaciones web que iluminan Internet con QwikCity
JSNation 2023JSNation 2023
170 min
Construyendo aplicaciones web que iluminan Internet con QwikCity
WorkshopFree
Miško Hevery
Miško Hevery
Construir aplicaciones web instantáneas a gran escala ha sido elusivo. Los sitios del mundo real necesitan seguimiento, análisis y interfaces y interacciones de usuario complejas. Siempre comenzamos con las mejores intenciones pero terminamos con un sitio menos que ideal.
QwikCity es un nuevo meta-framework que te permite construir aplicaciones a gran escala con un rendimiento de inicio constante. Veremos cómo construir una aplicación QwikCity y qué la hace única. El masterclass te mostrará cómo configurar un proyecto QwikCity. Cómo funciona el enrutamiento con el diseño. La aplicación de demostración obtendrá datos y los presentará al usuario en un formulario editable. Y finalmente, cómo se puede utilizar la autenticación. Todas las partes básicas para cualquier aplicación a gran escala.
En el camino, también veremos qué hace que Qwik sea único y cómo la capacidad de reanudación permite un rendimiento de inicio constante sin importar la complejidad de la aplicación.
De vuelta a las raíces con Remix
React Summit 2023React Summit 2023
106 min
De vuelta a las raíces con Remix
Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
La web moderna sería diferente sin aplicaciones ricas del lado del cliente respaldadas por potentes frameworks: React, Angular, Vue, Lit y muchos otros. Estos frameworks se basan en JavaScript del lado del cliente, que es su núcleo. Sin embargo, existen otros enfoques para el renderizado. Uno de ellos (bastante antiguo, por cierto) es el renderizado del lado del servidor completamente sin JavaScript. Descubramos si esta es una buena idea y cómo Remix puede ayudarnos con ello?
Prerrequisitos- Buen entendimiento de JavaScript o TypeScript- Sería útil tener experiencia con React, Redux, Node.js y escribir aplicaciones FrontEnd y BackEnd- Preinstalar Node.js, npm- Preferimos usar VSCode, pero también se pueden utilizar IDE en la nube como codesandbox (otros IDE también están bien)
Deja que la IA sea tu Documentación
JSNation 2024JSNation 2024
69 min
Deja que la IA sea tu Documentación
Workshop
Jesse Hall
Jesse Hall
Únete a nuestro masterclass dinámico para crear un portal de documentación impulsado por IA. Aprende a integrar ChatGPT de OpenAI con Next.js 14, Tailwind CSS y tecnología de vanguardia para ofrecer soluciones de código e resúmenes instantáneos. Esta sesión práctica te equipará con el conocimiento para revolucionar la forma en que los usuarios interactúan con la documentación, convirtiendo las búsquedas tediosas en descubrimientos eficientes e inteligentes.
Aspectos destacados:
- Experiencia práctica en la creación de un sitio de documentación impulsado por IA.- Comprensión de la integración de la IA en las experiencias de usuario.- Habilidades prácticas con las últimas tecnologías de desarrollo web.- Estrategias para implementar y mantener recursos de documentación inteligente.
Tabla de contenidos:- Introducción a la IA en la documentación- Configuración del entorno- Construcción de la estructura de documentación- Integración de ChatGPT para documentación interactiva
Aprende Fastify Un Plugin a la Vez
Node Congress 2021Node Congress 2021
128 min
Aprende Fastify Un Plugin a la Vez
Workshop
Matteo Collina
Matteo Collina
Fastify es un marco de trabajo HTTP para Node.js que se enfoca en brindar una buena experiencia de desarrollo sin comprometer las métricas de rendimiento. Lo que hace especial a Fastify no son sus detalles técnicos, sino su comunidad, que está abierta a contribuciones de cualquier tipo. Parte de la fórmula secreta es la arquitectura de plugins de Fastify, que permite a los desarrolladores escribir más de cien plugins.Este masterclass práctico está estructurado en una serie de ejercicios que cubren desde lo básico, como "hola mundo", hasta cómo estructurar un proyecto, realizar acceso a bases de datos y autenticación.

https://github.com/nearform/the-fastify-workshop
Construye una página de producto con el marco de trabajo Hydrogen de Shopify
React Advanced 2022React Advanced 2022
81 min
Construye una página de producto con el marco de trabajo Hydrogen de Shopify
Workshop
David Witt
David Witt
Sumérgete en Hydrogen, un marco de trabajo basado en React para construir tiendas en línea sin cabeza. Hydrogen está diseñado para el comercio de Shopify con todas las características que necesitas para una tienda en línea lista para producción. Proporciona un inicio rápido y un entorno de desarrollo rápido para que puedas centrarte en lo divertido: construir experiencias de comercio únicas. En este masterclass, crearemos una nueva tienda en línea y construiremos rápidamente una página de producto. Cubriremos cómo empezar, enrutamiento basado en archivos, obtener datos de la API de Storefront, los componentes integrados de Hydrogen y cómo aplicar estilos con Tailwind.Aprenderás:- Empezar con la plantilla hello-world en StackBlitz- Enrutamiento basado en archivos para crear una ruta /productos/ejemplo- Enrutamiento dinámico /productos/:handle- Consultar la API de Storefront con GraphQL- Mover la consulta dentro de la aplicación de Hydrogen- Actualizar la consulta para obtener un producto por su identificador- Mostrar título, precio, imagen y descripción.- Estilizado con Tailwind- Selector de variantes y botón de compra ahora- Bonus si hay tiempo: página de colecciones
Requisitos previos: - Un navegador basado en Chromium (StackBlitz)- Idealmente experiencia con React. Un conocimiento general de desarrollo web también es válido.
Construye una Biblioteca Universal de Datos Reactiva con Starbeam
JSNation 2023JSNation 2023
66 min
Construye una Biblioteca Universal de Datos Reactiva con Starbeam
WorkshopFree
Yehuda Katz
Yehuda Katz
Esta sesión se centrará en los bloques de construcción universales de Starbeam. Usaremos Starbeam para construir una biblioteca de datos que funcione en múltiples frameworks.Escribiremos una biblioteca que almacene en caché y actualice datos, y admita relaciones, ordenación y filtrado.En lugar de obtener datos directamente, funcionará con datos obtenidos de forma asíncrona, incluidos los datos obtenidos después de la representación inicial. Los datos obtenidos y actualizados a través de web sockets también funcionarán bien.Todas estas características serán reactivas, por supuesto.Imagina que filtras tus datos por su título y luego actualizas el título de un registro para que coincida con el filtro: cualquier resultado que dependa de los datos filtrados se actualizará para reflejar el filtro actualizado.En 90 minutos, construirás una increíble biblioteca de datos reactiva y aprenderás una nueva herramienta poderosa para construir sistemas reactivos. La mejor parte: la biblioteca funciona en cualquier framework, incluso si no piensas en (o dependes de) ningún framework al construirla.
Tabla de contenidos- Almacenar un registro obtenido en una celda- Almacenar múltiples registros en un Mapa reactivo- La iteración reactiva es una iteración normal- El filtrado reactivo es un filtrado normal- Obtener más registros y actualizar el Mapa- La ordenación reactiva es una ordenación normal (¿se está volviendo un poco repetitivo?)- Modelar la invalidación de la caché como datos- Bonus: relaciones reactivas