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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.

Live Chat