FastAPI, Pruebas Furiosas: Necesidad de Velocidad

Transforma tu suite de pruebas lenta en rápida con SQLite por worker, MySQL para casos críticos, pytest-xdist y pytest-split, migración por fases y monitoreo de rendimiento.

13 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Resumen rápido TLDR Tu suite de pruebas es lenta y los desarrolladores esperan. Con los cambios adecuados transformamos una suite de 28 minutos en una que tarda menos de 3 minutos. La receta mágica: usar SQLite en memoria o por archivo por trabajador para el 90 95 por ciento de las pruebas, conservar MySQL para el 5 por ciento que necesita comportamientos reales, pytest-xdist con worksteal, fixtures bien diseñadas y dividir trabajos por tiempo de ejecución, no por número de tests.

¿Por qué importa Esto no es sólo tiempo perdido. Es feedback lento, desarrolladores que omiten ejecutar tests locales, costes de CI inflados y despliegues más lentos. Optimizar las pruebas devuelve productividad, reduce costes y mejora la calidad del software.

Problemas comunes y lecciones aprendidas Intento 1 Usar MySQL en Docker para todo Resultado Más arranque de contenedores, migraciones lentas y colisiones de datos. Lección No todo necesita producción idéntica. Intento 2 Base de datos compartida Resultado Colisiones, orden dependiente y tests frágiles. Lección Estado compartido es el enemigo. Intento 3 Más hardware Resultado Complejidad, seguridad y mayor coste. Lección La solución ideal suele ser más simple que añadir maquinas.

La solución práctica Usar SQLite en memoria o en archivos por worker para la mayoría de pruebas acelera y aísla. Consideraciones importantes para no romper nada Agregar ?foreign_keys=1 al connection string para respetar claves foráneas Comprender diferencias de tipos y comportamiento AUTO_INCREMENT Probar migraciones y funciones MySQL complejas en una pequeña suite MySQL Conservar tests de concurrencia y aislamiento en la base real Probar JSON, collations y funciones específicas en MySQL

Implementación práctica Estructura de proyecto con tests unitarios, component y e2e. Fixtures: crear un engine SQLite por worker y un sessionmaker global configurable. Overriding del dependency get_db en FastAPI para usar las sesiones de prueba. Para e2e usar un engine MySQL solo cuando se ejecuten los tests marcados e2e.

Paralelización pytest-xdist con -n logical --dist worksteal permite que workers ociosos tomen tareas de los ocupados. Regla de oro No compartir estado entre tests usar rutas únicas para archivos limpiar globals y semilla determinista para datos ficticios.

Balanceo de trabajos pytest-split distribuye tests por tiempo de ejecución histórico, no por conteo. Flujo recomendado Generar .pytest-durations.json con store-durations ejecutar pytest --splits N --group i en la CI y combinar con worksteal dentro de cada job para el mejor equilibrio.

CI optimizada Ejecuta las pruebas rápidas por separado y los e2e contra MySQL como una segunda etapa. Resize de jobs, matrices y subida de artefactos aceleran retroalimentación. Si buscas infraestructura dedicada considera opciones de runners más rápidos para cargas intensivas y ahorro en costes a largo plazo.

Medición y disciplina Protocolos claros como la medición en 5 ejecuciones consecutivas con /usr/bin/time y documentar hardware y configuración evitan afirmaciones vagas. Mantén un control de regresiones de tiempo y memoria y falla builds si superan umbrales razonables.

Peligros a evitar Pruebas que funcionan en local y fallan en CI diferencias de versiones de base de datos, zona horaria o variables de entorno. Estado compartido entre tests y olvidar activar foreign keys en SQLite.

Plan de migración incremental Fase 1 medir todo Fase 2 arreglar fixtures Fase 3 migrar component tests a SQLite Fase 4 habilitar paralelización Fase 5 balanceo por tiempo con pytest-split Fase 6 monitorizar y pulir

Resultados esperados Tras aplicar estas prácticas es habitual reducir tiempos de CI de 25 35 minutos a 3 6 minutos, mejorar feedback local de varios minutos a menos de un minuto y bajar uso de memoria y coste de CI significativamente.

Cómo puede ayudar Q2BSTUDIO En Q2BSTUDIO somos especialistas en desarrollo de software a medida y aplicaciones a medida y acompañamos a equipos a optimizar pipelines de pruebas e infraestructuras. Ofrecemos servicios de desarrollo de aplicaciones y software a medida, integración de inteligencia artificial y arquitecturas en la nube. Si tu objetivo es acelerar pruebas, reducir costes y aplicar estrategias de testing robustas, nuestro equipo puede auditar tus tests, implementar fixtures idóneas y diseñar CI eficiente.

Servicios relacionados y palabras clave Ofrecemos soluciones de inteligencia artificial e ia para empresas para automatizar decisiones, agentes IA para flujos conversacionales y soluciones de servicios inteligencia de negocio y power bi para obtener métricas accionables. También cubrimos ciberseguridad y pentesting para garantizar que tu entorno de pruebas y despliegue sea seguro y ofrecemos migración y optimización de servicios cloud aws y azure.

Enlace a expertise adicional Si te interesa implantar pipelines más inteligentes y aplicar modelos de IA al ciclo de vida de desarrollo visita nuestra página de inteligencia artificial para empresas donde explicamos cómo combinamos IA, test automation y monitorización de rendimiento.

Resumen final Velocidad y calidad no son mutuamente excluyentes. Con SQLite para la mayoría de pruebas, MySQL para los casos necesarios, pytest-xdist, pytest-split y buenas prácticas de fixtures puedes transformar una suite lenta en una herramienta que acelera el desarrollo. Mide todo, avanza por fases y si necesitas acompañamiento técnico Q2BSTUDIO te ayuda a implementar estas mejoras y a ofrecer soluciones de software a medida, ciberseguridad, cloud y business intelligence adaptadas a tu negocio.

Contacto breve Si quieres que revisemos tu pipeline de pruebas o te guiemos en la migración contacta con nuestro equipo en Q2BSTUDIO y convierte tiempo perdido en valor real.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat